OSDN Git Service

t#:
[pettanr/pettanr.git] / lib / peta / root.rb
1 module Peta
2   class Root < Content
3     self.abstract_class = true
4     
5     # Dynamic Methods
6     
7     def self._element_tree_name
8       self.my_manifest.peta.element_tree_name
9     end
10     
11     def self.load_manifest
12       super
13       # Class Methods
14       n = self._element_tree_name
15       define_singleton_method("element_tree_name") do 
16         n
17       end
18       # Instance Methods
19       define_method("element_items") do |element_model|
20         self.__send__ self.class.my_manifest.associations.child_element_name(element_model)
21       end
22       define_method("elements_items") do 
23         self.class.child_models(self.class.element_tree_name).map {|child_model|
24           self.element_items child_model
25         }.flatten
26       end
27     end
28     
29     # Class Methods
30     
31   end
32 end
33