X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;ds=sidebyside;f=lib%2Fpeta%2Fitem.rb;fp=lib%2Fpeta%2Fitem.rb;h=91bee1558cac171346dc67e8addf64b3c07ad82a;hb=a6cc2e1d02637b226e971eebe2fb8952d6410a6f;hp=7cdead1848ca46e544103a02229471434c188cd5;hpb=eff044772f42afece0e021e0142974b67bfd978c;p=pettanr%2Fpettanr.git diff --git a/lib/peta/item.rb b/lib/peta/item.rb index 7cdead18..91bee155 100644 --- a/lib/peta/item.rb +++ b/lib/peta/item.rb @@ -1,6 +1,7 @@ module Peta class Item < ActiveRecord::Base self.abstract_class = true + attr :boosters # Dynamic ClassMethods @@ -75,6 +76,10 @@ module Peta self.plural.underscore end + def self.extend_column? column_name + self.my_peta.extend_column? column_name + end + def self.visible_count_options nil end @@ -99,7 +104,7 @@ module Peta opt = {} opt.merge!(self.show_opt) item = self.find(item_id, opt) - item.boost 'show' + item.boosts 'read' raise ActiveRecord::Forbidden unless item.visible?(operators) item end @@ -157,15 +162,20 @@ module Peta end end - def boost level + def boosts level self.class.my_peta.boost.each do |boost_name, boost_manifest| next unless boost_manifest.level == level - Locmare::Booster.new(boost_manifest, self) + self.boost boost_manifest end end + def boost boost_manifest + @boosters ||= {} + @boosters[boost_manifest.name] = Locmare::Booster.new(boost_manifest, self) + end + def extend_column? column_name - self.class.my_peta.extend_column? column_name + self.class.extend_column? column_name end def supply_default