OSDN Git Service

fix update
[pettanr/pettanr.git] / lib / manifest / item / base.rb
index c3a901f..27e10b3 100644 (file)
@@ -1,16 +1,63 @@
+ManifestBase.require_modules "manifest/item/", 
+  %w|boost|
+
 module Manifest
   module ItemModule
     class BasePeta < ManifestBase::TypeNameArgs
       
+      attr :boost ,:parent_model_name
+      
       def set_default
         super
+        @args['boost'] ||= {}
       end
       
       def init
         super
+        @parent_model_name = nil  # init at leaf, element
+        @boost = ManifestBase.load_name_values self, @args, 'boost', Boost
+      end
+      
+      def init_after_load_manifest
+        @boost.each do |boost_name, boost_manifest|
+          boost_manifest.init_after_load_manifest
+        end
+      end
+      
+      def element?
+        @parent_model_name != nil
+      end
+      
+      def find_boost_name column_name
+        @boost.each do |boost_name, boost_manifest|
+          return boost_name if boost_manifest.settings_column_name == column_name
+        end
+        nil
+      end
+      
+      def extend_column? column_name
+        @boost.each do |boost_name, boost_manifest|
+          return true if boost_manifest.extend_column_name == column_name
+        end
+        false
+      end
+      
+      def supply_defaults item
+        @boost.each do |name, manifest|
+          manifest.supply_default item
+        end
+      end
+      
+      def overwrites item
+        @boost.each do |name, manifest|
+          manifest.overwrite item
+        end
+      end
+      
+      def model
+        ::Manifest.item_name_to_model @name
       end
       
     end
-    
   end
 end