OSDN Git Service

fix boost template
[pettanr/pettanr.git] / lib / peta / item.rb
index 0a3ba0b..829c15b 100644 (file)
@@ -5,23 +5,32 @@ module Peta
     
     # Dynamic ClassMethods
     
-    def self._valid_encode_columns
-      self.my_manifest.valid_encode_columns
+    def self._dev?
+      Rails.env == "development"
+    end
+    
+    def self._skip_load?
+      if self._dev?
+        return true unless self.my_manifest
+        return true unless Manifest.manifest.items
+        return true unless Manifest.manifest.models
+      end
+      false
     end
     
     def self.load_manifest
-      return nil unless self.my_manifest
-      r = self._valid_encode_columns
+      return nil if self._skip_load?
+      vc = self.my_manifest.valid_encode_columns
       define_singleton_method("valid_encode_columns") do 
-        r
+        vc
       end
-      r = self.my_manifest.child_models
+      cm = self.my_manifest.child_models
       define_singleton_method("child_models") do
-        r
+        cm
       end
-      r = self.my_manifest.child_element_names
+      cen = self.my_manifest.child_element_names
       define_singleton_method("child_element_names") do
-        r
+        cen
       end
       # Instance Methods
     end
@@ -33,10 +42,12 @@ module Peta
     before_validation :valid_encode
     
     def self.my_peta
+      return nil unless Manifest.manifest.items
       Manifest.manifest.items[self.item_name]
     end
     
     def self.my_manifest
+      return nil unless Manifest.manifest.models
       Manifest.manifest.models[self.item_name]
     end
     
@@ -84,16 +95,12 @@ module Peta
       self.my_peta.extend_column? column_name
     end
     
-    def self.visible_count_options
-      nil
-    end
-    
     def self.list_where
       ''
     end
     
     def self.list_order
-      ''
+      self.table_name + '.updated_at desc'
     end
     
     def self.list_opt
@@ -109,7 +116,7 @@ module Peta
       opt.merge!(self.show_opt)
       item = self.find(item_id, opt)
       item.boosts 'read'
-      raise ActiveRecord::Forbidden unless item.visible?(operators)
+      raise ActiveRecord::Forbidden if item.visible?(operators) == false
       item
     end
     
@@ -121,16 +128,13 @@ module Peta
       {}
     end
     
-    def self.fold_extend_settings params
+    def self.fold_extend_settings attr
       self.my_peta.boost.each do |name, manifest|
-        my_settings = params[self.item_name][manifest.settings_column_name]
+        my_settings = attr[manifest.settings_column_name]
         if my_settings.is_a?(Hash)
-          params[self.item_name][manifest.settings_column_name] = my_settings.to_json
+          attr[manifest.settings_column_name] = my_settings.to_json
         end
       end
-      self.child_models.each do |child_model|
-        child_model.fold_extend_settings params
-      end
     end
     
     #InstanceMethods
@@ -162,7 +166,7 @@ module Peta
     def valid_encode
       self.class.valid_encode_columns.each do |a|
         next if attributes[a] == nil
-        raise Pettanr::BadRequest unless attributes[a].valid_encoding?
+        raise Pettanr::BadRequest unless self.attributes[a].valid_encoding?
       end
     end
     
@@ -179,7 +183,7 @@ module Peta
     end
     
     def boosters
-      @boosters
+      @boosters ||= {}
     end
     
     def extend_column? column_name
@@ -187,10 +191,15 @@ module Peta
     end
     
     def supply_default
-      self.class.my_peta.supply_defaults self
+      self.boosters.each do |boost_name, booster|
+        booster.supply_default
+      end
     end
     
     def overwrite 
+      self.boosters.each do |boost_name, booster|
+        booster.overwrite
+      end
     end
     
     def user_visible? operators