Class: Frigate::Form::Synchronizer::Contract
- Inherits:
-
Basic
- Object
- Fundamental
- Base
- Basic
- Frigate::Form::Synchronizer::Contract
- Defined in:
- lib/frigate/form/synchronizer/contract.rb
Overview
Synchronizes form properties with model properties
Instance Attribute Summary
Attributes inherited from Fundamental
Instance Method Summary collapse
-
#sync_properties_with_model_or_params ⇒ Object
Synchronizes given model’s attributes with form properties and associations:properties.
Methods inherited from Basic
#sync_errors, #sync_with_model
Methods inherited from Base
#sync_errors, #sync_with_model
Methods inherited from Fundamental
Constructor Details
This class inherits a constructor from Frigate::Form::Synchronizer::Fundamental
Instance Method Details
#sync_properties_with_model_or_params ⇒ Object
Synchronizes given model’s attributes with form properties and associations:properties
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/frigate/form/synchronizer/contract.rb', line 8 def sync_properties_with_model_or_params # # sync model properties with form properties # form.properties.each do |_prop| if form.model.respond_to?(_prop.name.to_sym) _prop.value = form.model.send(_prop.name.to_sym) else raise StandardError.new('form model does not have %s property' % [_prop.name]) end end # # sync model associations' properties with form associations' properties # form.associations.each do |_a| if form.model.respond_to?(_a.name.to_sym) and !form.model.send(_a.name.to_sym).nil? _a.properties.each do |_p| if form.model.send(_a.name.to_sym).respond_to?(_p.name.to_sym) _p.value = form.model.send(_a.name.to_sym).send(_p.name.to_sym) else _err_msg = 'form model %s association does not have %s property' % [_a.name, _p.name] raise StandardError.new(_err_msg) end end else if form.model.respond_to?(_a.name.to_sym) _err_msg = 'form model %s association is nil' % [_a.name] raise StandardError.new(_err_msg) else _err_msg = 'form model does not have %s association' % [_a.name] raise StandardError.new(_err_msg) end end end end |