Class: Travis::Client::Listener::Socket

Inherits:
PusherClient::Socket
  • Object
show all
Defined in:
lib/travis/client/listener.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(application_key, options = {}) ⇒ Socket

Returns a new instance of Socket.



16
17
18
19
20
# File 'lib/travis/client/listener.rb', line 16

def initialize(application_key, options = {})
  @session    = options.fetch(:session)
  @signatures = {}
  super
end

Instance Attribute Details

#sessionObject

Returns the value of attribute session.



15
16
17
# File 'lib/travis/client/listener.rb', line 15

def session
  @session
end

#signaturesObject

Returns the value of attribute signatures.



15
16
17
# File 'lib/travis/client/listener.rb', line 15

def signatures
  @signatures
end

Instance Method Details

#fetch_auth(*channels) ⇒ Object



28
29
30
31
# File 'lib/travis/client/listener.rb', line 28

def fetch_auth(*channels)
  channels.select! { |c| signatures[c].nil? if c.start_with? 'private-' }
  signatures.merge! session.post_raw('/pusher/auth', :channels => channels, :socket_id => socket_id)['channels'] if channels.any?
end

#get_private_auth(channel) ⇒ Object



33
34
35
36
# File 'lib/travis/client/listener.rb', line 33

def get_private_auth(channel)
  fetch_auth(channel.name)
  signatures[channel.name]
end

#subscribe_allObject



22
23
24
25
26
# File 'lib/travis/client/listener.rb', line 22

def subscribe_all
  # bulk auth on connect
  fetch_auth(*channels.channels.keys)
  super
end