OSDN Git Service

t#29312:any update
[pettanr/pettanr.git] / app / models / author.rb
1 class Author < ActiveRecord::Base
2   has_one :artist
3   belongs_to :user
4   
5   validates :name, :length => {:maximum => 30}
6   
7   before_save do |r|
8     r.name = 'no name' if r.name.blank?
9   end
10   
11   def artist?
12     Artist.find_by_author(self) != nil
13   end
14   
15   def step2 n
16     self.name = n
17     self.save
18   end
19   
20   def self.default_page_size
21     25
22   end
23   
24   def self.max_page_size
25     100
26   end
27   
28   def self.page prm = nil
29     page = prm.to_i
30     page = 1 if page < 1
31     page
32   end
33   
34   def self.page_size prm = self.default_page_size
35     page_size = prm.to_i
36     page_size = self.max_page_size if page_size > self.max_page_size
37     page_size = self.default_page_size if page_size < 1
38     page_size
39   end
40   
41   def self.list opt = {}, page = 1, page_size = self.default_page_size
42     opt.merge!(self.list_opt) unless opt[:include]
43     opt.merge!({:order => 'updated_at desc', :limit => page_size, :offset => (page -1) * page_size})
44     Author.find(:all, opt)
45   end
46   
47   def self.list_opt
48     {:include => :artist}
49   end
50   
51   def self.list_json_opt
52     {:include => :artist}
53   end
54   
55   def self.default_comic_page_size
56     30
57   end
58   
59   def self.comic_max_page_size
60     200
61   end
62   
63   def self.comic_page_size prm = self.default_comic_page_size
64     page_size = prm.to_i
65     page_size = self.comic_max_page_size if page_size > self.comic_max_page_size
66     page_size = self.default_comic_page_size if page_size < 1
67     page_size
68   end
69   
70   def self.default_story_page_size
71     30
72   end
73   
74   def self.story_max_page_size
75     200
76   end
77   
78   def self.story_page_size prm = self.default_story_page_size
79     page_size = prm.to_i
80     page_size = self.story_max_page_size if page_size > self.story_max_page_size
81     page_size = self.default_story_page_size if page_size < 1
82     page_size
83   end
84   
85   def self.default_panel_page_size
86     30
87   end
88   
89   def self.panel_max_page_size
90     200
91   end
92   
93   def self.panel_page_size prm = self.default_panel_page_size
94     page_size = prm.to_i
95     page_size = self.panel_max_page_size if page_size > self.panel_max_page_size
96     page_size = self.default_panel_page_size if page_size < 1
97     page_size
98   end
99   
100   def self.default_panel_picture_page_size
101     30
102   end
103   
104   def self.panel_picture_max_page_size
105     200
106   end
107   
108   def self.panel_picture_page_size prm = self.default_panel_picture_page_size
109     page_size = prm.to_i
110     page_size = self.panel_picture_max_page_size if page_size > self.panel_picture_max_page_size
111     page_size = self.default_panel_picture_page_size if page_size < 1
112     page_size
113   end
114   
115   def self.default_ground_picture_page_size
116     30
117   end
118   
119   def self.ground_picture_max_page_size
120     200
121   end
122   
123   def self.ground_picture_page_size prm = self.default_ground_picture_page_size
124     page_size = prm.to_i
125     page_size = self.ground_picture_max_page_size if page_size > self.ground_picture_max_page_size
126     page_size = self.default_ground_picture_page_size if page_size < 1
127     page_size
128   end
129   
130   def self.default_ground_color_page_size
131     30
132   end
133   
134   def self.ground_color_max_page_size
135     200
136   end
137   
138   def self.ground_color_page_size prm = self.default_ground_color_page_size
139     page_size = prm.to_i
140     page_size = self.ground_color_max_page_size if page_size > self.ground_color_max_page_size
141     page_size = self.default_ground_color_page_size if page_size < 1
142     page_size
143   end
144   
145   def self.default_panel_color_page_size
146     30
147   end
148   
149   def self.panel_color_max_page_size
150     200
151   end
152   
153   def self.panel_color_page_size prm = self.default_panel_color_page_size
154     page_size = prm.to_i
155     page_size = self.panel_color_max_page_size if page_size > self.panel_color_max_page_size
156     page_size = self.default_panel_color_page_size if page_size < 1
157     page_size
158   end
159   
160   def self.show aid, opt = {}
161     a = Author.find(aid, :include => self.show_include_opt(opt))
162 #    raise ActiveRecord::Forbidden unless c.visible?(au)
163     a
164   end
165   
166   def self.show_include_opt opt = {}
167     res = [:artist]
168     res.push(opt[:include]) if opt[:include]
169     res
170   end
171   
172   def self.show_json_include_opt
173     {:include => :artist}
174   end
175   
176   def self.visible_count
177     Author.count
178   end
179   
180 end