class DataMapper::Matchers::ValidateLengthOf

Public Instance Methods

equals(equals) click to toggle source
# File lib/dm/matchers/validate_length_of.rb, line 46
def equals(equals)
  is(equals)
end
in(range) click to toggle source
# File lib/dm/matchers/validate_length_of.rb, line 37
def in(range)
  within(range)
end
is(is) click to toggle source
# File lib/dm/matchers/validate_length_of.rb, line 41
def is(is)
  @is = is
  self
end
length(maximum) click to toggle source
# File lib/dm/matchers/validate_length_of.rb, line 19
def length(maximum)
  maximum(maximum)
end
matches?(model) click to toggle source
# File lib/dm/matchers/validate_length_of.rb, line 50
def matches?(model)
  model_class = model.is_a?(Class) ? model : model.class
  validators = model_class.validators.contexts[:default]
          
  validators = validators.select do |validator|
    validator.is_a? DataMapper::Validations::LengthValidator and validator.field_name == @property
  end
  validator = validators.last
  
  return false unless validator
  
  if @maximum
    return validator.options[:maximum] == @maximum
  elsif @minimum
    return validator.options[:minimum] == @minimum
  elsif @within
    return validator.options[:within] == @within
  elsif @is
    return validator.options[:is] == @is
  else
    return false
  end
end
max(maximum) click to toggle source
# File lib/dm/matchers/validate_length_of.rb, line 15
def max(maximum)
  maximum(maximum)
end
maximum(maximum) click to toggle source
# File lib/dm/matchers/validate_length_of.rb, line 10
def maximum(maximum)
  @maximum = maximum
  self
end
min(minimum) click to toggle source
# File lib/dm/matchers/validate_length_of.rb, line 28
def min(minimum)
  minimum(minimum)
end
minimum(minimum) click to toggle source
# File lib/dm/matchers/validate_length_of.rb, line 23
def minimum(minimum)
  @minimum = minimum
  self
end
within(range) click to toggle source
# File lib/dm/matchers/validate_length_of.rb, line 32
def within(range)
  @within = range
  self
end