OSDN Git Service

merge
[pettanr/pettanr.git] / lib / manifest / list_group / list / includes.rb
1 require_dependency "manifest/list_group/list/includes/base"
2 require_dependency "manifest/list_group/list/includes/method"
3 require_dependency "manifest/list_group/list/includes/auto"
4 require_dependency "manifest/list_group/list/includes/none"
5 module Manifest
6   module ListGroupModule
7     module ListModule
8       class IncludeFactory
9         include IncludeModule
10         @@types = {
11           'method' => IncludeMethod, 'auto' => IncludeAuto, 'none' => IncludeNone
12         }
13         
14         def self.factory list, my_manifest
15           my_manifest['type'] ||=  'auto'
16           type = my_manifest['type']
17           raise "undefined type for lists > #{list.item_name} > #{list.list_name} > includes\n" unless type
18           my_class = @@types[type]
19           raise "undefined class for lists > #{list.item_name} > #{list.list_name} > includes > #{type}\n" unless my_class
20           my_class.new(list, my_manifest)
21         end
22         
23       end
24     end
25   end
26 end