OSDN Git Service

e
[pettanr/pettanr.git] / lib / manifest / model / tree.rb
1 module Manifest
2   module ModelModule
3     class Tree
4       attr :model, :tree_name, :parent_model_name
5       def initialize model, tree_name, parent_model_name
6         @model = model
7         @tree_name = tree_name
8         @parent_model_name = parent_model_name
9         self.set_default
10         self.init
11       end
12       
13       def set_default
14       end
15       
16       def init
17       end
18       
19       def parent_model_manifest
20         r = ::Manifest.manifest.models[@parent_model_name]
21         raise "undefined parent model for models > #{@model.model_name} > tree > #{tree_name}\n" unless r
22         r
23       end
24       
25       def parent_tree_manifest
26         self.parent_model_manifest[@tree_name]
27       end
28       
29       def include_hash
30         if self.parent_tree_manifest
31           {@parent_model_name => self.parent_tree_manifest.include_hash}
32         else
33           {}
34         end
35       end
36       
37       def parent_model
38         self.parent_model_manifest.classify
39       end
40       
41       def model_manifest
42         @model.model_manifest
43       end
44       
45     end
46     
47   end
48 end