OSDN Git Service

fix profiler extend system
[pettanr/pettanr.git] / lib / peta / item.rb
index 7cdead1..91bee15 100644 (file)
@@ -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