OSDN Git Service

merge
[pettanr/pettanr.git] / lib / peta / item.rb
index 4cfab33..2d9604b 100644 (file)
@@ -8,6 +8,10 @@ module Peta
       self.my_manifest.valid_encode_columns
     end
     
+    def self._extend_column_name
+      self.my_manifest.extend_column_name
+    end
+    
     def self.load_manifest
       return nil unless self.my_manifest
       r = self._valid_encode_columns
@@ -20,9 +24,13 @@ module Peta
       define_singleton_method("child_models") do  |tree_name|
         self.my_manifest.child_models tree_name
       end
+      define_singleton_method("child_element_names") do  |tree_name|
+        self.my_manifest.child_element_names tree_name
+      end
       # Instance Methods
-      define_method("parent_model") do |tree_name|
-        self.__send__ self.class.parent_model(tree_name).item_name
+      n = self._extend_column_name
+      define_singleton_method("extend_column_name") do 
+        n
       end
     end
     
@@ -98,28 +106,6 @@ module Peta
     
     #InstanceMethods
     
-    def self.fold_extend_settings params
-      speech_balloon_settings = params[:speech_balloon][:settings]
-      if speech_balloon_settings.is_a?(Hash)
-        params[:speech_balloon][:settings] = speech_balloon_settings.to_json
-      end
-      balloon_settings = params[:speech_balloon][:balloon_attributes][:settings]
-      if balloon_settings.is_a?(Hash)
-        params[:speech_balloon][:balloon_attributes][:settings] = balloon_settings.to_json
-      end
-      speech_settings = params[:speech_balloon][:speech_attributes][:settings]
-      if speech_settings.is_a?(Hash)
-        params[:speech_balloon][:speech_attributes][:settings] = speech_settings.to_json
-      end
-    end
-    
-    def extend_engine_module
-      self.extend self.speech_balloon_template.engine_speech_balloon_module
-      self.elements.each do |element|
-        element.extend_item
-      end
-    end
-    
     def item_name
       self.class.item_name
     end
@@ -132,6 +118,10 @@ module Peta
       self.class.table_name
     end
     
+    def extend_column_name
+      self.class.extend_column_name
+    end
+    
     def path_name with_engine = false
       self.class.path_name(with_engine)
     end
@@ -140,16 +130,8 @@ module Peta
       self.path_name(with_engine) + '/form'
     end
     
-    def extend_column
-      nil
-    end
-    
-    def extend_item_name
-      self.extend_column ? self.attributes[self.extend_column] : self.item_name
-    end
-    
     def form_name
-      self.extend_item_name
+      self.extend_column ? self.attributes[self.extend_column] : self.item_name
     end
     
     def valid_encode
@@ -159,6 +141,39 @@ module Peta
       end
     end
     
+    def self.fold_extend_settings params
+      speech_balloon_settings = params[:speech_balloon][:settings]
+      if speech_balloon_settings.is_a?(Hash)
+        params[:speech_balloon][:settings] = speech_balloon_settings.to_json
+      end
+      balloon_settings = params[:speech_balloon][:balloon_attributes][:settings]
+      if balloon_settings.is_a?(Hash)
+        params[:speech_balloon][:balloon_attributes][:settings] = balloon_settings.to_json
+      end
+      speech_settings = params[:speech_balloon][:speech_attributes][:settings]
+      if speech_settings.is_a?(Hash)
+        params[:speech_balloon][:speech_attributes][:settings] = speech_settings.to_json
+      end
+    end
+    
+    def engine
+      Object.const_get self.attributes[self.extend_column_name]
+    end
+    
+    def my_engine_resource
+      Manifest.manifest.system_resources.engine_resources[self.table_name]
+    end
+    
+    def engine?
+      self.my_engine_resource.resource_items.include? self.attributes[self.extend_column_name]
+    end
+    
+    def boost
+      return false unless self.engine?
+      self.engine.boost self
+      true
+    end
+    
     def supply_default
     end