1 require_dependency "manifest/form/field/tag"
2 require_dependency "manifest/form/field/label"
3 require_dependency "manifest/form/field/helper"
8 attr :form, :field_name, :field_manifest, :type,
9 :model_name, :column_name, :label, :tag, :helpers, :row_break
11 def initialize form, field_name, field_manifest
13 @field_name = field_name
14 @field_manifest = field_manifest
20 @field_manifest['args'] ||= {}
21 n = self.field_name.split '.'
23 @field_manifest['args']['model_name'] ||= n[0]
24 @field_manifest['args']['column_name'] ||= n[1]
26 @field_manifest['args']['model_name'] ||= self.form.form_name
27 @field_manifest['args']['column_name'] ||= self.field_name
29 @field_manifest['args']['label'] ||= {}
30 @field_manifest['args']['tag'] ||= {}
31 @field_manifest['args']['helpers'] ||= {}
32 @field_manifest['args']['row_break'] ||= true
36 @type = @field_manifest['type']
37 @args = @field_manifest['args']
38 @model_name = @args['model_name']
39 @column_name = @args['column_name']
40 @label = LabelFactory.factory(self, @args['label'])
41 @tag = TagFactory.factory(self, @args['tag'])
43 @args['helpers'].each {|helper_name, helper_manifest|
44 @helpers[helper_name] = HelperFactory.factory(self, helper_name, helper_manifest)
46 @row_break = @args['row_break']
63 class ElementField < Field
65 @model_name + '[' + @column_name + ']'
70 class PartField < Field
75 @field_manifest['args']['part_name'] ||= @field_manifest['args']['model_name']
80 @part_name = @args['part_name']
84 @model_name + '[' + @model_name + '_attributes][' + @column_name + ']'