Sha256: 95bcabe5d28f627f6628542b3a3c04478b69f4f9eb45a03cefaa252eb26c9fdc
Contents?: true
Size: 1.52 KB
Versions: 3
Compression:
Stored size: 1.52 KB
Contents
require 'attached/storage/base' module Attached module Storage class Local < Base attr_reader :mode # Create a new interface supporting save and destroy operations. # # Usage: # # Attached::Storage::Local.new() def initialize() @mode = 0644 end # Access the host (e.g. /system/) for a storage service. # # Usage: # # storage.host def host() "/system/" end # Save a file to a given path. # # Parameters: # # * file - The file to save. # * path - The path to save. def save(file, path) path = "#{Rails.root}/public/system/#{path}" dirname, basename = File.split(path) return if file.path == path begin FileUtils.mkdir_p(dirname) FileUtils.cp(file.path, path) FileUtils.chmod(self.mode, path) rescue Errno::ENOENT end end # Retrieve a file from a given path. # # Parameters: # # * path - The path to retrieve. def retrieve(path) path = "#{Rails.root}/public/system/#{path}" File.open(path) end # Destroy a file at a given path. # # Parameters: # # * path - The path to destroy. def destroy(path) path = "#{Rails.root}/public/system/#{path}" dirname, basename = File.split(path) begin FileUtils.rm(path) rescue Errno::ENOENT end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
attached-1.0.7 | lib/attached/storage/local.rb |
attached-1.0.6 | lib/attached/storage/local.rb |
attached-1.0.5 | lib/attached/storage/local.rb |