Class: Aequitas::Rule::Length::Range

Inherits:
Aequitas::Rule::Length show all
Defined in:
lib/aequitas/rule/length/range.rb

Instance Attribute Summary collapse

Attributes inherited from Aequitas::Rule

#attribute_name, #custom_message, #guard, #skip_condition

Attributes included from ValueObject

#equalizer

Instance Method Summary collapse

Methods inherited from Aequitas::Rule::Length

rules_for, #valid?, #value_length

Methods inherited from Aequitas::Rule

#attribute_value, #execute?, rules_for, #skip?, #validate, #violation_info, #violation_values

Methods included from ValueObject

#equalize_on

Constructor Details

#initialize(attribute_name, options) ⇒ Range

Returns a new instance of Range.



14
15
16
17
18
# File 'lib/aequitas/rule/length/range.rb', line 14

def initialize(attribute_name, options)
  super

  @range = options.fetch(:range)
end

Instance Attribute Details

#rangeObject (readonly)

Returns the value of attribute range.



12
13
14
# File 'lib/aequitas/rule/length/range.rb', line 12

def range
  @range
end

Instance Method Details

#valid_length?(length) ⇒ String, NilClass

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Validate the value length is within expected range

Parameters:

  • length (Integer)

    the value length

Returns:

  • (String, NilClass)

    the error message if invalid, nil if valid



37
38
39
# File 'lib/aequitas/rule/length/range.rb', line 37

def valid_length?(length)
  range.include?(length)
end

#violation_data(resource) ⇒ Object



24
25
26
# File 'lib/aequitas/rule/length/range.rb', line 24

def violation_data(resource)
  [ [ :min, range.begin ], [ :max, range.end ] ]
end

#violation_type(resource) ⇒ Object



20
21
22
# File 'lib/aequitas/rule/length/range.rb', line 20

def violation_type(resource)
  :length_between
end