OSDN Git Service

merge
[pettanr/pettanr.git] / lib / manifest / form / field / helper.rb
1 require_dependency "manifest/form/field/helper/base"
2 require_dependency "manifest/form/field/helper/size"
3 require_dependency "manifest/form/field/helper/tail_angle"
4 require_dependency "manifest/form/field/helper/color"
5 require_dependency "manifest/form/field/helper/popup"
6 module Manifest
7   module FormModule
8     module FieldModule
9       class HelperFactory
10         include HelperModule
11         @@types = {
12           'size' => Size, 'tail_angle' => TailAngle, 'color' => Color, 
13           'popup' => Popup
14         }
15         def self.factory field, helper_name, my_manifest
16           type = my_manifest['type'] || 'none'
17           raise "undefined type for forms > #{field.form_name} > fields > #{field.field_name} > helpers > #{helper_name}\n" unless type
18           my_class = @@types[type]
19           raise "undefined class for forms > #{field.form_name} > fields > #{field.field_name} > helpers > #{helper_name} > #{type}\n" unless my_class
20           my_class.new(field, helper_name, my_manifest)
21         end
22         
23       end
24       
25     end
26   end
27 end