class Moneta::Adapters::Fog

Fog backend (Cloud storage services) @api public

Public Class Methods

new(options = {}) click to toggle source

@param [Hash] options @option options [String] :dir Fog directory @option options [::Fog::Storage] :backend Use existing backend instance @option options Other options passed to ‘Fog::Storage#new`

Calls superclass method Moneta::Adapter::new
# File lib/moneta/adapters/fog.rb, line 16
def initialize(options = {})
  super
  @directory = backend.directories.get(config.dir) || backend.directories.create(key: config.dir)
end

Public Instance Methods

clear(options = {}) click to toggle source

(see Proxy#clear)

# File lib/moneta/adapters/fog.rb, line 49
def clear(options = {})
  @directory.files.all.each do |file|
    file.destroy
  end
  self
end
delete(key, options = {}) click to toggle source

(see Proxy#delete)

# File lib/moneta/adapters/fog.rb, line 33
def delete(key, options = {})
  if value = @directory.files.get(key)
    body = value.body
    value.destroy
    body
  end
end
key?(key, options = {}) click to toggle source

(see Proxy#key?)

# File lib/moneta/adapters/fog.rb, line 22
def key?(key, options = {})
  @directory.files.head(key) != nil
end
load(key, options = {}) click to toggle source

(see Proxy#load)

# File lib/moneta/adapters/fog.rb, line 27
def load(key, options = {})
  value = @directory.files.get(key)
  value && value.body
end
store(key, value, options = {}) click to toggle source

(see Proxy#store)

# File lib/moneta/adapters/fog.rb, line 42
def store(key, value, options = {})
  value = value.dup if value.frozen? # HACK: Fog needs unfrozen string
  @directory.files.create(options.merge(key: key, body: value))
  value
end