OSDN Git Service

fix:error dlg
[pettanr/pettanr.git] / lib / local_picture.rb
1 require 'picture_io'
2 class PictureIO
3   class LocalPicture
4     def initialize host_dir = Rails.root + 'public/images/', base_dir = ''
5       @host_dir = host_dir
6       @base_dir = @host_dir + base_dir
7     end
8     
9     def host_dir
10       @host_dir
11     end
12     
13     def host_dir=(d)
14       @host_dir = d
15     end
16     
17     def base_dir
18       @base_dir
19     end
20     
21     def base_dir=(d)
22       @base_dir = d
23     end
24     
25     def dir(subdir = nil)
26       sd = if subdir.to_s.empty?
27         ''
28       else
29         subdir.to_s + '/'
30       end
31       @base_dir + '/' + sd
32     end
33     
34     def mkdir subdir = nil
35       Dir.mkdir(base_dir) unless File.exist?(base_dir)
36       return if subdir.to_s.empty?
37       Dir.mkdir(dir(subdir)) unless File.exist?(dir(subdir))
38     end
39     
40     def exist?(filename, subdir = nil)
41       res = true
42       begin
43         res = File.exist?(dir(subdir) + filename)
44       rescue
45         raise PictureIO::Error
46       end
47       res
48     end
49     
50     def put(bindata, filename, subdir = nil)
51       res = true
52       begin
53         mkdir subdir
54         File.open(dir(subdir) + filename, 'wb') do |f|
55           f.write bindata
56         end
57       rescue
58         raise PictureIO::Error
59       end
60       res
61     end
62     
63     def get(filename, subdir = nil)
64       bindata = ''
65       begin
66         File.open(dir(subdir) + filename, 'rb') do |f|
67           bindata += f.read
68         end
69       rescue
70         raise PictureIO::Error
71       end
72       bindata
73     end
74     
75     def delete(filename, subdir = nil)
76       res = true
77       begin
78         File.delete(dir(subdir) + filename)
79       rescue
80         raise PictureIO::Error
81       end
82       res
83     end
84     
85   end
86 end