1 require_dependency "locmare/form/field/label"
2 require_dependency "locmare/form/field/tag"
3 require_dependency "locmare/form/field/helper"
8 attr :form, :field_name_with_sub_form, :field_manifest,
9 :label, :tag, :helpers, :options,
10 :field_name, :sub_form_names
11 def initialize form, field_name_with_sub_form, field_manifest
13 @field_name_with_sub_form = field_name_with_sub_form
14 @field_manifest = field_manifest
15 @label = LabelFactory.factory self, @field_manifest.label
16 @tag = TagFactory.factory self, @field_manifest.tag
18 @field_manifest.helpers.each {|helper_name, helper_manifest|
19 @helpers[helper_name] = HelperFactory.factory self, helper_manifest
21 @options = {'data-model' => @field_manifest.form_name}
22 @sub_form_names = @field_name_with_sub_form.split '.'
23 @field_name = @sub_form_names.pop
31 {'mount' => self.mounted}
36 @sub_form_names.each do |n|
37 i = i.__send__(n) # has_many associate model does not work
43 self.item.attributes[@field_manifest.column_name]
46 def options tag_options = {}
47 self.item.field_tag_attributes(@field_manifest.column_name, tag_options).merge(self.mount_option)
51 @sub_form_names.map{|name| '[' + name + '_attributes' + ']'}.join
55 @form.form_name + self.sub_form_name + '[' + @field_name + ']'
63 @form.template_dir + 'field/'
66 def template_file_name
71 self.template_dir + self.template_file_name
78 def row_break_template_dir
79 @form.template_dir + 'row_break/'
82 def row_break_template_file_name
83 if @field_manifest.row_break
90 def row_break_template_name
91 self.row_break_template_dir + self.row_break_template_file_name