OSDN Git Service

mrg
[pettanr/pettanr.git] / lib / peta / content.rb
index 048012f..5ded097 100644 (file)
@@ -4,49 +4,27 @@ module Peta
     
     # Dynamic Methods
     
-    def self._content?
-      self.my_manifest.content_model
-    end
-    
-    def self._owner_type
-      self.my_manifest.owner_type
-    end
-    
-    def self._owner_model
-      t = self.my_manifest.tree['owner']
-      return nil unless t
-      t.parent_model 
-    end
-    
-    def self._owner_column
-      self.owner_type.to_s + '_id'
-    end
-    
     def self.load_manifest
       super
+      return nil if self._skip_load?
       # Class Methods
-      f = self._content?
+      ct = self.my_manifest.content_model
       define_singleton_method("content?") do 
-        f
+        ct
       end
-      t = self._owner_type
+      ot = self.my_manifest.owner_type
       define_singleton_method("owner_type") do 
-        t
+        ot
       end
-      m = self._owner_model
+      om = self.parent_model
       define_singleton_method("owner_model") do 
-        m
+        om
       end
-      o = self._owner_column
+      oc = self.owner_type.to_s + '_id'
       define_singleton_method("owner_column") do 
-        o
+        oc
       end
       # Instance Methods
-      define_method("elements") do |tree_name|
-        self.my_manifest.child_element_names(tree_name).map {|element_name|
-          self.__send__ element_name
-        }
-      end
     end
     
     # Class Methods
@@ -65,15 +43,17 @@ module Peta
       raise ActiveRecord::Forbidden unless content.own?(operators)
       content
     end
+    
     # Instance Methods
     
     def owner_model
       self.class.owner_model ? self.__send__(self.class.owner_model.item_name) : self
     end
     
+    # super return if my item
     def visible? operators
       super
-      return true if owner_model.own?(operators)
+      return nil if owner_model.own?(operators)
       true
     end