OSDN Git Service

74f020c0f9faedf0b7c7d7e7c7289001c61539ff
[pettanr/pettanr.git] / lib / local_picture.rb
1 require 'picture_io'
2 class PictureIO
3   class LocalPicture
4     def initialize base_dir = Rails.root + 'public/images/'
5       @base = base_dir
6     end
7     
8     def base
9       @base
10     end
11     
12     def base=(b)
13       @base = b
14     end
15     
16     def self.subdirs
17       ['', 'v', 'h', 'vh', 'thumbnail']
18     end
19     
20     def dir(subdir = nil)
21       sd = if subdir.to_s.empty?
22         self.base
23       else
24         self.base + (subdir.to_s + '/')
25       end
26       sd
27     end
28     
29     def mkdir subdir = nil
30       Dir.mkdir(base) unless File.exist?(base)
31       return if subdir.to_s.empty?
32       Dir.mkdir(dir(subdir)) unless File.exist?(dir(subdir))
33     end
34     
35     def exist?(filename, subdir = nil)
36       File.exist?(dir(subdir) + filename)
37     end
38     
39     def put(bindata, filename, subdir = nil)
40       mkdir subdir
41       open(dir(subdir) + filename, 'wb') do |f|
42         f.write bindata
43       end
44     end
45     
46     def get(filename, subdir = nil)
47       bindata = ''
48       open(dir(subdir) + filename, 'rb') do |f|
49         bindata += f.read
50       end
51       bindata
52     end
53     
54     def delete(filename, subdir = nil)
55       File.delete(dir(subdir) + filename)
56     end
57     
58   end
59 end