Module: Fleck

Defined in:
lib/fleck.rb,
lib/fleck/client.rb,
lib/fleck/version.rb,
lib/fleck/consumer.rb,
lib/fleck/configuration.rb,
lib/fleck/client/request.rb,
lib/fleck/client/response.rb,
lib/fleck/consumer/request.rb,
lib/fleck/consumer/response.rb

Defined Under Namespace

Modules: Loggable Classes: Client, Configuration, Consumer

Constant Summary collapse

VERSION =
"0.1.2"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configObject (readonly)

Returns the value of attribute config.



71
72
73
# File 'lib/fleck.rb', line 71

def config
  @config
end

Class Method Details

.configure {|@config| ... } ⇒ Object

Yields:



24
25
26
27
# File 'lib/fleck.rb', line 24

def self.configure
  yield @config if block_given?
  @config
end

.connection(options) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/fleck.rb', line 39

def self.connection(options)
  opts = Fleck.config.default_options.merge(options)
  key  = "ampq://#{opts[:user]}@#{opts[:host]}:#{opts[:port]}#{opts[:vhost]}"
  conn = @connections[key]
  if !conn || conn.closed?
    opts[:logger] = Fleck.logger.clone
    opts[:logger].progname += "::Bunny"
    logger.info "New connection #{key}"
    conn = Bunny.new(opts)
    conn.start
    @connections[key] = conn
  end
  return conn
end

.loggerObject



29
30
31
# File 'lib/fleck.rb', line 29

def self.logger
  @config.logger
end

.register_consumer(consumer_class) ⇒ Object



33
34
35
36
37
# File 'lib/fleck.rb', line 33

def self.register_consumer(consumer_class)
  unless @consumers.include?(consumer_class)
    @consumers << consumer_class
  end
end

.terminateObject



54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/fleck.rb', line 54

def self.terminate
  @connections.each do |key, connection|
    begin
      Fleck.logger.info "Closing connection #{key}"
      connection.close
    rescue => e
      Fleck.logger.error e.inspect
    end
  end
  @connections.clear

  true
end