validates :artist_name, :presence => true
validates :classname, :presence => true, :length => {:maximum => 50}
+ before_validation :valid_encode
+
+ def valid_encode
+ ['artist_name', 'classname', 'credit', 'settings'].each do |a|
+ next if attributes[a] == nil
+ raise Pettanr::BadRequest unless attributes[a].valid_encoding?
+ end
+ end
+
def supply_default
end
r ? true : false
end
+ def self.head opid
+ Picture.find(:first, :conditions => ['original_picture_id = ?', opid], :order => 'pictures.revision desc')
+ end
+
def head
- Picture.find(:first, :conditions => ['original_picture_id = ?', self.original_picture_id], :order => 'pictures.revision desc')
+ Picture.head(self.original_picture_id)
end
def head?
PictureIO.picture_io.get self.filename, subdir
end
+ def self.export(dt = nil)
+ opt = {}
+ cond = if dt
+ ['artists.author_id is not null and pictures.updated_at >= ?', dt]
+ else
+ 'artists.author_id is not null'
+ end
+ opt.merge!({:conditions => cond})
+ opt.merge!({:include => {:artist => {}}, :order => 'pictures.updated_at desc'})
+ Picture.find(:all, opt)
+ end
+
+ def self.list_as_json_text ary
+ '[' + ary.map {|i| i.to_json_with_picture_data }.join(',') + ']'
+ end
+
+ def picture_data
+ Base64.encode64(self.restore)
+ end
+
+ def to_json_with_picture_data
+ self.to_json({:methods => :picture_data})
+ end
+
def unpublish
imager = PettanImager.load(File.open(Rails.root + 'app/assets/images/error.png', 'rb').read)
return false unless imager