OSDN Git Service

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