OSDN Git Service

Merge branch 'v04' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v04
[pettanr/pettanr.git] / app / models / author.rb
1 class Author < ActiveRecord::Base
2   has_one :artist
3   belongs_to :user
4   
5   validates :name, :presence => true, :length => {:maximum => 30}
6   validates :user_id, :numericality => true, :existence => true
7   
8   def supply_default
9     self.name = 'no name' if self.name.blank?
10   end
11   
12   def overwrite 
13   end
14   
15   def own? au
16     return false unless au.is_a?(Author)
17     self.id == au.id
18   end
19   
20   def visible? au
21     if au == nil
22       return false if MagicNumber['run_mode'] == 1
23     elsif au.is_a?(Author)
24       return true
25     else
26       return false
27     end
28     true
29   end
30   
31   def artist?
32     Artist.find_by_author(self) != nil
33   end
34   
35   def step2 n
36     self.name = n
37     self.save
38   end
39   
40   def self.default_page_size
41     25
42   end
43   
44   def self.max_page_size
45     100
46   end
47   
48   def self.page prm = nil
49     page = prm.to_i
50     page = 1 if page < 1
51     page
52   end
53   
54   def self.page_size prm = self.default_page_size
55     page_size = prm.to_i
56     page_size = self.max_page_size if page_size > self.max_page_size
57     page_size = self.default_page_size if page_size < 1
58     page_size
59   end
60   
61   def self.list page = 1, page_size = self.default_page_size
62     opt = {}
63     opt.merge!(Author.list_opt)
64     opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
65     opt.merge!({:order => 'created_at desc'})
66     Author.find(:all, opt)
67   end
68   
69   def self.list_opt
70     {:include => {:artist => {}} }
71   end
72   
73   def self.list_json_opt
74     {:include => {:artist => {}} }
75   end
76   
77   def self.show aid, au
78     opt = {}
79     opt.merge!(Author.show_opt)
80     res = Author.find(aid, opt)
81     raise ActiveRecord::Forbidden unless res.visible?(au)
82     res
83   end
84   
85   def self.show_opt
86     {:include => {:artist => {}} }
87   end
88   
89   def self.show_json_opt
90     {:include => {:artist => {}} }
91   end
92   
93   def self.edit aid, au
94     opt = {}
95     opt.merge!(Author.show_opt)
96     res = Author.find aid, opt
97     raise ActiveRecord::Forbidden unless res.own?(au)
98     res
99   end
100   
101   def self.default_comic_page_size
102     25
103   end
104   
105   def self.comic_max_page_size
106     100
107   end
108   
109   def self.comic_page_size prm = self.default_comic_page_size
110     page_size = prm.to_i
111     page_size = self.comic_max_page_size if page_size > self.comic_max_page_size
112     page_size = self.default_comic_page_size if page_size < 1
113     page_size
114   end
115   
116   def self.default_story_page_size
117     25
118   end
119   
120   def self.story_max_page_size
121     100
122   end
123   
124   def self.story_page_size prm = self.default_story_page_size
125     page_size = prm.to_i
126     page_size = self.story_max_page_size if page_size > self.story_max_page_size
127     page_size = self.default_story_page_size if page_size < 1
128     page_size
129   end
130   
131   def self.default_panel_page_size
132     25
133   end
134   
135   def self.panel_max_page_size
136     100
137   end
138   
139   def self.panel_page_size prm = self.default_panel_page_size
140     page_size = prm.to_i
141     page_size = self.panel_max_page_size if page_size > self.panel_max_page_size
142     page_size = self.default_panel_page_size if page_size < 1
143     page_size
144   end
145   
146   def self.default_panel_picture_page_size
147     25
148   end
149   
150   def self.panel_picture_max_page_size
151     100
152   end
153   
154   def self.panel_picture_page_size prm = self.default_panel_picture_page_size
155     page_size = prm.to_i
156     page_size = self.panel_picture_max_page_size if page_size > self.panel_picture_max_page_size
157     page_size = self.default_panel_picture_page_size if page_size < 1
158     page_size
159   end
160   
161   def self.default_ground_picture_page_size
162     25
163   end
164   
165   def self.ground_picture_max_page_size
166     100
167   end
168   
169   def self.ground_picture_page_size prm = self.default_ground_picture_page_size
170     page_size = prm.to_i
171     page_size = self.ground_picture_max_page_size if page_size > self.ground_picture_max_page_size
172     page_size = self.default_ground_picture_page_size if page_size < 1
173     page_size
174   end
175   
176   def self.default_ground_color_page_size
177     25
178   end
179   
180   def self.ground_color_max_page_size
181     100
182   end
183   
184   def self.ground_color_page_size prm = self.default_ground_color_page_size
185     page_size = prm.to_i
186     page_size = self.ground_color_max_page_size if page_size > self.ground_color_max_page_size
187     page_size = self.default_ground_color_page_size if page_size < 1
188     page_size
189   end
190   
191   def self.default_panel_color_page_size
192     25
193   end
194   
195   def self.panel_color_max_page_size
196     100
197   end
198   
199   def self.panel_color_page_size prm = self.default_panel_color_page_size
200     page_size = prm.to_i
201     page_size = self.panel_color_max_page_size if page_size > self.panel_color_max_page_size
202     page_size = self.default_panel_color_page_size if page_size < 1
203     page_size
204   end
205   
206   def self.visible_count
207     Author.count
208   end
209   
210 end