class HaveAPI::ModelAdapters::ActiveRecord::ValidatorTranslator

Attributes

handlers[R]

Public Class Methods

handle(validator, &block) click to toggle source
# File lib/haveapi/model_adapters/active_record.rb, line 338
def handle(validator, &block)
  @handlers ||= {}
  @handlers[validator] = block
end
new(params) click to toggle source
# File lib/haveapi/model_adapters/active_record.rb, line 415
def initialize(params)
  @params = params
end

Public Instance Methods

translate(v) click to toggle source
# File lib/haveapi/model_adapters/active_record.rb, line 434
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) click to toggle source
# File lib/haveapi/model_adapters/active_record.rb, line 430
def validator(key, opts)
  validator_for(@attr, key, opts)
end
validator_for(param, key, opts) click to toggle source
# File lib/haveapi/model_adapters/active_record.rb, line 419
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