module StandaloneValidator::Definitions

Public Instance Methods

coerce_to_validation(validation_or_validation_class = nil, *args, &block) click to toggle source
# 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
listeners() click to toggle source
# File lib/standalone_validator/definitions.rb, line 54
def listeners
  @listeners ||= Hamster.vector
end
lookup_validation_factory(name) click to toggle source
# File lib/standalone_validator/definitions.rb, line 22
def lookup_validation_factory(name)
  registry[name.to_sym]
end
on_validation_registered(callable = nil, &block) click to toggle source
# 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) click to toggle source
# 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
registry() click to toggle source
# File lib/standalone_validator/definitions.rb, line 50
def registry
  @registry ||= Hamster.hash
end