Class: HammerStore::Store
- Inherits:
-
Object
- Object
- HammerStore::Store
- Defined in:
- lib/hammerstore.rb
Overview
Hammerspace-backed store object
Instance Attribute Summary collapse
-
#file ⇒ Object
readonly
Returns the value of attribute file.
-
#raw ⇒ Object
readonly
Returns the value of attribute raw.
Instance Method Summary collapse
-
#[](key) ⇒ Object
Retrieve a key.
-
#[]=(key, value) ⇒ Object
Set a key.
-
#clear!(key = nil) ⇒ Object
Clears a specified key or the whole store.
-
#include?(key) ⇒ Boolean
Check for a key in the store.
-
#initialize(params = {}) ⇒ Store
constructor
Generate an empty store.
-
#keys ⇒ Object
Array of keys in the store.
-
#size ⇒ Object
Return the size of the store.
Constructor Details
#initialize(params = {}) ⇒ Store
Generate an empty store
23 24 25 26 |
# File 'lib/hammerstore.rb', line 23 def initialize(params = {}) @file = params[:file] || fail('You must specify a file') @raw = Hammerspace.new(@file) end |
Instance Attribute Details
#file ⇒ Object (readonly)
Returns the value of attribute file.
18 19 20 |
# File 'lib/hammerstore.rb', line 18 def file @file end |
#raw ⇒ Object (readonly)
Returns the value of attribute raw.
18 19 20 |
# File 'lib/hammerstore.rb', line 18 def raw @raw end |
Instance Method Details
#[](key) ⇒ Object
Retrieve a key
45 46 47 |
# File 'lib/hammerstore.rb', line 45 def [](key) parse @raw[prep(key)] end |
#[]=(key, value) ⇒ Object
Set a key
52 53 54 |
# File 'lib/hammerstore.rb', line 52 def []=(key, value) @raw[prep(key)] = prep(value) end |
#clear!(key = nil) ⇒ Object
Clears a specified key or the whole store
31 32 33 34 35 36 37 38 39 40 |
# File 'lib/hammerstore.rb', line 31 def clear!(key = nil) if key.nil? @raw.clear && {} else key = prep(key) value = @raw[key] @raw.delete key parse value end end |
#include?(key) ⇒ Boolean
Check for a key in the store
66 67 68 |
# File 'lib/hammerstore.rb', line 66 def include?(key) @raw.key? prep(key) end |
#keys ⇒ Object
Array of keys in the store
73 74 75 |
# File 'lib/hammerstore.rb', line 73 def keys @raw.keys.map { |x| parse x } end |
#size ⇒ Object
Return the size of the store
59 60 61 |
# File 'lib/hammerstore.rb', line 59 def size @raw.size end |