OSDN Git Service

pass test
[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       res = true
37       begin
38         res = File.exist?(dir(subdir) + filename)
39       rescue
40         res = false
41       end
42       res
43     end
44     
45     def put(bindata, filename, subdir = nil)
46       res = true
47       begin
48         mkdir subdir
49         File.open(dir(subdir) + filename, 'wb') do |f|
50           f.write bindata
51         end
52       rescue
53         res = false
54       end
55       res
56     end
57     
58     def get(filename, subdir = nil)
59       bindata = ''
60       begin
61         File.open(dir(subdir) + filename, 'rb') do |f|
62           bindata += f.read
63         end
64       rescue
65         bindata = false
66       end
67       bindata
68     end
69     
70     def delete(filename, subdir = nil)
71       res = true
72       begin
73         File.delete(dir(subdir) + filename)
74       rescue
75         res = false
76       end
77       res
78     end
79     
80   end
81 end