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