Class: Plinko::MultiValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/plinko/multi_validator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(validated_object, validators = []) ⇒ MultiValidator

Returns a new instance of MultiValidator.



7
8
9
10
# File 'lib/plinko/multi_validator.rb', line 7

def initialize(validated_object, validators = [])
  self.validated_object = validated_object
  self.validators = validators
end

Instance Attribute Details

#validated_objectObject

Returns the value of attribute validated_object.



5
6
7
# File 'lib/plinko/multi_validator.rb', line 5

def validated_object
  @validated_object
end

#validatorsObject

Returns the value of attribute validators.



5
6
7
# File 'lib/plinko/multi_validator.rb', line 5

def validators
  @validators
end

Instance Method Details

#errorsObject



16
17
18
# File 'lib/plinko/multi_validator.rb', line 16

def errors
  validation.errors
end

#seedObject



12
13
14
# File 'lib/plinko/multi_validator.rb', line 12

def seed
  Validation.new(validated_object)
end

#valid?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/plinko/multi_validator.rb', line 20

def valid?
  validation.valid?
end

#validate!Object



30
31
32
33
34
35
36
37
38
# File 'lib/plinko/multi_validator.rb', line 30

def validate!
  validators.reduce(seed) do |memo, validator|
    temp_val = memo.with(validator)

    raise StandardError temp_val.errors unless temp_val.valid?

    temp_val
  end
end

#validationObject



24
25
26
27
28
# File 'lib/plinko/multi_validator.rb', line 24

def validation
  validators.reduce(seed) do |memo, validator|
    memo.with(validator)
  end
end