Class: ActionBlocks::FormBuilder

Inherits:
BlockType show all
Defined in:
lib/action_blocks/builders/form_builder.rb

Instance Attribute Summary collapse

Attributes inherited from BaseBuilder

#dsl_delegate, #id

Instance Method Summary collapse

Methods inherited from BlockType

#is_block?, #type

Methods inherited from BaseBuilder

#after_build, #after_load, array_fields, block_type, builds, builds_many, delegate_class, #evaluate, #freeze, includes_scheme_helpers, #initialize, #is_block?, #key, references, sets, sets_many, #ui_reference, #valid?

Constructor Details

This class inherits a constructor from ActionBlocks::BaseBuilder

Instance Attribute Details

#form_fieldsObject

Returns the value of attribute form_fields.



4
5
6
# File 'lib/action_blocks/builders/form_builder.rb', line 4

def form_fields
  @form_fields
end

#form_fields_hashObject

Returns the value of attribute form_fields_hash.



4
5
6
# File 'lib/action_blocks/builders/form_builder.rb', line 4

def form_fields_hash
  @form_fields_hash
end

#model_fieldsObject

Returns the value of attribute model_fields.



4
5
6
# File 'lib/action_blocks/builders/form_builder.rb', line 4

def model_fields
  @model_fields
end

#model_fields_hashObject

Returns the value of attribute model_fields_hash.



4
5
6
# File 'lib/action_blocks/builders/form_builder.rb', line 4

def model_fields_hash
  @model_fields_hash
end

#model_idObject

Returns the value of attribute model_id.



4
5
6
# File 'lib/action_blocks/builders/form_builder.rb', line 4

def model_id
  @model_id
end

Instance Method Details

#add_form_field(ff) ⇒ Object



18
19
20
21
22
# File 'lib/action_blocks/builders/form_builder.rb', line 18

def add_form_field(ff)
  name = ff.id
  @form_fields << ff
  @form_fields_hash[name] = ff
end

#before_build(parent, *args) ⇒ Object



13
14
15
16
# File 'lib/action_blocks/builders/form_builder.rb', line 13

def before_build(parent, *args)
  @form_fields = []
  @form_fields_hash = {}
end

#filter_reqs(user:, record_id:) ⇒ Object



43
44
45
# File 'lib/action_blocks/builders/form_builder.rb', line 43

def filter_reqs(user:, record_id:)
  model.filter_reqs(user: user, record_id: record_id)
end

#hashify(user) ⇒ Object



47
48
49
50
51
52
53
54
# File 'lib/action_blocks/builders/form_builder.rb', line 47

def hashify(user)
  {
    context: @context,
    sections: @sections.map {|s| s.hashify(user)},
    key: key,
    type: type
  }
end

#record_engine(user:, record_id:) ⇒ Object



28
29
30
31
32
33
# File 'lib/action_blocks/builders/form_builder.rb', line 28

def record_engine(user:, record_id:)
  DataEngine.new(model.active_model,
    filter_reqs: filter_reqs(user: user, record_id: record_id),
    select_reqs: select_reqs(user: user)
  )
end

#record_to_json(user:, record_id:) ⇒ Object



35
36
37
# File 'lib/action_blocks/builders/form_builder.rb', line 35

def record_to_json(user:, record_id:)
  record_engine(user: user, record_id: record_id).first_to_json
end

#select_reqs(user:) ⇒ Object



39
40
41
# File 'lib/action_blocks/builders/form_builder.rb', line 39

def select_reqs(user:)
  srs = model_fields.map {|mf| mf.select_requirements }.flatten
end