- end
-
- def self.default_panel_size
- 30
- end
-
- def self.max_panel_size
- 200
- end
-
- def self.offset cnt, prm = nil
- offset = prm.to_i
- offset = cnt - 1 if offset >= cnt
- offset = cnt - offset.abs if offset < 0
- offset = 0 if offset < 0
- offset
- end
-
- def self.panel_count cnt, prm = self.default_panel_size
- count = prm.to_i
- count = self.max_panel_size if count > self.max_panel_size
- count = self.default_panel_size if count < 1
- count
- end
-
- def self.list comic, author, offset = 0, limit = Story.default_panel_size
- opt = self.list_opt
- opt.merge!({:conditions => ['stories.comic_id = ?', comic.id], :order => 'stories.t', :offset => offset, :limit => limit})
- Story.find(:all, opt)
- end
-
- def self.list_opt
- {:include => {
- :author => {},
- :comic => {
- :author => {}
- },
- :panel => {
- :author => {},
- :panel_pictures => {:resource_picture => {:artist => {}}},
- :speech_balloons =>{:balloons => {}, :speeches => {}}
- }
- }}
- end
-
- def self.list_json_opt
- {:include => {
- :author => {},
- :comic => {
- :author => {}
- },
- :panel => {
- :author => {},
- :panel_pictures => {:resource_picture => {:artist => {}}},
- :speech_balloons =>{:balloons => {}, :speeches => {}}
- }
- }}
- end
-
- def to_json_list
- self.to_json( :include => {:author => {}, :panels => {:methods => :panel_element}})