Sha256: f735625da2ec3ec9312a9f73d5118fb6e28dc57bbbeb4c60a083e45edfbd777e
Contents?: true
Size: 1.72 KB
Versions: 5
Compression:
Stored size: 1.72 KB
Contents
# Copyright: 2011 TMX Credit # Author: Potapov Sergey (aka Blake) require 'riak' module Moneta module Adapters # Riak backend # @api public class Riak include Defaults attr_reader :backend # @param [Hash] options # @option options [String] :bucket ('moneta') Bucket name # @option options [String] :content_type ('application/octet-stream') Default content type # @option options All other options passed to `Riak::Client#new` # @option options [::Riak::Client] :backend Use existing backend instance def initialize(options = {}) bucket = options.delete(:bucket) || 'moneta' @content_type = options.delete(:content_type) || 'application/octet-stream' @backend = options[:backend] || ::Riak::Client.new(options) @bucket = @backend.bucket(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 => ex 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] || @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
5 entries across 5 versions & 1 rubygems