Class: Wamp::Manager::Subscription

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

Overview

User facing subscripiton record

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message, session, subscription_id = nil) ⇒ Subscription

Returns a new instance of Subscription.



10
11
12
13
14
# File 'lib/wamp/manager/subscription.rb', line 10

def initialize(message, session, subscription_id = nil)
  @message = message
  @session = session
  @subscription_id = subscription_id
end

Instance Attribute Details

#messageObject (readonly)

Returns the value of attribute message.



8
9
10
# File 'lib/wamp/manager/subscription.rb', line 8

def message
  @message
end

#sessionObject (readonly)

Returns the value of attribute session.



8
9
10
# File 'lib/wamp/manager/subscription.rb', line 8

def session
  @session
end

#subscription_idObject

Returns the value of attribute subscription_id.



7
8
9
# File 'lib/wamp/manager/subscription.rb', line 7

def subscription_id
  @subscription_id
end

Instance Method Details

#next_request_idObject



28
29
30
31
32
33
34
35
# File 'lib/wamp/manager/subscription.rb', line 28

def next_request_id
  case message
  when Wamp::Message::Subscribe
    session.create_request_id
  when Wamp::Message::Unsubscribe
    message.request_id
  end
end

#subscribed?Boolean

Returns:

  • (Boolean)


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

def subscribed?
  !!subscription_id
end

#unsubscribe(&callback) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/wamp/manager/subscription.rb', line 20

def unsubscribe(&callback)
  return false unless subscribed?

  message = Wamp::Message::Unsubscribe.new(next_request_id, subscription_id)
  manager = Wamp::Manager::Event::Unsubscribe.new(message, session)
  manager.add_event_listener(callback)
end