Class: PrestoCache::Memory::Store

Inherits:
Object
  • Object
show all
Defined in:
lib/presto/cache/memory.rb

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (Store) initialize

A new instance of Store



14
15
16
# File 'lib/presto/cache/memory.rb', line 14

def initialize
  @store = Hash.new
end

Instance Attribute Details

- (Object) serialize (readonly)

Returns the value of attribute serialize



12
13
14
# File 'lib/presto/cache/memory.rb', line 12

def serialize
  @serialize
end

Instance Method Details

- (Object) [](key)



22
23
24
# File 'lib/presto/cache/memory.rb', line 22

def [] key
  @store[key]
end

- (Object) []=(key, val)



18
19
20
# File 'lib/presto/cache/memory.rb', line 18

def []= key, val
  @store[key] = val
end

- (Object) delete(k)



52
53
54
# File 'lib/presto/cache/memory.rb', line 52

def delete k
  @store.delete k
end

- (Object) drop



60
61
62
# File 'lib/presto/cache/memory.rb', line 60

def drop
  @store.clear && @dropped = true
end

- (Boolean) dropped?

Returns:

  • (Boolean)


64
65
66
# File 'lib/presto/cache/memory.rb', line 64

def dropped?
  @dropped
end

- (Object) filter(filters = {})



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/presto/cache/memory.rb', line 26

def filter filters = {}
  key, val = filters.values_at(API::KEY, API::VAL)
  cmp = lambda { |f, v| f.is_a?(Regexp) ? v =~ f : v == f }
  items = lambda { key ? @store.select { |k, v| cmp.call(key, k) } : @store }
  push = lambda { |k, v| {API::KEY => k, API::VAL => v} }
  filter_by_key = lambda do
    results = []
    items.call.each_pair { |k, v| results << push.call(k, v) }
    results
  end
  filter_by_key_and_val = lambda do
    results = []
    items.call.each_pair { |k, v| cmp.call(val, v) && results << push.call(k, v) }
    results
  end
  val ? filter_by_key_and_val.call : filter_by_key.call
end

- (Object) keys



48
49
50
# File 'lib/presto/cache/memory.rb', line 48

def keys
  @store.keys
end

- (Object) size



44
45
46
# File 'lib/presto/cache/memory.rb', line 44

def size
  @store.size
end

- (Object) truncate



56
57
58
# File 'lib/presto/cache/memory.rb', line 56

def truncate
  @store.clear
end