Class: Aequitas::Rule::Length::Maximum

Inherits:
Aequitas::Rule::Length show all
Defined in:
lib/aequitas/rule/length/maximum.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) ⇒ Maximum

Returns a new instance of Maximum.



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

def initialize(attribute_name, options)
  super

  @bound = options.fetch(:bound)
end

Instance Attribute Details

#boundObject (readonly)

Returns the value of attribute bound.



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

def bound
  @bound
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 less than or equal to the bound

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/maximum.rb', line 37

def valid_length?(length)
  bound >= length
end

#violation_data(resource) ⇒ Object



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

def violation_data(resource)
  [ [ :maximum, bound ] ]
end

#violation_type(resource) ⇒ Object



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

def violation_type(resource)
  :too_long
end