X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fmodels%2Fspeech_balloon_template.rb;h=5217f5d31068026304cc9e677003d32e9369b602;hb=467daaf74bbf62a7ad43d7af7fd6326bfacd9010;hp=4aa68e5b0b37a384902bee048e6ff12864020dfd;hpb=f490b2443e7ad95edda136afda8a2f6f143943dc;p=pettanr%2Fpettanr.git diff --git a/app/models/speech_balloon_template.rb b/app/models/speech_balloon_template.rb index 4aa68e5b..5217f5d3 100644 --- a/app/models/speech_balloon_template.rb +++ b/app/models/speech_balloon_template.rb @@ -1,24 +1,16 @@ #フキダシテンプレート -class SpeechBalloonTemplate < ActiveRecord::Base +class SpeechBalloonTemplate < Peta::Template + load_manifest has_many :speech_balloons belongs_to :system_picture validates :name, :presence => true, :uniqueness => true, :length => {:maximum => 50} - validates :classname, :presence => true, :length => {:maximum => 50} + validates :module_name, :presence => true, :length => {:maximum => 50} validates :caption, :presence => true, :length => {:maximum => 30} validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0} 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,39 +18,16 @@ class SpeechBalloonTemplate < ActiveRecord::Base self.t = SpeechBalloonTemplate.count.to_i if self.new_record? end - def visible? author - true - 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.list_opt - {} - end - - def self.list_json_opt - {} - 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 + def symbol_option + self.system_picture.tmb_opt_img_tag end def self.show_opt {} end - def self.show_json_opt - {} + def parsed_settings + @parsed_settings ||= JSON.parse(self.settings) end def self.store name, attr @@ -71,46 +40,6 @@ class SpeechBalloonTemplate < ActiveRecord::Base r end - def parsed_settings - @template_settings ||= JSON.parse(self.settings) - end - - def engine_name - Pettanr::Application.speech_balloons[self.classname] - end - - def engine_module_name - self.engine_name.camelize - end - - def engine - Object.const_get self.engine_module_name - end - - def engine_speech_balloon_model - engine.const_get 'SpeechBalloon' - end - - def engine_speech_balloon_module - engine.const_get 'SpeechBalloonModule' - end - - def engine_balloon_model - engine.const_get 'Balloon' - end - - def engine_balloon_module - engine.const_get 'BalloonModule' - end - - def engine_speech_model - engine.const_get 'Speech' - end - - def engine_speech_module - engine.const_get 'SpeechModule' - end - def self.import filename SpeechBalloonTemplate.import_file(filename) {|name, attr| SpeechBalloonTemplate.store(name, attr)} end