validates :code, :presence => true, :numericality => {:greater_than_or_equal_to => 0, :less_than => 0x1000000}
validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
- def self.import filename
- Color.import_file(filename) {|name, attr| Color.store(name, attr)}
+ before_validation :valid_encode
+
+ def valid_encode
+ ['name'].each do |a|
+ next if attributes[a] == nil
+ raise Pettanr::BadRequest unless attributes[a].valid_encoding?
+ end
end
- def self.store name, attr
- r = Color.modify_object name, attr
- r.save
- r
+ def supply_default
+ self.name = 'no name' if self.name.blank?
+ end
+
+ def overwrite
+ end
+
+ def visible? author
+ true
end
def self.default_page_size
page_size
end
- def self.list opt = {}, page = 1, page_size = self.default_page_size
- opt.merge!({:order => 'colors.t', :limit => page_size, :offset => (page -1) * page_size})
+ def self.list page = 1, page_size = self.default_page_size
+ opt = {}
+ opt.merge!(Color.list_opt)
+ opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
+ opt.merge!({:order => 'colors.t'})
Color.find(:all, opt)
end
def self.list_opt
- {:include => {:ground_color => {:panel => {:author => {}}} }}
+ {}
end
def self.list_json_opt
- {:include => {:ground_color => {:panel => {:author => {}}} }}
+ {}
+ end
+
+ def self.show cid, au
+ opt = {}
+ opt.merge!(Color.show_opt)
+ res = Color.find(cid, opt)
+ raise ActiveRecord::Forbidden unless res.visible?(au)
+ res
end
- def self.show cid
- c = Color.find(cid)
- c
+ def self.show_opt
+ {}
+ end
+
+ def self.show_json_opt
+ {}
+ end
+
+ def self.import filename
+ Color.import_file(filename) {|name, attr| Color.store(name, attr)}
+ end
+
+ def self.store name, attr
+ r = Color.modify_object name, attr
+ r.save
+ r
end
end