class Form::ActiveModel::ModelValidations::Mapping

Public Class Methods

from_representable_attrs(attrs) click to toggle source
# File lib/reform/form/active_model/model_validations.rb, line 63
def self.from_representable_attrs(attrs)
  new.tap do |mapping|
    attrs.each do |dfn|
      from = dfn[:name].to_sym
      to = [dfn[:on], (dfn[:private_name] || dfn[:name])].compact.map(&:to_sym)
      mapping.add(from, to)
    end
  end
end
new() click to toggle source
# File lib/reform/form/active_model/model_validations.rb, line 73
def initialize
  @forward_map = {}
  @inverse_map = {}
end

Public Instance Methods

add(from, to) click to toggle source

from is a symbol attribute to is an 1 or 2 element array, depending on whether the attribute is ‘namespaced’, as it is with composite forms. eg, add(:phone_number, [:person, :phone])

# File lib/reform/form/active_model/model_validations.rb, line 81
def add(from, to)
  raise 'Mapping is not one-to-one' if @forward_map.has_key?(from) || @inverse_map.has_key?(to)
  @forward_map[from] = to
  @inverse_map[to] = from
end
forward(attr) click to toggle source
# File lib/reform/form/active_model/model_validations.rb, line 91
def forward(attr)
  @forward_map[attr]
end
forward_image(attrs) click to toggle source
# File lib/reform/form/active_model/model_validations.rb, line 87
def forward_image(attrs)
  @forward_map.values_at(*attrs).compact
end
inverse(attr) click to toggle source
# File lib/reform/form/active_model/model_validations.rb, line 99
def inverse(attr)
  @inverse_map[attr]
end
inverse_image(attrs) click to toggle source
# File lib/reform/form/active_model/model_validations.rb, line 95
def inverse_image(attrs)
  @inverse_map.values_at(*attrs).compact
end