OSDN Git Service

e
[pettanr/pettanr.git] / app / models / speech_balloon_template.rb
index a6c6f75..a4ad04a 100644 (file)
@@ -1,5 +1,6 @@
 #フキダシテンプレート
-class SpeechBalloonTemplate < ActiveRecord::Base
+class SpeechBalloonTemplate < Peta::Item
+  load_manifest
   has_many :speech_balloons
   belongs_to :system_picture
   
@@ -10,15 +11,6 @@ class SpeechBalloonTemplate < ActiveRecord::Base
   validates :system_picture_id, :presence => true, :numericality => true, :existence => {:both => false}
   validates :settings, :presence => true
   
-  before_validation :valid_encode
-  
-  def valid_encode
-    ['name', 'classname', 'caption', 'settings'].each do |a|
-      next if attributes[a] == nil
-      raise Pettanr::BadRequest unless attributes[a].valid_encoding?
-    end
-  end
-  
   def supply_default
   end
   
@@ -26,24 +18,13 @@ class SpeechBalloonTemplate < ActiveRecord::Base
     self.t = SpeechBalloonTemplate.count.to_i if self.new_record?
   end
   
-  def visible? author
-    true
-  end
-  
   def symbol_option
     self.system_picture.tmb_opt_img_tag
   end
   
-  def self.list
-    opt = {}
-    opt.merge!(self.list_opt)
-    opt.merge!({:order => 'speech_balloon_templates.t asc'})
-    SpeechBalloonTemplate.find(:all, opt)
-  end
-  
   def self.enable_list
-    SpeechBalloonTemplate.list.delete_if {|sbt|
-      Pettanr::Application.speech_balloons[sbt.classname] == nil
+    SpeechBalloonTemplate.find(:all).delete_if {|sbt|
+      sbt.enable? == false
     }
   end
   
@@ -55,14 +36,6 @@ class SpeechBalloonTemplate < ActiveRecord::Base
     {}
   end
   
-  def self.show rid, au
-    opt = {}
-    opt.merge!(self.show_opt)
-    res = SpeechBalloonTemplate.find(rid, opt)
-    raise ActiveRecord::Forbidden unless res.visible?(au)
-    res
-  end
-  
   def self.show_opt
     {}
   end
@@ -85,8 +58,16 @@ class SpeechBalloonTemplate < ActiveRecord::Base
     @template_settings ||= JSON.parse(self.settings)
   end
   
+  def my_engine_resource
+    Manifest.manifest.system_resources.engine_resources['speech_balloon_templates']
+  end
+  
   def engine_name
-    Pettanr::Application.speech_balloons[self.classname]
+    self.my_engine_resource.resource_items[self.classname]
+  end
+  
+  def enable?
+    self.my_engine_resource.resource_items.include? self.classname
   end
   
   def engine_module_name
@@ -105,6 +86,10 @@ class SpeechBalloonTemplate < ActiveRecord::Base
     engine.const_get 'SpeechBalloonModule'
   end
   
+  def engine_extend_module
+    engine.extend_module
+  end
+  
   def engine_balloon_model
     engine.const_get 'Balloon'
   end