Class: Chasqui::Subscription

Inherits:
Object
  • Object
show all
Defined in:
lib/chasqui/subscription.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queue, channel, subscriber_type = Chasqui::Subscriber) ⇒ Subscription

Returns a new instance of Subscription.



5
6
7
8
9
# File 'lib/chasqui/subscription.rb', line 5

def initialize(queue, channel, subscriber_type=Chasqui::Subscriber)
  @queue = queue
  @channel = channel
  @subscriber_type = subscriber_type
end

Instance Attribute Details

#channelObject (readonly)

Returns the value of attribute channel.



3
4
5
# File 'lib/chasqui/subscription.rb', line 3

def channel
  @channel
end

#queueObject (readonly)

Returns the value of attribute queue.



3
4
5
# File 'lib/chasqui/subscription.rb', line 3

def queue
  @queue
end

#subscriber_typeObject (readonly)

Returns the value of attribute subscriber_type.



3
4
5
# File 'lib/chasqui/subscription.rb', line 3

def subscriber_type
  @subscriber_type
end

Instance Method Details

#subscriberObject



16
17
18
# File 'lib/chasqui/subscription.rb', line 16

def subscriber
  @subscriber ||= subscriber_type.new queue, channel
end

#subscription_idObject



11
12
13
14
# File 'lib/chasqui/subscription.rb', line 11

def subscription_id
  queue_name = [worker.namespace, 'queue', queue].compact.join(':')
  "#{worker_backend}/#{queue_name}"
end

#workerObject



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/chasqui/subscription.rb', line 20

def worker
  case worker_backend
  when :resque
    Chasqui::ResqueWorker.create subscriber
  when :sidekiq
    Chasqui::SidekiqWorker.create subscriber
  else
    raise ConfigurationError.new(
      "Please choose a supported worker_backend. Choices: #{supported_worker_backends}")
  end
end