Class: DynamicScaffold::FormBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/dynamic_scaffold/form_builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ FormBuilder

Returns a new instance of FormBuilder.



7
8
9
10
11
# File 'lib/dynamic_scaffold/form_builder.rb', line 7

def initialize(config)
  @config = config
  @items = []
  @permit_params = []
end

Instance Attribute Details

#parent_itemObject

Returns the value of attribute parent_item.



5
6
7
# File 'lib/dynamic_scaffold/form_builder.rb', line 5

def parent_item
  @parent_item
end

Instance Method Details

#item(type, *args, &block) ⇒ Object



35
36
37
38
39
40
# File 'lib/dynamic_scaffold/form_builder.rb', line 35

def item(type, *args, &block)
  item = Form::Item::Base.create(@config, type, *args, &block)
  item.parent_item = parent_item
  @items << item
  item
end

#itemsObject



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/dynamic_scaffold/form_builder.rb', line 13

def items
  if @items.empty?
    @config.model.column_names.each do |column|
      type = :text_field
      type = :hidden_field if @config.scope&.include?(column.to_sym)
      item = Form::Item::SingleOption.new(@config, type, column)
      item.parent_item = parent_item
      @items << item
    end
  end
  @items
end

#permit_params(*params) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/dynamic_scaffold/form_builder.rb', line 26

def permit_params(*params)
  if params.empty?
    @permit_params
  else
    @permit_params.concat(params)
    self
  end
end