class FakeSQS::FileDatabase

Attributes

filename[R]

Public Class Methods

new(filename) click to toggle source
# File lib/fake_sqs/databases/file.rb, line 8
def initialize(filename)
  @filename = filename
  @queue_objects = {}
end

Public Instance Methods

[](key) click to toggle source
# File lib/fake_sqs/databases/file.rb, line 36
def [](key)
  value = storage[key]
  if value
    deserialize(key)
  else
    value
  end
end
[]=(key, value) click to toggle source
# File lib/fake_sqs/databases/file.rb, line 32
def []=(key, value)
  storage[key] = value.to_yaml
end
delete(key) click to toggle source
# File lib/fake_sqs/databases/file.rb, line 58
def delete(key)
  @queue_objects.delete(key)
  storage.delete(key)
end
each() { |key, deserialize(key)| ... } click to toggle source
# File lib/fake_sqs/databases/file.rb, line 45
def each(&block)
  storage.each do |key, value|
    yield key, deserialize(key)
  end
end
load() click to toggle source
# File lib/fake_sqs/databases/file.rb, line 13
def load
  transaction do
    store["queues"] ||= {}
  end
end
reset() click to toggle source
# File lib/fake_sqs/databases/file.rb, line 25
def reset
  transaction do
    store["queues"] = {}
  end
  @queue_objects = {}
end
select() { |key, deserialize(key)| ... } click to toggle source
# File lib/fake_sqs/databases/file.rb, line 51
def select(&block)
  new_list = storage.select do |key, value|
    yield key, deserialize(key)
  end
  Hash[new_list.map { |key, value| [key, deserialize(key)] }]
end
transaction() { || ... } click to toggle source
# File lib/fake_sqs/databases/file.rb, line 19
def transaction
  store.transaction do
    yield
  end
end
values() click to toggle source
# File lib/fake_sqs/databases/file.rb, line 63
def values
  storage.map { |key, value|
    deserialize(key)
  }
end

Private Instance Methods

deserialize(key) click to toggle source
# File lib/fake_sqs/databases/file.rb, line 71
def deserialize(key)
  @queue_objects[key] ||= Queue.new(storage[key].merge(message_factory: Message))
end
storage() click to toggle source
# File lib/fake_sqs/databases/file.rb, line 75
def storage
  store["queues"]
end
store() click to toggle source
# File lib/fake_sqs/databases/file.rb, line 79
def store
  @store ||= YAML::Store.new(filename)
end