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
Returns a new instance of WebsocketHelper.
131 132 133 |
# File 'lib/angelo/minitest/helpers.rb', line 131 def initialize addr, port, path @addr, @port, @path = addr, port, path end |
Instance Attribute Details
#addr=(value) ⇒ Object (writeonly)
Sets the attribute addr
129 130 131 |
# File 'lib/angelo/minitest/helpers.rb', line 129 def addr=(value) @addr = value end |
#driver ⇒ Object (readonly)
Returns the value of attribute driver.
128 129 130 |
# File 'lib/angelo/minitest/helpers.rb', line 128 def driver @driver end |
#on_close=(value) ⇒ Object (writeonly)
Sets the attribute on_close
129 130 131 |
# File 'lib/angelo/minitest/helpers.rb', line 129 def on_close=(value) @on_close = value end |
#on_message=(value) ⇒ Object (writeonly)
Sets the attribute on_message
129 130 131 |
# File 'lib/angelo/minitest/helpers.rb', line 129 def (value) @on_message = value end |
#on_open=(value) ⇒ Object (writeonly)
Sets the attribute on_open
129 130 131 |
# File 'lib/angelo/minitest/helpers.rb', line 129 def on_open=(value) @on_open = value end |
#path=(value) ⇒ Object (writeonly)
Sets the attribute path
129 130 131 |
# File 'lib/angelo/minitest/helpers.rb', line 129 def path=(value) @path = value end |
#port=(value) ⇒ Object (writeonly)
Sets the attribute port
129 130 131 |
# File 'lib/angelo/minitest/helpers.rb', line 129 def port=(value) @port = value end |
#socket ⇒ Object (readonly)
Returns the value of attribute socket.
128 129 130 |
# File 'lib/angelo/minitest/helpers.rb', line 128 def socket @socket end |
Instance Method Details
#go ⇒ Object
166 167 168 169 170 171 |
# File 'lib/angelo/minitest/helpers.rb', line 166 def go @driver.start while msg = @socket.readpartial(4096) @driver.parse msg end end |
#init ⇒ Object
135 136 137 138 |
# File 'lib/angelo/minitest/helpers.rb', line 135 def init init_socket init_driver end |
#init_driver ⇒ Object
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 |
# File 'lib/angelo/minitest/helpers.rb', line 146 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
140 141 142 143 144 |
# File 'lib/angelo/minitest/helpers.rb', line 140 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
162 163 164 |
# File 'lib/angelo/minitest/helpers.rb', line 162 def url WS_URL % [@addr, @port] + @path end |