class Capybara::Apparition::WebSocketClient

Attributes

driver[R]
messages[R]
status[R]

Public Class Methods

new(url) click to toggle source
# File lib/capybara/apparition/driver/web_socket_client.rb, line 9
def initialize(url)
  @socket = Socket.new(url)
  @driver = ::WebSocket::Driver.client(@socket)
  @messages = []
  @status = :closed

  setup_driver
  start_driver
end

Public Instance Methods

close() click to toggle source
# File lib/capybara/apparition/driver/web_socket_client.rb, line 28
def close
  @driver.close
end
read_msg() click to toggle source
# File lib/capybara/apparition/driver/web_socket_client.rb, line 23
def read_msg
  parse_input until (msg = messages.shift)
  msg
end
send_msg(msg) click to toggle source
# File lib/capybara/apparition/driver/web_socket_client.rb, line 19
def send_msg(msg)
  driver.text msg
end

Private Instance Methods

parse_input() click to toggle source
# File lib/capybara/apparition/driver/web_socket_client.rb, line 57
def parse_input
  @driver.parse(@socket.read)
end
setup_driver() click to toggle source
# File lib/capybara/apparition/driver/web_socket_client.rb, line 34
def setup_driver
  driver.on(:message) do |e|
    messages << e.data
  end

  driver.on(:error) do |e|
    raise e.message
  end

  driver.on(:close) do |_e|
    @status = :closed
  end

  driver.on(:open) do |_e|
    @status = :open
  end
end
start_driver() click to toggle source
# File lib/capybara/apparition/driver/web_socket_client.rb, line 52
def start_driver
  driver.start
  parse_input until status == :open
end