module CouchRest::Validation::ValidatesWithMethod

Public Instance Methods

validates_with_method(*fields) click to toggle source

Validate using the given method. The method given needs to return:

result::<Boolean>, Error Message::<String>

@example [Usage]

class Page

  property :zip_code, String

  validates_with_method :in_the_right_location?

  def in_the_right_location?
    if @zip_code == "94301"
      return true
    else
      return [false, "You're in the wrong zip code"]
    end
  end

  # A call to valid? will return false and
  # populate the object's errors with "You're in the
  # wrong zip code" unless zip_code == "94301"

  # You can also specify field:

  validates_with_method :zip_code, :in_the_right_location?

  # it will add returned error message to :zip_code field
# File lib/couchrest/validation/validators/method_validator.rb, line 82
def validates_with_method(*fields)
  opts = opts_from_validator_args(fields)
  add_validator_to_context(opts, fields, CouchRest::Validation::MethodValidator)
end