Class: Capybara::Poltergeist::WebSocketServer::FayeHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/capybara/poltergeist/web_socket_server.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(owner, env) ⇒ FayeHandler

Returns a new instance of FayeHandler.



17
18
19
20
21
22
# File 'lib/capybara/poltergeist/web_socket_server.rb', line 17

def initialize(owner, env)
  @owner    = owner
  @env      = env
  @parser   = Faye::WebSocket.parser(env).new(self)
  @messages = []
end

Instance Attribute Details

#envObject (readonly)

Returns the value of attribute env.



15
16
17
# File 'lib/capybara/poltergeist/web_socket_server.rb', line 15

def env
  @env
end

#ownerObject (readonly)

Returns the value of attribute owner.



15
16
17
# File 'lib/capybara/poltergeist/web_socket_server.rb', line 15

def owner
  @owner
end

#parserObject (readonly)

Returns the value of attribute parser.



15
16
17
# File 'lib/capybara/poltergeist/web_socket_server.rb', line 15

def parser
  @parser
end

Instance Method Details

#encode(message) ⇒ Object



36
37
38
# File 'lib/capybara/poltergeist/web_socket_server.rb', line 36

def encode(message)
  parser.frame(Faye::WebSocket.encode(message))
end

#handshake_responseObject



28
29
30
# File 'lib/capybara/poltergeist/web_socket_server.rb', line 28

def handshake_response
  parser.handshake_response
end

#message?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/capybara/poltergeist/web_socket_server.rb', line 44

def message?
  @messages.any?
end

#next_messageObject



48
49
50
# File 'lib/capybara/poltergeist/web_socket_server.rb', line 48

def next_message
  @messages.shift
end

#parse(data) ⇒ Object



32
33
34
# File 'lib/capybara/poltergeist/web_socket_server.rb', line 32

def parse(data)
  parser.parse(data)
end

#receive(message) ⇒ Object



40
41
42
# File 'lib/capybara/poltergeist/web_socket_server.rb', line 40

def receive(message)
  @messages << message
end

#urlObject



24
25
26
# File 'lib/capybara/poltergeist/web_socket_server.rb', line 24

def url
  "ws://#{env['SERVER_NAME']}:#{env['SERVER_PORT']}/"
end