Module: ActionForm::ElementsDSL::ClassMethods
- Defined in:
- lib/action_form/elements_dsl.rb
Overview
rubocop:disable Style/Documentation
Instance Method Summary collapse
-
#element(name, &block) ⇒ Object
TODO: add support for outputless elements.
- #elements ⇒ Object
- #many(name, default: nil, &block) ⇒ Object
- #subform(name, default: nil, &block) ⇒ Object
Instance Method Details
#element(name, &block) ⇒ Object
TODO: add support for outputless elements
26 27 28 29 30 31 32 |
# File 'lib/action_form/elements_dsl.rb', line 26 def element(name, &block) elements[name] = Class.new(ActionForm::Element) elements[name].class_eval(&block) define_singleton_method(:"#{name}_element") do |klass = nil, &block| update_element_definition(name, klass, &block) end end |
#elements ⇒ Object
21 22 23 |
# File 'lib/action_form/elements_dsl.rb', line 21 def elements @elements ||= {} end |
#many(name, default: nil, &block) ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/action_form/elements_dsl.rb', line 34 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 define_singleton_method(:"#{name}_subforms") do |klass = nil, default: nil, &block| update_element_definition(name, klass, default: default, &block) end end |
#subform(name, default: nil, &block) ⇒ Object
45 46 47 48 49 50 51 52 |
# File 'lib/action_form/elements_dsl.rb', line 45 def subform(name, default: nil, &block) elements[name] = Class.new(subform_class) elements[name].class_eval(&block) elements[name].default = default if default define_singleton_method(:"#{name}_subform") do |klass = nil, default: nil, &block| update_element_definition(name, klass, default: default, &block) end end |