class Neewom::AbstractForm
Attributes
fields[RW]
id[RW]
persist_submit_controls[RW]
repository_klass[RW]
template[RW]
Public Class Methods
build(config)
click to toggle source
# File lib/neewom/abstract_form.rb, line 9 def self.build(config) form = self.new form.id = config[:id] form.repository_klass = config[:repository_klass] form.template = config[:template] form.persist_submit_controls = config[:persist_submit_controls] form.fields = config[:fields].map do |name, field_config| field = Neewom::AbstractField.new field_config = { input: field_config } if field_config.is_a?(String) field.name = name field.label = field_config[:label] field.input = field_config[:input] field.virtual = field_config[:virtual] field.validations = field_config[:validations] field.collection = field_config[:collection] field.collection_klass = field_config[:collection_klass] field.collection_method = field_config[:collection_method] field.collection_params = field_config[:collection_params] field.label_method = field_config[:label_method] field.value_method = field_config[:value_method] field.input_html = field_config[:input_html] field.custom_options = field_config[:custom_options] field end form end
Public Instance Methods
persisted_fields()
click to toggle source
# File lib/neewom/abstract_form.rb, line 57 def persisted_fields persist_submit_controls ? fields : fields.reject(&:submit?) end
store!()
click to toggle source
# File lib/neewom/abstract_form.rb, line 61 def store! Neewom::Repository.new.store!(self) end
submit_fields()
click to toggle source
# File lib/neewom/abstract_form.rb, line 53 def submit_fields fields.select(&:submit?) end
virtual_fields()
click to toggle source
# File lib/neewom/abstract_form.rb, line 49 def virtual_fields fields.select(&:virtual) end