Module: ActionForm::ElementsDSL::ClassMethods

Defined in:
lib/action_form/elements_dsl.rb

Overview

rubocop:disable Style/Documentation

Instance Method Summary collapse

Instance Method Details

#element(name, &block) ⇒ Object

TODO: add support for outputless elements



26
27
28
29
# File 'lib/action_form/elements_dsl.rb', line 26

def element(name, &block)
  elements[name] = Class.new(ActionForm::Element)
  elements[name].class_eval(&block)
end

#elementsObject



21
22
23
# File 'lib/action_form/elements_dsl.rb', line 21

def elements
  @elements ||= {}
end

#many(name, default: nil, &block) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/action_form/elements_dsl.rb', line 31

def many(name, default: nil, &block)
  subform_definition = Class.new(ActionForm::SubformsCollection)
  subform_definition.host_class = self
  subform_definition.class_eval(&block) if block
  elements[name] = subform_definition
  elements[name].default = default if default
end

#subform(name, default: nil, &block) ⇒ Object



39
40
41
42
43
# File 'lib/action_form/elements_dsl.rb', line 39

def subform(name, default: nil, &block)
  elements[name] = Class.new(subform_class)
  elements[name].class_eval(&block)
  elements[name].default = default if default
end