Class: HaveAPI::ModelAdapters::ActiveRecord::ValidatorTranslator
- Inherits:
-
Object
- Object
- HaveAPI::ModelAdapters::ActiveRecord::ValidatorTranslator
- Defined in:
- lib/haveapi/model_adapters/active_record.rb
Class Attribute Summary collapse
-
.handlers ⇒ Object
readonly
Returns the value of attribute handlers.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(params) ⇒ ValidatorTranslator
constructor
A new instance of ValidatorTranslator.
- #translate(v) ⇒ Object
- #validator(key, opts) ⇒ Object
- #validator_for(param, key, opts) ⇒ Object
Constructor Details
#initialize(params) ⇒ ValidatorTranslator
Returns a new instance of ValidatorTranslator.
472 473 474 |
# File 'lib/haveapi/model_adapters/active_record.rb', line 472 def initialize(params) @params = params end |
Class Attribute Details
.handlers ⇒ Object (readonly)
Returns the value of attribute handlers.
393 394 395 |
# File 'lib/haveapi/model_adapters/active_record.rb', line 393 def handlers @handlers end |
Class Method Details
.handle(validator, &block) ⇒ Object
395 396 397 398 |
# File 'lib/haveapi/model_adapters/active_record.rb', line 395 def handle(validator, &block) @handlers ||= {} @handlers[validator] = block end |
Instance Method Details
#translate(v) ⇒ Object
491 492 493 494 495 496 497 498 499 500 501 |
# File 'lib/haveapi/model_adapters/active_record.rb', line 491 def translate(v) self.class.handlers.each do |klass, translator| next unless v.is_a?(klass) v.attributes.each do |attr| @attr = attr instance_exec(v, &translator) end break end end |
#validator(key, opts) ⇒ Object
487 488 489 |
# File 'lib/haveapi/model_adapters/active_record.rb', line 487 def validator(key, opts) validator_for(@attr, key, opts) end |
#validator_for(param, key, opts) ⇒ Object
476 477 478 479 480 481 482 483 484 485 |
# File 'lib/haveapi/model_adapters/active_record.rb', line 476 def validator_for(param, key, opts) @params.each do |p| next unless p.is_a?(::HaveAPI::Parameters::Typed) if p.db_name == param p.add_validator(key, opts) if p.load_validators? break end end end |