X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fmodels%2Fballoon.rb;h=bf3d7f46661a014a36ac558b5dc36f7025e0ca39;hb=87c9866f541c4c7be4c136f2034d2fecbab787a8;hp=dc5fa3c6d549ef4e7d16f094d8734f4998c34f51;hpb=cae8637dae02578dca8698fccd6dc23c07c3a9fd;p=pettanr%2Fpettanr.git diff --git a/app/models/balloon.rb b/app/models/balloon.rb index dc5fa3c6..bf3d7f46 100644 --- a/app/models/balloon.rb +++ b/app/models/balloon.rb @@ -6,7 +6,7 @@ class Balloon < Peta::Element validates :speech_balloon_id, :numericality => {:allow_blank => true} validates :speech_balloon_template_id, :presence => true, :numericality => true, :existence => {:both => false} - validates :speech_balloon_template_classname, :presence => true, :length => {:maximum => 50} + validates :speech_balloon_template_module_name, :presence => true, :length => {:maximum => 50} validates :system_picture_id, :presence => true, :numericality => true, :existence => {:both => false} validates :x, :presence => true, :numericality => true validates :y, :presence => true, :numericality => true @@ -16,7 +16,43 @@ class Balloon < Peta::Element # validates :caption, :presence => true validates :speech_balloon_template_settings, :boost => {:boost_name => :speech_balloon_template} - def _y + scope :with_panel, -> do + includes(speech_balloon: :panel) + end + + scope :with_speech_balloon_template, -> do + includes(:speech_balloon_template) + end + + scope :find_index, -> do + with_panel.where(Panel.arel_table[:publish].gt 0).references(:panel) + end + + scope :find_private, -> (operators) do + with_panel.where(Panel.arel_table[:author_id].eq operators.author.id).references(:panel) + end + + scope :find_by_panel, -> (panel_id) do + find_index.where(panel_id: panel_id).references(:panel) + end + + scope :find_by_speech_balloon, -> (speech_balloon_id) do + find_index.where(speech_balloon_id: speech_balloon_id).references(:panel) + end + + scope :find_by_speech_balloon_template, -> (speech_balloon_template_id) do + find_index.where(speech_balloon_template_id: speech_balloon_template_id).references(:panel) + end + + scope :find_by_system_picture, -> (system_picture_id) do + find_index.where(system_picture_id: system_picture_id).references(:panel) + end + + scope :find_by_author, -> (author_id) do + find_index.where(Panel.arel_table[:author_id].eq author_id).references(:panel) + end + + def y self.attributes['y'] end @@ -37,7 +73,7 @@ self.system_picture_id = 1 self.speech_balloon.speech_balloon_template.symbol_option end - def self.public_list_where + def self.public_list_where list 'panels.publish > 0' end @@ -58,14 +94,10 @@ self.system_picture_id = 1 def style { 'width' => self.width.to_s + 'px','height' => self.height.to_s + 'px', - 'top' => self._y.to_s + 'px','left' => self.x.to_s + 'px' + 'top' => self.y.to_s + 'px','left' => self.x.to_s + 'px' } end - def self.panelize balloon_attributes - {'balloon_attributes' => balloon_attributes} - end - def scenario end