module FakeSQS

Constants

InvalidAction
MessageNotInflight
NonExistentQueue
ReadCountOutOfRange
ReceiptHandleIsInvalid
VERSION

Public Class Methods

api(options = {}) click to toggle source
# File lib/fake_sqs.rb, line 53
def self.api(options = {})
  db = database_for(options.fetch(:database) { ":memory:" })
  API.new(
    server: options.fetch(:server),
    queues: queues(db),
    responder: responder
  )
end
database_for(name) click to toggle source
# File lib/fake_sqs.rb, line 82
def self.database_for(name)
  if name == ":memory:"
    MemoryDatabase.new
  else
    FileDatabase.new(name)
  end
end
message_factory() click to toggle source
# File lib/fake_sqs.rb, line 74
def self.message_factory
  Message
end
queue() click to toggle source
# File lib/fake_sqs.rb, line 78
def self.queue
  Queue
end
queue_factory() click to toggle source
# File lib/fake_sqs.rb, line 70
def self.queue_factory
  QueueFactory.new(message_factory: message_factory, queue: queue)
end
queues(database) click to toggle source
# File lib/fake_sqs.rb, line 62
def self.queues(database)
  Queues.new(queue_factory: queue_factory, database: database)
end
responder() click to toggle source
# File lib/fake_sqs.rb, line 66
def self.responder
  Responder.new
end
server(options = {}) click to toggle source
# File lib/fake_sqs.rb, line 49
def self.server(options = {})
  Server.new(options)
end
to_rack(options) click to toggle source
# File lib/fake_sqs.rb, line 17
def self.to_rack(options)

  require 'fake_sqs/web_interface'
  app = FakeSQS::WebInterface

  if (log = options[:log])
    file = File.new(log, "a+")
    file.sync = true
    app.use Rack::CommonLogger, file
    app.set :log_file, file
    app.enable :logging
  end

  if options[:verbose]
    require 'fake_sqs/show_output'
    app.use FakeSQS::ShowOutput
    app.enable :logging
  end

  if options[:daemonize]
    require 'fake_sqs/daemonize'
    Daemonize.new(options).call
  end

  app.set :port, options[:port] if options[:port]
  app.set :bind, options[:host] if options[:host]
  app.set :server, options[:server] if options[:server]
  server = FakeSQS.server(port: options[:port], host: options[:host])
  app.set :api, FakeSQS.api(server: server, database: options[:database])
  app
end