Class: ValidationAssertionCollector
- Inherits:
-
Object
- Object
- ValidationAssertionCollector
- Defined in:
- lib/validation_assertion_collector.rb
Overview
:nodoc:
Instance Attribute Summary collapse
-
#klass ⇒ Object
Returns the value of attribute klass.
Class Method Summary collapse
- .define_method_for_validation_method(validation_method, validatable_class) ⇒ Object
- .gather(klass, &block) ⇒ Object
Instance Method Summary collapse
- #assertions ⇒ Object
- #define_methods_on_assertion_to_collect_options(validatable_class, assertion) ⇒ Object
-
#initialize(klass) ⇒ ValidationAssertionCollector
constructor
A new instance of ValidationAssertionCollector.
Constructor Details
#initialize(klass) ⇒ ValidationAssertionCollector
Returns a new instance of ValidationAssertionCollector.
23 24 25 |
# File 'lib/validation_assertion_collector.rb', line 23 def initialize(klass) self.klass = klass end |
Instance Attribute Details
#klass ⇒ Object
Returns the value of attribute klass.
21 22 23 |
# File 'lib/validation_assertion_collector.rb', line 21 def klass @klass end |
Class Method Details
.define_method_for_validation_method(validation_method, validatable_class) ⇒ Object
8 9 10 11 12 13 |
# File 'lib/validation_assertion_collector.rb', line 8 def self.define_method_for_validation_method(validation_method, validatable_class) define_method validation_method.gsub(/^validates_/,'').to_sym do |attribute| assertions << ValidationAssertion.new(self.klass, validatable_class, attribute) validatable_class, assertions.last end end |
.gather(klass, &block) ⇒ Object
2 3 4 5 6 |
# File 'lib/validation_assertion_collector.rb', line 2 def self.gather(klass, &block) collector = self.new(klass) collector.instance_eval(&block) collector.assertions end |
Instance Method Details
#assertions ⇒ Object
40 41 42 |
# File 'lib/validation_assertion_collector.rb', line 40 def assertions @assertions ||= [] end |
#define_methods_on_assertion_to_collect_options(validatable_class, assertion) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/validation_assertion_collector.rb', line 27 def (validatable_class, assertion) validatable_class.all_understandings.each do |option| next if option == :if class << assertion; self; end.instance_eval do define_method option do |value| self..merge!(option=>value) self end end end assertion end |