OSDN Git Service

merge
[pettanr/pettanr.git] / lib / manifest / form / field / tag.rb
1 require_dependency "manifest/form/field/tag/base"
2 require_dependency "manifest/form/field/tag/text"
3 require_dependency "manifest/form/field/tag/number"
4 require_dependency "manifest/form/field/tag/text_area"
5 require_dependency "manifest/form/field/tag/select"
6 require_dependency "manifest/form/field/tag/hidden"
7 module Manifest
8   module FormModule
9     module FieldModule
10       class TagFactory
11         include TagModule
12         @@types = {
13           'text' => TextTag, 'number' => NumberTag, 'text_area' => TextAreaTag, 
14           'select' => SelectTag, 'hidden' => HiddenTag
15         }
16         def self.factory field, my_manifest
17           type = my_manifest['type']
18           raise "undefined type for forms > #{field.form_name} > fields > #{field.field_name} > tag\n" unless type
19           my_class = @@types[type]
20           raise "undefined class for forms > #{field.form_name} > fields > #{field.field_name} > tag > #{type}\n" unless my_class
21           my_class.new(field, my_manifest)
22         end
23         
24       end
25       
26     end
27   end
28 end