Module: StandaloneValidator::Definitions
- Defined in:
- lib/standalone_validator/definitions.rb
Class Method Summary collapse
- .coerce_to_validation(validation_or_validation_class = nil, *args, &block) ⇒ Object
- .listeners ⇒ Object
- .lookup_validation_factory(name) ⇒ Object
- .on_validation_registered(callable = nil, &block) ⇒ Object
- .register_validation_factory(name, validation_factory) ⇒ Object
- .registry ⇒ Object
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 |
.listeners ⇒ Object
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 |
.registry ⇒ Object
50 51 52 |
# File 'lib/standalone_validator/definitions.rb', line 50 def registry @registry ||= Hamster.hash end |