def _pv_cannot_be(opts, key, predicate_method_base_name)
        value = _pv_opts_lookup(opts, key)
        predicate_method = (predicate_method_base_name.to_s + "?").to_sym

        if value.respond_to?(predicate_method)
          if value.send(predicate_method)
            raise ValidationFailed, "Option #{key} cannot be #{predicate_method_base_name}"
          end
        end
      end
def _pv_cannot_be(opts, key, predicate_method_base_name)
        value = _pv_opts_lookup(opts, key)
        predicate_method = (predicate_method_base_name.to_s + "?").to_sym

        if value.respond_to?(predicate_method)
          if value.send(predicate_method)
            raise ValidationFailed, "Option #{key} cannot be #{predicate_method_base_name}"
          end
        end
      end
Assert that parameter returns false when passed a predicate method.
 For example, :cannot_be => :blank will raise a ValidationFailed
 error value.blank? returns a 'truthy' (not nil or false) value.

 Note, this will *PASS* if the object doesn't respond to the method.
 So, to make sure a value is not nil and not blank, you need to do
 both :cannot_be => :blank *and* :cannot_be => :nil (or :required => true)