Class: Cucumber::Pro::WebSocket::Worker

Inherits:
Object
  • Object
show all
Defined in:
lib/cucumber/pro/web_socket/session.rb

Instance Method Summary collapse

Constructor Details

#initialize(create_socket, logger, error_handler, options = {}) ⇒ Worker

Returns a new instance of Worker.



60
61
62
63
64
65
66
# File 'lib/cucumber/pro/web_socket/session.rb', line 60

def initialize(create_socket, logger, error_handler, options = {})
  @create_socket, @logger, @error_handler = create_socket, logger, error_handler
  @timeout = options.fetch(:timeout) { raise ArgumentError("Please specify timeout") }
  @q = Queue.new
  @em = Thread.new { start_client }
  @ack_count = 0
end

Instance Method Details

#closeObject



68
69
70
71
72
73
74
75
76
77
78
# File 'lib/cucumber/pro/web_socket/session.rb', line 68

def close
  @q << -> {
    if @ack_count == 0
      close_websocket
    else
      ensure_close_timer_started
      EM.next_tick { close }
    end
  }
  self
end

#closed?Boolean

Returns:

  • (Boolean)


88
89
90
# File 'lib/cucumber/pro/web_socket/session.rb', line 88

def closed?
  !@em.alive?
end

#send(data) ⇒ Object



80
81
82
83
84
85
86
# File 'lib/cucumber/pro/web_socket/session.rb', line 80

def send(data)
  @q << -> {
    @ws.send data
    @ack_count += 1
  }
  self
end