Module: StandaloneValidator::Definitions

Defined in:
lib/standalone_validator/definitions.rb

Class Method Summary collapse

Class Method Details

.coerce_to_validation(validation_or_validation_class = nil, *args, &block) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/standalone_validator/definitions.rb', line 36

def coerce_to_validation(validation_or_validation_class = nil, *args, &block)
  if validation_or_validation_class.respond_to?(:new)
    validation_or_validation_class.new(*args, &block)
  elsif validation_or_validation_class.nil? && block_given?
    lambda { |object|
      ValidationResult.build_for(object) do |result|
        instance_exec(object, result, &block)
      end
    }
  else
    validation_or_validation_class
  end
end

.listenersObject



54
55
56
# File 'lib/standalone_validator/definitions.rb', line 54

def listeners
  @listeners ||= Hamster.vector
end

.lookup_validation_factory(name) ⇒ Object



22
23
24
# File 'lib/standalone_validator/definitions.rb', line 22

def lookup_validation_factory(name)
  registry[name.to_sym]
end

.on_validation_registered(callable = nil, &block) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/standalone_validator/definitions.rb', line 26

def on_validation_registered(callable = nil, &block)
  if block_given?
    @listeners = listeners.add(block)
  else
    @listeners = listeners.add(block)
  end

  self
end

.register_validation_factory(name, validation_factory) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/standalone_validator/definitions.rb', line 14

def register_validation_factory(name, validation_factory)
  @registry = registry.put(name.to_sym, validation_factory)
  listeners.each do |listener|
    listener.call(name, validation_factory)
  end
  self
end

.registryObject



50
51
52
# File 'lib/standalone_validator/definitions.rb', line 50

def registry
  @registry ||= Hamster.hash
end