Sha256: 214e3feb51448f31de0cf0d6a223c6ab4f35bd1e7d2ecd1a1612fec05f94f82c
Contents?: true
Size: 1.63 KB
Versions: 4
Compression:
Stored size: 1.63 KB
Contents
require 'riak' module Moneta module Adapters # Riak backend # @api public # @author Potapov Sergey (aka Blake) class Riak < Adapter config :bucket, default: 'moneta' config :content_type, default: 'application/octet-stream' backend { |**options| ::Riak::Client.new(options) } # @param [Hash] options # @option options [String] :bucket ('moneta') Bucket name # @option options [String] :content_type ('application/octet-stream') Default content type # @option options [::Riak::Client] :backend Use existing backend instance # @option options All other options passed to `Riak::Client#new` def initialize(options = {}) super @bucket = backend.bucket(config.bucket) end # (see Proxy#key?) def key?(key, options = {}) @bucket.exists?(key, options.dup) end # (see Proxy#load) def load(key, options = {}) @bucket.get(key, options.dup).raw_data rescue ::Riak::FailedRequest nil end # (see Proxy#delete) def delete(key, options = {}) value = load(key, options) @bucket.delete(key, options.dup) value end # (see Proxy#store) def store(key, value, options = {}) obj = ::Riak::RObject.new(@bucket, key) obj.content_type = options[:content_type] || config.content_type obj.raw_data = value obj.store(options.dup) value end # (see Proxy#clear) def clear(options = {}) @bucket.keys do |keys| keys.each { |key| @bucket.delete(key) } end self end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
moneta-1.6.0 | lib/moneta/adapters/riak.rb |
moneta-1.5.2 | lib/moneta/adapters/riak.rb |
moneta-1.5.1 | lib/moneta/adapters/riak.rb |
moneta-1.5.0 | lib/moneta/adapters/riak.rb |