Class: KawaiiValidation::NonAttributedValidator
- Inherits:
-
Object
- Object
- KawaiiValidation::NonAttributedValidator
- Includes:
- ActiveModel::Validations::HelperMethods
- Defined in:
- lib/kawaii_validation/non_attributed_validator.rb
Overview
validates do
presence_of :title, :if => -> { true }
end
Instance Method Summary collapse
-
#initialize(klass) ⇒ NonAttributedValidator
constructor
A new instance of NonAttributedValidator.
- #method_missing(name, *attributes) ⇒ Object
Constructor Details
#initialize(klass) ⇒ NonAttributedValidator
Returns a new instance of NonAttributedValidator.
12 13 14 |
# File 'lib/kawaii_validation/non_attributed_validator.rb', line 12 def initialize(klass) @klass = klass end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *attributes) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/kawaii_validation/non_attributed_validator.rb', line 16 def method_missing(name, *attributes) if @klass.respond_to? "validates_#{name}" @klass.send "validates_#{name}", *attributes else key = "#{name.to_s.sub(/_of\Z/, '').camelize}Validator" validator = begin key.include?('::') ? key.constantize : @klass.const_get(key) rescue NameError raise ArgumentError, "Unknown validator: '#{key}'" end @klass.validates_with validator, _merge_attributes(attributes) end end |