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