OSDN Git Service

d09ae2c240897a50f6b06783d986832d40ccea52
[pettanr/pettanr.git] / app / models / color.rb
1 class Color < ActiveRecord::Base
2   belongs_to :ground_color
3
4   validates :name, :presence => true, :length => {:maximum => 50}, :uniqueness => true
5   validates :code, :presence => true, :numericality => {:greater_than_or_equal_to => 0, :less_than => 0x1000000}
6   validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
7   
8   def self.import filename
9     Color.import_file(filename) {|name, attr| Color.store(name, attr)}
10   end
11   
12   def self.store name, attr
13     r = Color.modify_object name, attr
14     r.save
15     r
16   end
17   
18   def self.default_page_size
19     25
20   end
21   
22   def self.max_page_size
23     100
24   end
25   
26   def self.default_panel_size
27     30
28   end
29   
30   def self.page prm = nil
31     page = prm.to_i
32     page = 1 if page < 1
33     page
34   end
35   
36   def self.page_size prm = self.default_page_size
37     page_size = prm.to_i
38     page_size = self.max_page_size if page_size > self.max_page_size
39     page_size = self.default_page_size if page_size < 1
40     page_size
41   end
42   
43   def self.list opt = {}, page = 1, page_size = self.default_page_size
44     opt.merge!({:order => 'colors.t', :limit => page_size, :offset => (page -1) * page_size})
45     Color.find(:all, opt)
46   end
47   
48   def self.list_opt
49     {:include => {:ground_color => {:panel => {:author => {}}} }}
50   end
51   
52   def self.list_json_opt
53     {:include => {:ground_color => {:panel => {:author => {}}} }}
54   end
55   
56   def self.show cid
57     c = Color.find(cid)
58     c
59   end
60   
61 end