OSDN Git Service

classname rename to module_name
[pettanr/pettanr.git] / app / models / scroll.rb
1 class Scroll < Peta::Binder
2   load_manifest
3   has_many :scroll_panels
4   belongs_to :author
5   
6   validates :title, :presence => true, :length => {:maximum => 100}
7   validates :visible, :presence => true, :numericality => true, :inclusion => {:in => 0..1}
8   validates :author_id, :presence => true, :numericality => true, :existence => {:both => false}
9   
10   def supply_default
11     self.visible = 0 if self.visible.blank?
12     self.author_id = nil
13   end
14   
15   def overwrite operators
16     return false unless operators.author
17     self.author_id = operators.author.id
18     super()
19   end
20   
21   def visible? operators
22     case super
23     when nil # super return
24       return true
25     when false
26       return false
27     else
28       self.visible > 0
29     end
30   end
31   
32   def self.public_list_where
33     'scrolls.visible > 0'
34   end
35   
36   def self.show_opt
37     {:include => {:scroll_panels => {:panel => {}}, :author => {}}}
38   end
39   
40   def scenario
41     panels.map {|panel|
42       panel.scenario
43     }.join
44   end
45   
46   def plain_scenario
47     panels.map {|panel|
48       panel.plain_scenario
49     }.join
50   end
51   
52 end