+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