class Basepack::Forms::Factories::Base

Constants

FIELDS

Public Class Methods

new(form_class = Forms::Base, group_class = Groups::Base) click to toggle source
# File lib/basepack/forms/factories/base.rb, line 14
def initialize(form_class = Forms::Base, group_class = Groups::Base)
  @form_class   = form_class
  @group_class  = group_class
end

Public Instance Methods

build_form(form) click to toggle source
# File lib/basepack/forms/factories/base.rb, line 19
def build_form(form)
  form
end
new_field(name, form, attributes) click to toggle source
# File lib/basepack/forms/factories/base.rb, line 31
def new_field(name, form, attributes)
  if klass = FIELDS[field_attr(attributes, :type)]
    klass.new(name, form, attributes)
  else
    Fields::Base.new(name, form, attributes)
  end
end
new_form(*args) click to toggle source
# File lib/basepack/forms/factories/base.rb, line 23
def new_form(*args)
  @form_class.new(self, *args).build_from_factory
end
new_group(form, attributes) click to toggle source
# File lib/basepack/forms/factories/base.rb, line 27
def new_group(form, attributes)
  @group_class.new(form, attributes)
end

Private Instance Methods

field_attr(attributes, name) click to toggle source
# File lib/basepack/forms/factories/base.rb, line 41
def field_attr(attributes, name)
  if attributes
    if attributes.respond_to? name
      attributes.send(name)
    else
      attributes[name]
    end
  end
end