Class: Cucumber::Pro::WebSocket::Worker
- Inherits:
-
Object
- Object
- Cucumber::Pro::WebSocket::Worker
- Defined in:
- lib/cucumber/pro/web_socket/session.rb
Instance Method Summary collapse
- #close ⇒ Object
- #closed? ⇒ Boolean
-
#initialize(create_socket, logger, error_handler, options = {}) ⇒ Worker
constructor
A new instance of Worker.
- #send(data) ⇒ Object
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, = {}) @create_socket, @logger, @error_handler = create_socket, logger, error_handler @timeout = .fetch(:timeout) { raise ArgumentError("Please specify timeout") } @q = Queue.new @em = Thread.new { start_client } @ack_count = 0 end |
Instance Method Details
#close ⇒ Object
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
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 |