Class: Fog::Storage::Local::Files
- Inherits:
-
Collection
- Object
- Collection
- Fog::Storage::Local::Files
- Defined in:
- lib/fog/storage/local/models/files.rb
Instance Method Summary collapse
Instance Method Details
#all ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/fog/storage/local/models/files.rb', line 9 def all requires :directory if directory.collection.get(directory.key) data = [] Dir.chdir(service.path_to(directory.key)) { data = Dir.glob('**/*').reject do |file| ::File.directory?(file) end.map do |key| path = file_path(key) { :content_length => ::File.size(path), :key => key, :last_modified => ::File.mtime(path) } end } load(data) else nil end end |
#get(key, &block) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/fog/storage/local/models/files.rb', line 31 def get(key, &block) requires :directory path = file_path(key) if ::File.exist?(path) data = { :content_length => ::File.size(path), :key => key, :last_modified => ::File.mtime(path) } if block_given? file = ::File.open(path) while (chunk = file.read(Excon::CHUNK_SIZE)) && yield(chunk); end file.close new(data) else body = ::File.read(path) new(data.merge!(:body => body)) end else nil end end |
#head(key) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/fog/storage/local/models/files.rb', line 54 def head(key) requires :directory path = file_path(key) if ::File.exist?(path) new({ :content_length => ::File.size(path), :key => key, :last_modified => ::File.mtime(path) }) else nil end end |
#new(attributes = {}) ⇒ Object
68 69 70 71 |
# File 'lib/fog/storage/local/models/files.rb', line 68 def new(attributes = {}) requires :directory super({ :directory => directory }.merge!(attributes)) end |