OSDN Git Service

merge
[pettanr/pettanr.git] / lib / local_manifest / list_group / list / base.rb
1 require_dependency "local_manifest/list_group/list/where"
2 require_dependency "local_manifest/list_group/list/includes"
3 module LocalManifest
4   module ListGroupModule
5     module ListModule
6       class Base
7         attr :list_group, :list_name, :list_manifest, :type, 
8           :model_manifest, :model_list_manifest, :model, 
9           :where, :includes, :tree_name
10         def initialize list_group, list_name, list_manifest
11           @list_group = list_group
12           @list_name = list_name
13           @list_manifest = list_manifest
14           self.set_default
15           self.init
16         end
17         
18         def set_default
19           @list_manifest['args'] ||= {}
20           @list_manifest['args']['where'] ||= {}
21           @list_manifest['args']['includes'] ||= {}
22           @list_manifest['args']['tree_name'] ||= @list_group.tree_name
23         end
24         
25         def init
26           @type = @list_manifest['type']
27           @args = @list_manifest['args']
28           @where = WhereFactory.factory self, @args['where']
29           @includes = IncludeFactory.factory self, @args['includes']
30           @tree_name = @args['tree_name']
31           
32           @model_manifest = ::Manifest.manifest.models[self.item_name]
33           @model_list_manifest = @model_manifest.list
34           @model = ::Manifest.item_name_to_model self.item_name
35         end
36         
37         def item_name
38           @list_group.item_name
39         end
40         
41       end
42     end
43   end
44 end