Class: Moneta::Adapters::Daybreak
- Defined in:
- lib/moneta/adapters/daybreak.rb
Overview
Daybreak backend
Instance Attribute Summary
Attributes included from HashAdapter
Instance Method Summary collapse
-
#close ⇒ Object
Explicitly close the store.
-
#create(key, value, options = {}) ⇒ Boolean
Atomically sets a key to value if it’s not set.
-
#increment(key, amount = 1, options = {}) ⇒ Object
Atomically increment integer value with key.
-
#initialize(options = {}) ⇒ Daybreak
constructor
A new instance of Daybreak.
-
#load(key, options = {}) ⇒ Object
Fetch value with key.
-
#store(key, value, options = {}) ⇒ Object
Store value with key.
Methods included from CreateSupport
Methods included from IncrementSupport
Methods included from HashAdapter
Methods included from Defaults
#[], #[]=, #decrement, #features, #fetch, included, #key?, #supports?
Methods included from OptionSupport
#expires, #prefix, #raw, #with
Constructor Details
#initialize(options = {}) ⇒ Daybreak
Returns a new instance of Daybreak.
11 12 13 14 15 16 17 |
# File 'lib/moneta/adapters/daybreak.rb', line 11 def initialize( = {}) @backend = [:backend] || begin raise ArgumentError, 'Option :file is required' unless [:file] ::Daybreak::DB.new([:file], serializer: ::Daybreak::Serializer::None) end end |
Instance Method Details
#close ⇒ Object
Explicitly close the store
43 44 45 |
# File 'lib/moneta/adapters/daybreak.rb', line 43 def close @backend.close end |
#create(key, value, options = {}) ⇒ Boolean
Not every Moneta store implements this method, a NotImplementedError is raised if it is not supported.
Atomically sets a key to value if it’s not set.
38 39 40 |
# File 'lib/moneta/adapters/daybreak.rb', line 38 def create(key, value, = {}) @backend.lock { super } end |
#increment(key, amount = 1, options = {}) ⇒ Object
Not every Moneta store implements this method, a NotImplementedError is raised if it is not supported.
Atomically increment integer value with key
This method also accepts negative amounts.
33 34 35 |
# File 'lib/moneta/adapters/daybreak.rb', line 33 def increment(key, amount = 1, = {}) @backend.lock { super } end |
#load(key, options = {}) ⇒ Object
Fetch value with key. Return nil if the key doesn’t exist
20 21 22 23 |
# File 'lib/moneta/adapters/daybreak.rb', line 20 def load(key, = {}) @backend.load if [:sync] @backend[key] end |
#store(key, value, options = {}) ⇒ Object
Store value with key
26 27 28 29 30 |
# File 'lib/moneta/adapters/daybreak.rb', line 26 def store(key, value, = {}) @backend[key] = value @backend.flush if [:sync] value end |