Module: FormModel::Mapper

Extended by:
ActiveSupport::Concern
Includes:
ActiveModel::Validations
Defined in:
lib/form_model/mapper.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#assert_form_values(form, *values, &block) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
# File 'lib/form_model/mapper.rb', line 45

def assert_form_values(form, *values, &block)
  hash = Array(values).inject({}) do |var, key|
    value = form_value(form, key)
    raise FormModel::MapperAssertionError if value.nil?
    var[key] = value
    var
  end
  block.call(hash)
rescue FormModel::MapperAssertionError
  {}
end

#assert_model_values(model, *values, &block) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
# File 'lib/form_model/mapper.rb', line 33

def assert_model_values(model, *values, &block)
  hash = Array(values).inject({}) do |var, key|
    value = model_value(model, key)
    raise FormModel::MapperAssertionError if value.nil?
    var[key] = value
    var
  end
  block.call(hash)
rescue FormModel::MapperAssertionError
  {}
end

#form_attribute(key) ⇒ Object



71
72
73
# File 'lib/form_model/mapper.rb', line 71

def form_attribute(key)
  _form_keys_values[key].to_s
end

#form_keysObject



57
58
59
# File 'lib/form_model/mapper.rb', line 57

def form_keys
  self.class._form_keys
end

#form_value(form, key) ⇒ Object



65
66
67
68
69
# File 'lib/form_model/mapper.rb', line 65

def form_value(form, key)
  if value_key = _form_keys_values[key]
    form.send(value_key)
  end
end

#model_attribute(key) ⇒ Object



81
82
83
# File 'lib/form_model/mapper.rb', line 81

def model_attribute(key)
  _model_keys_values[key].to_s
end

#model_keysObject



61
62
63
# File 'lib/form_model/mapper.rb', line 61

def model_keys
  self.class._model_keys
end

#model_value(model, key) ⇒ Object



75
76
77
78
79
# File 'lib/form_model/mapper.rb', line 75

def model_value(model, key)
  if value_key = _model_keys_values[key]
    model.send(value_key)
  end
end

#to_form(attributes) ⇒ Object



85
86
87
# File 'lib/form_model/mapper.rb', line 85

def to_form(attributes)
  {}
end

#to_model(attribute) ⇒ Object



89
90
91
# File 'lib/form_model/mapper.rb', line 89

def to_model(attribute)
  {}
end