OSDN Git Service

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