Sha256: 3a994e94297c9a9ea3e0e5420ccbd8751642853583b03d252be358bbc8bd6f0b
Contents?: true
Size: 1.72 KB
Versions: 3
Compression:
Stored size: 1.72 KB
Contents
class Carrot module AMQP HEADER = "AMQP".freeze VERSION_MAJOR = 8 VERSION_MINOR = 0 PORT = 5672 end end $:.unshift File.expand_path(File.dirname(File.expand_path(__FILE__))) require 'amqp/spec' require 'amqp/buffer' require 'amqp/exchange' require 'amqp/frame' require 'amqp/header' require 'amqp/queue' require 'amqp/server' require 'amqp/protocol' class Carrot @logging = false class << self attr_accessor :logging end def self.logging? @logging end class Error < StandardError; end attr_accessor :server def initialize(opts = {}) @server = AMQP::Server.new(opts) end def queue(name, opts = {}) queues[name] ||= AMQP::Queue.new(server, name, opts) end def stop server.close end def queues @queues ||= {} end def direct(name = 'amq.direct', opts = {}) exchanges[name] ||= Exchange.new(server, :direct, name, opts) end def topic(name = 'amq.topic', opts = {}) exchanges[name] ||= Exchange.new(server, :topic, name, opts) end def headers(name = 'amq.match', opts = {}) exchanges[name] ||= Exchange.new(server, :headers, name, opts) end def exchanges @exchanges ||= {} end private def log(*args) return unless Carrot.logging? pp args puts end end #-- convenience wrapper (read: HACK) for thread-local Carrot object class Carrot def Carrot.default #-- XXX clear this when connection is closed Thread.current[:carrot] ||= Carrot.new end # Allows for calls to all Carrot instance methods. This implicitly calls # Carrot.new so that a new channel is allocated for subsequent operations. def Carrot.method_missing(meth, *args, &blk) Carrot.default.__send__(meth, *args, &blk) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
famoseagle-carrot-0.3.0 | lib/carrot.rb |
famoseagle-carrot-0.4.0 | lib/carrot.rb |
famoseagle-carrot-0.5.0 | lib/carrot.rb |