Class: RulerCoaster::Attributes::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/ruler_coaster/attributes/base.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rules) ⇒ Base

Returns a new instance of Base.



8
9
10
# File 'lib/ruler_coaster/attributes/base.rb', line 8

def initialize(rules)
  @rules = rules
end

Instance Attribute Details

#rulesObject (readonly)

Returns the value of attribute rules.



6
7
8
# File 'lib/ruler_coaster/attributes/base.rb', line 6

def rules
  @rules
end

Instance Method Details

#call(object) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/ruler_coaster/attributes/base.rb', line 12

def call(object)
  errors = {}
  blocked = []

  each_attr_rule_result(object) do |attr, result|
    if result.is_a?(RulerCoaster::NoResult)
      blocked = block(blocked, attr)
    elsif !result.success?
      errors = hell(errors, attr, 'is invalid')
    end
  end

  RulerCoaster::Attributes::Result.new(rules, object, errors, blocked)
end