Class: Aequitas::Rule::Within::Set

Inherits:
Aequitas::Rule show all
Includes:
Aequitas::Rule::Within
Defined in:
lib/aequitas/rule/within/set.rb

Instance Attribute Summary collapse

Attributes inherited from Aequitas::Rule

#attribute_name, #custom_message, #guard, #skip_condition

Attributes included from Equalizable

#equalizer

Instance Method Summary collapse

Methods included from Aequitas::Rule::Within

new, rules_for

Methods inherited from Aequitas::Rule

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

Methods included from Equalizable

#equalize_on

Constructor Details

#initialize(attribute_name, options = {}) ⇒ Set

Returns a new instance of Set.



16
17
18
19
20
# File 'lib/aequitas/rule/within/set.rb', line 16

def initialize(attribute_name, options={})
  super

  @set = options.fetch(:set, [])
end

Instance Attribute Details

#setObject (readonly)

Returns the value of attribute set.



14
15
16
# File 'lib/aequitas/rule/within/set.rb', line 14

def set
  @set
end

Instance Method Details

#valid?(resource) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
25
26
# File 'lib/aequitas/rule/within/set.rb', line 22

def valid?(resource)
  value = attribute_value(resource)

  skip?(value) || set.include?(value)
end

#violation_data(resource) ⇒ Object



32
33
34
# File 'lib/aequitas/rule/within/set.rb', line 32

def violation_data(resource)
  [ [ :set, set.to_a.join(', ') ] ]
end

#violation_type(resource) ⇒ Object



28
29
30
# File 'lib/aequitas/rule/within/set.rb', line 28

def violation_type(resource)
  :inclusion
end