Sha256: 5b5b77e3b26ed0ca2273d83d7974b9ce7a8835db9f8e83bf9966045d78ea5b19
Contents?: true
Size: 1.43 KB
Versions: 4
Compression:
Stored size: 1.43 KB
Contents
require 'daybreak' module Moneta module Adapters # Daybreak backend # @api public class Daybreak < Adapter include DBMAdapter include IncrementSupport include CreateSupport include EachKeySupport # @!method initialize(options = {}) # @param [Hash] options # @option options [String] :file Database file # @option options [::Daybreak] :backend Use existing backend instance backend { |file:| ::Daybreak::DB.new(file, serializer: ::Daybreak::Serializer::None) } # (see Proxy#load) def load(key, options = {}) backend.load if options[:sync] backend[key] end # (see Proxy#store) def store(key, value, options = {}) backend[key] = value backend.flush if options[:sync] value end # (see Proxy#increment) def increment(key, amount = 1, options = {}) backend.lock { super } end # (see Proxy#create) def create(key, value, options = {}) backend.lock { super } end # (see Proxy#merge!) def merge!(pairs, options = {}) if block_given? backend.lock do backend.update(pairs.map do |key, new_value| new_value = yield(key, load(key), new_value) if key?(key) [key, new_value] end) end else backend.update(pairs) 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/daybreak.rb |
moneta-1.5.2 | lib/moneta/adapters/daybreak.rb |
moneta-1.5.1 | lib/moneta/adapters/daybreak.rb |
moneta-1.5.0 | lib/moneta/adapters/daybreak.rb |