Class: HammerStore::Store

Inherits:
Object
  • Object
show all
Defined in:
lib/hammerstore.rb

Overview

Hammerspace-backed store object

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#fileObject (readonly)

Returns the value of attribute file.



18
19
20
# File 'lib/hammerstore.rb', line 18

def file
  @file
end

#rawObject (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

Returns:

  • (Boolean)


66
67
68
# File 'lib/hammerstore.rb', line 66

def include?(key)
  @raw.key? prep(key)
end

#keysObject

Array of keys in the store



73
74
75
# File 'lib/hammerstore.rb', line 73

def keys
  @raw.keys.map { |x| parse x }
end

#sizeObject

Return the size of the store



59
60
61
# File 'lib/hammerstore.rb', line 59

def size
  @raw.size
end