OSDN Git Service

fix orm
[pettanr/pettanr.git] / lib / manifest / model / list.rb
1 require_dependency "manifest/model/list/base"
2 require_dependency "manifest/model/list/public"
3 require_dependency "manifest/model/list/private"
4 require_dependency "manifest/model/list/system_resource"
5 require_dependency "manifest/model/list/filter"
6 require_dependency "manifest/model/list/through_filter"
7 require_dependency "manifest/model/list/foreign_filter"
8 require_dependency "manifest/model/list/play"
9 module Manifest
10   module ModelModule
11     class ListFactory
12       include ListModule
13       @@types = {
14         'public' => PublicList, 'private' => PrivateList, 'system_resource' => SystemResourceList,
15         'filter' => FilterList, 'through_filter' => ThroughFilterList, 'foreign_filter' => ForeignFilterList, 
16         'play' => PlayList
17       }
18       
19       def self.factory model, my_name, my_manifest
20         type = my_manifest['type']
21         raise "undefined type for models > #{model.model_name} > lists > #{my_name}\n" unless type
22         my_class = @@types[type]
23         raise "undefined class for models > #{model.model_name} > lists > #{my_name} > #{type}\n" unless my_class
24         my_class.new(model, my_name, my_manifest)
25       end
26       
27     end
28     
29   end
30 end