Class: Attestor::Validations::Validators

Inherits:
Object
  • Object
show all
Includes:
Reporter, Enumerable
Defined in:
lib/attestor/validations/validators.rb

Instance Method Summary collapse

Methods included from Reporter

#validate

Constructor Details

#initialize(*items) ⇒ Validators

Returns a new instance of Validators.



12
13
14
15
# File 'lib/attestor/validations/validators.rb', line 12

def initialize(*items)
  @items = items.flatten
  freeze
end

Instance Method Details

#add_delegator(*args, &block) ⇒ Object



29
30
31
# File 'lib/attestor/validations/validators.rb', line 29

def add_delegator(*args, &block)
  self.class.new items, Delegator.new(*args, &block)
end

#add_validator(*args, &block) ⇒ Object



25
26
27
# File 'lib/attestor/validations/validators.rb', line 25

def add_validator(*args, &block)
  self.class.new items, Validator.new(*args, &block)
end

#eachObject



17
18
19
# File 'lib/attestor/validations/validators.rb', line 17

def each
  block_given? ? items.each { |item| yield(item) } : to_enum
end

#set(context) ⇒ Object



21
22
23
# File 'lib/attestor/validations/validators.rb', line 21

def set(context)
  self.class.new select { |item| item.used_in_context? context }
end

#validate!(object) ⇒ Object



33
34
35
36
37
# File 'lib/attestor/validations/validators.rb', line 33

def validate!(object)
  results = errors(object)
  return if results.empty?
  fail InvalidError.new object, results.map(&:messages).flatten
end