Module: Reform::Form::PropertyMethods

Extended by:
Forwardable
Included in:
Reform::Form
Defined in:
lib/reform/form.rb

Overview

Allows using property and friends in the Form itself. Forwarded to the internal representer_class.

Instance Method Summary collapse

Instance Method Details

#collection(name, options = {}, &block) ⇒ Object



28
29
30
31
32
# File 'lib/reform/form.rb', line 28

def collection(name, options={}, &block)
  options[:form_collection] = true

  property(name, options, &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, options={}, &block)
  process_options(name, options, &block)

  definition = representer_class.property(name, options, &block)
  setup_form_definition(definition) if block_given? or options[:form]

  create_accessor(name)
end

#representer_classObject



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.options[:form] ||= definition.options.delete(:extend)

  definition.options[:parse_strategy] = :sync
  definition.options[:instance] = true # just to make typed? work
end