end
return
end
- @original_picture.destroy
-
+ OriginalPicture.transaction do
+ @original_picture.destroy
+ end
+
respond_to do |format|
format.html { redirect_to original_pictures_url }
format.json { head :ok }
# DELETE /system_pictures/1.json
def destroy
@system_picture = SystemPicture.find(params[:id])
- @system_picture.destroy
-
+ SystemPicture.transaction do
+ @system_picture.destroy
+
+ end
+
respond_to do |format|
format.html { redirect_to system_pictures_url }
format.json { head :ok }
belongs_to :lisence
has_one :resource_picture
+ before_destroy :destroy_with_file
+
def validate
errors.add(:filesize, 'size over(1MB)') if self.filesize > 1000000
end
+ def destroy_with_file
+ PictureIO.original_picture_io.delete self.filename
+ self.resource_picture.destroy
+ end
+
def dext
self.ext.downcase
end
has_many :panel_pictures
belongs_to :original_picture
+ before_destroy :destroy_with_file
+
+ def destroy_with_file
+ PictureIO.resource_picture_io.delete self.filename
+ PictureIO.resource_picture_io.class.subdirs.each do |d|
+ next if d.empty?
+ PictureIO.resource_picture_io.delete(self.filename, d) if PictureIO.resource_picture_io.exist?(self.filename, d)
+ end
+ end
+
def self.resize(data, dw, dh)
Magick::Image.from_blob(data).shift.resize(dw, dh)
end
class SystemPicture < ActiveRecord::Base
has_many :balloons
has_many :balloon_templates
-
+
+ before_destroy :destroy_with_file
+
def validate
errors.add(:filesize, 'size over(1MB)') if self.filesize > 1000000
end
+ def destroy_with_file
+ PictureIO.system_picture_io.delete self.filename
+ end
+
def dext
self.ext.downcase
end
Dir.mkdir(dir(subdir)) unless File.exist?(dir(subdir))
end
+ def exist?(filename, subdir = nil)
+ File.exist?(dir(subdir) + filename)
+ end
+
def put(bindata, filename, subdir = nil)
mkdir subdir
open(dir(subdir) + filename, 'wb') do |f|
bindata
end
+ def delete(filename, subdir = nil)
+ File.delete(dir(subdir) + filename)
+ end
+
end
end
sd
end
+ def exist?(filename, subdir = nil)
+ AWS::S3::S3Object.exist?(dir(subdir) + filename)
+ end
+
def put(bindata, filename, subdir = nil)
AWS::S3::S3Object.store(dir(subdir) + filename, bindata, base)
end
bindata
end
- def store(dt)
- iw, ih = Image.fix_size_both(80, 80, dt.columns, dt.rows)
- n = dt.to_blob
- v = dt.flip.to_blob
- h = dt.flop.to_blob
- vh = dt.flip.flop.to_blob
- AWS::S3::S3Object.store(filename, n, 'pettanr')
- AWS::S3::S3Object.store('v/' + filename, v, 'pettanr') if v
- AWS::S3::S3Object.store('h/' + filename, h, 'pettanr') if h
- AWS::S3::S3Object.store('vh/' + filename, vh, 'pettanr') if vh
-
- t = Image.resize(dt.to_blob, iw, ih).to_blob
- AWS::S3::S3Object.store('thumbnail/' + filename, t, 'pettanr')
+ def delete(filename, subdir = nil)
+ AWS::S3::S3Object.delete(dir(subdir) + filename, base)
end
- def restore(turn)
- dt = ''
- # if AWS::S3::S3Object.exists?(fn, 'pettanr')
- d = turn ? "#{turn}/" : ''
- AWS::S3::S3Object.stream(d + filename, 'pettanr') do |st|
- dt += st if st
- end
- dt
- end
end
end