Class: Collective::Mocks::Storage

Inherits:
Object
  • Object
show all
Defined in:
lib/collective/mocks/storage.rb

Instance Method Summary collapse

Constructor Details

#initializeStorage

Returns a new instance of Storage.



5
6
7
# File 'lib/collective/mocks/storage.rb', line 5

def initialize
  @storage = {}
end

Instance Method Details

#del(key) ⇒ Object



23
24
25
# File 'lib/collective/mocks/storage.rb', line 23

def del( key )
  @storage.delete( key )
end

#get(key) ⇒ Object



19
20
21
# File 'lib/collective/mocks/storage.rb', line 19

def get( key )
  @storage[key]
end

#map_del(key) ⇒ Object



69
70
71
# File 'lib/collective/mocks/storage.rb', line 69

def map_del( key )
  @storage.delete( key )
end

#map_get(key, name) ⇒ Object



57
58
59
# File 'lib/collective/mocks/storage.rb', line 57

def map_get( key, name )
  (@storage[key] || {}) [name]
end

#map_get_all_keys(key) ⇒ Object



61
62
63
# File 'lib/collective/mocks/storage.rb', line 61

def map_get_all_keys( key )
  (@storage[key] || {}).keys
end

#map_set(key, name, value) ⇒ Object

Maps



52
53
54
55
# File 'lib/collective/mocks/storage.rb', line 52

def map_set( key, name, value )
  @storage[key] ||= {}
  @storage[key][name] = value
end

#map_size(key) ⇒ Object



65
66
67
# File 'lib/collective/mocks/storage.rb', line 65

def map_size( key )
  (@storage[key] || {} ).size
end

#put(key, value) ⇒ Object

Simple values



15
16
17
# File 'lib/collective/mocks/storage.rb', line 15

def put( key, value )
  @storage[key] = value
end

#queue_add(queue_name, item, score) ⇒ Object

Priority Queue



75
76
77
78
79
# File 'lib/collective/mocks/storage.rb', line 75

def queue_add( queue_name, item, score )
  queue = @storage[queue_name] ||= []
  queue << [ item, score ]
  queue.sort_by! { |it| it.last }
end

#queue_del(queue_name) ⇒ Object



104
105
106
# File 'lib/collective/mocks/storage.rb', line 104

def queue_del( queue_name )
  @storage.delete( queue_name )
end

#queue_pop(queue_name, max_score = Time.now.to_i) ⇒ Object

pop the lowest item from the queue IFF it scores <= max_score



82
83
84
85
86
87
88
89
90
# File 'lib/collective/mocks/storage.rb', line 82

def queue_pop( queue_name, max_score = Time.now.to_i )
  queue = @storage[queue_name] || []
  return nil if queue.size == 0
  if queue.first.last <= max_score then
    queue.shift.first
  else
    nil
  end
end

#queue_pop_sync(queue_name, max_score = Time.now.to_i, options = {}) ⇒ Object



92
93
94
95
96
97
98
99
100
101
102
# File 'lib/collective/mocks/storage.rb', line 92

def queue_pop_sync( queue_name, max_score = Time.now.to_i, options = {} )
  timeout  = options[:timeout] || 1
  deadline = Time.now.to_f + timeout

  loop do
    result = queue_pop( queue_name, max_score )
    return result if result

    raise Timeout::Error if Time.now.to_f > deadline
  end
end

#reconnect_after_forkObject



9
10
11
# File 'lib/collective/mocks/storage.rb', line 9

def reconnect_after_fork
  # nop
end

#set_add(key, value) ⇒ Object

Sets



29
30
31
32
# File 'lib/collective/mocks/storage.rb', line 29

def set_add( key, value )
  @storage[key] ||= []
  @storage[key] << value unless @storage[key].member?(value)
end

#set_get_all(key) ⇒ Object



46
47
48
# File 'lib/collective/mocks/storage.rb', line 46

def set_get_all( key )
  @storage[key] || []
end

#set_member?(key, value) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/collective/mocks/storage.rb', line 42

def set_member?( key, value )
  (@storage[key] || []).member?( value )
end

#set_remove(key, value) ⇒ Object



38
39
40
# File 'lib/collective/mocks/storage.rb', line 38

def set_remove( key, value )
  (@storage[key] || [] ).delete( value )
end

#set_size(key) ⇒ Object



34
35
36
# File 'lib/collective/mocks/storage.rb', line 34

def set_size( key )
  (@storage[key] || [] ).size
end