Class: Angelo::Minitest::WebsocketHelper
- Inherits:
-
Object
- Object
- Angelo::Minitest::WebsocketHelper
- Extended by:
- Forwardable
- Includes:
- Celluloid::Logger
- Defined in:
- lib/angelo/minitest/helpers.rb
Constant Summary collapse
- WS_URL =
'ws://%s:%d'
Instance Attribute Summary collapse
-
#addr ⇒ Object
writeonly
Sets the attribute addr.
-
#driver ⇒ Object
readonly
Returns the value of attribute driver.
-
#on_close ⇒ Object
writeonly
Sets the attribute on_close.
-
#on_message ⇒ Object
writeonly
Sets the attribute on_message.
-
#on_open ⇒ Object
writeonly
Sets the attribute on_open.
-
#path ⇒ Object
writeonly
Sets the attribute path.
-
#port ⇒ Object
writeonly
Sets the attribute port.
-
#socket ⇒ Object
readonly
Returns the value of attribute socket.
Instance Method Summary collapse
- #go ⇒ Object
- #init ⇒ Object
- #init_driver ⇒ Object
- #init_socket ⇒ Object
-
#initialize(addr, port, path) ⇒ WebsocketHelper
constructor
A new instance of WebsocketHelper.
- #url ⇒ Object
Constructor Details
#initialize(addr, port, path) ⇒ WebsocketHelper
110 111 112 |
# File 'lib/angelo/minitest/helpers.rb', line 110 def initialize addr, port, path @addr, @port, @path = addr, port, path end |
Instance Attribute Details
#addr=(value) ⇒ Object (writeonly)
Sets the attribute addr
108 109 110 |
# File 'lib/angelo/minitest/helpers.rb', line 108 def addr=(value) @addr = value end |
#driver ⇒ Object (readonly)
Returns the value of attribute driver.
107 108 109 |
# File 'lib/angelo/minitest/helpers.rb', line 107 def driver @driver end |
#on_close=(value) ⇒ Object (writeonly)
Sets the attribute on_close
108 109 110 |
# File 'lib/angelo/minitest/helpers.rb', line 108 def on_close=(value) @on_close = value end |
#on_message=(value) ⇒ Object (writeonly)
Sets the attribute on_message
108 109 110 |
# File 'lib/angelo/minitest/helpers.rb', line 108 def (value) @on_message = value end |
#on_open=(value) ⇒ Object (writeonly)
Sets the attribute on_open
108 109 110 |
# File 'lib/angelo/minitest/helpers.rb', line 108 def on_open=(value) @on_open = value end |
#path=(value) ⇒ Object (writeonly)
Sets the attribute path
108 109 110 |
# File 'lib/angelo/minitest/helpers.rb', line 108 def path=(value) @path = value end |
#port=(value) ⇒ Object (writeonly)
Sets the attribute port
108 109 110 |
# File 'lib/angelo/minitest/helpers.rb', line 108 def port=(value) @port = value end |
#socket ⇒ Object (readonly)
Returns the value of attribute socket.
107 108 109 |
# File 'lib/angelo/minitest/helpers.rb', line 107 def socket @socket end |
Instance Method Details
#go ⇒ Object
145 146 147 148 149 150 |
# File 'lib/angelo/minitest/helpers.rb', line 145 def go @driver.start while msg = @socket.readpartial(4096) @driver.parse msg end end |
#init ⇒ Object
114 115 116 117 |
# File 'lib/angelo/minitest/helpers.rb', line 114 def init init_socket init_driver end |
#init_driver ⇒ Object
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/angelo/minitest/helpers.rb', line 125 def init_driver @driver = WebSocket::Driver.client self @driver.on :open do |e| @on_open.call(e) if Proc === @on_open end @driver.on :message do |e| @on_message.call(e) if Proc === @on_message end @driver.on :close do |e| @on_close.call(e) if Proc === @on_close end end |
#init_socket ⇒ Object
119 120 121 122 123 |
# File 'lib/angelo/minitest/helpers.rb', line 119 def init_socket ip = @addr ip = Socket.getaddrinfo(@addr, 'http')[0][3] unless @addr =~ /\d+\.\d+\.\d+\.\d+/ @socket = Celluloid::IO::TCPSocket.new ip, @port end |
#url ⇒ Object
141 142 143 |
# File 'lib/angelo/minitest/helpers.rb', line 141 def url WS_URL % [@addr, @port] + @path end |