OSDN Git Service

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