def self.included(model)
args = model::IMAGE
set_foreign_key = args[:foreign_key] || "#{args[:owner]}_id".downcase.to_sym
set_many_to_one = args[:many_to_one] || args[:owner].to_s.downcase.to_sym
model.set_schema do
primary_key :id
varchar :original
varchar :mime, :size => 22
time :created_at
time :updated_at
foreign_key set_foreign_key
end
model.many_to_one set_many_to_one
model.before_create :generate_thumbnails do
generate_thumbnails
self.created_at = Time.now
end
model.before_save :update_time do
self.updated_at = Time.now
end
model.before_destroy :cleanup do
cleanup if conf[:cleanup]
end
model.extend(SingletonMethods)
model.send(:include,
InstanceMethods,
Ramaze::Helper::CGI,
Ramaze::Helper::Link)
args[:sizes].each do |size, *args|
model.send(:define_method, size){ public_file(size) }
model.send(:define_method, "#{size}_url"){ file(size) }
end
end