Module: Reform::Form::PropertyMethods
Overview
Allows using property and friends in the Form itself. Forwarded to the internal representer_class.
Instance Method Summary collapse
- #collection(name, options = {}, &block) ⇒ Object
- #properties(names, *args) ⇒ Object
- #property(name, options = {}, &block) ⇒ Object
- #representer_class ⇒ Object
- #setup_form_definition(definition) ⇒ Object
Instance Method Details
#collection(name, options = {}, &block) ⇒ Object
28 29 30 31 32 |
# File 'lib/reform/form.rb', line 28 def collection(name, ={}, &block) [:form_collection] = true property(name, , &block) end |
#properties(names, *args) ⇒ Object
34 35 36 |
# File 'lib/reform/form.rb', line 34 def properties(names, *args) names.each { |name| property(name, *args) } end |
#property(name, options = {}, &block) ⇒ Object
19 20 21 22 23 24 25 26 |
# File 'lib/reform/form.rb', line 19 def property(name, ={}, &block) (name, , &block) definition = representer_class.property(name, , &block) setup_form_definition(definition) if block_given? or [:form] create_accessor(name) end |
#representer_class ⇒ Object
46 47 48 |
# File 'lib/reform/form.rb', line 46 def representer_class @representer_class ||= Class.new(Reform::Representer) end |
#setup_form_definition(definition) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/reform/form.rb', line 38 def setup_form_definition(definition) # TODO: allow Definition.form? definition.[:form] ||= definition..delete(:extend) definition.[:parse_strategy] = :sync definition.[:instance] = true # just to make typed? work end |