Class: Synapses::Contract::Queue

Inherits:
Object
  • Object
show all
Defined in:
lib/synapses/contract/queue.rb

Overview

Author:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, options = {}) ⇒ Queue

Returns a new instance of Queue.

Parameters:

  • name (String)
  • options (Hash) (defaults to: {})

    see AMQP::Queue#initialize



17
18
19
20
21
# File 'lib/synapses/contract/queue.rb', line 17

def initialize(name, options = {})
  @name = name
  @bind = options.delete('bind') { raise "Exchange :bind is not specified for queue #{name}" }
  @options = options || {}
end

Instance Attribute Details

#channelAMQP::Channel

Returns:

  • (AMQP::Channel)


24
25
26
# File 'lib/synapses/contract/queue.rb', line 24

def channel
  @channel
end

#nameString

Returns:

  • (String)


10
11
12
# File 'lib/synapses/contract/queue.rb', line 10

def name
  @name
end

#optionsHash

Returns see AMQP::Queue#initialize.

Returns:

  • (Hash)

    see AMQP::Queue#initialize



13
14
15
# File 'lib/synapses/contract/queue.rb', line 13

def options
  @options
end

Instance Method Details

#connect(channel = self.channel) ⇒ AMQP::Queue

Returns:

  • (AMQP::Queue)


30
31
32
# File 'lib/synapses/contract/queue.rb', line 30

def connect(channel=self.channel)
  @queue = AMQP::Queue.new(channel, name, options)
end

#connected?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/synapses/contract/queue.rb', line 35

def connected?
  !!@queue
end

#queue(channel = self.channel) ⇒ AMQP::Queue

Parameters:

  • channel (AMQP::Channel) (defaults to: self.channel)

Returns:

  • (AMQP::Queue)


41
42
43
44
# File 'lib/synapses/contract/queue.rb', line 41

def queue(channel=self.channel)
  connect(channel) unless connected?
  @queue
end