Class: InternetScrabbleClub::Client
- Inherits:
-
Object
- Object
- InternetScrabbleClub::Client
- Includes:
- Celluloid::IO
- Defined in:
- lib/internet_scrabble_club/client.rb,
lib/internet_scrabble_club/client/callback_queue.rb,
lib/internet_scrabble_club/client/response_parsers/who.rb,
lib/internet_scrabble_club/client/response_parsers/base.rb,
lib/internet_scrabble_club/client/response_parsers/ping.rb,
lib/internet_scrabble_club/client/response_parsers/seek.rb,
lib/internet_scrabble_club/client/response_parsers/close.rb,
lib/internet_scrabble_club/client/response_parsers/login.rb,
lib/internet_scrabble_club/client/response_parsers/unseek.rb,
lib/internet_scrabble_club/client/middleware/response/emit.rb,
lib/internet_scrabble_club/client/middleware/response/read.rb,
lib/internet_scrabble_club/client/response_parsers/examine.rb,
lib/internet_scrabble_club/client/response_parsers/history.rb,
lib/internet_scrabble_club/client/middleware/response/parse.rb,
lib/internet_scrabble_club/client/response_parsers/who/list.rb,
lib/internet_scrabble_club/client/response_parsers/who/move.rb,
lib/internet_scrabble_club/client/response_transformers/base.rb,
lib/internet_scrabble_club/client/response_parsers/ping/reply.rb,
lib/internet_scrabble_club/client/middleware/request/echo_ping.rb,
lib/internet_scrabble_club/client/middleware/request/keep_alive.rb,
lib/internet_scrabble_club/client/middleware/response/transform.rb,
lib/internet_scrabble_club/client/response_parsers/examine/history.rb,
lib/internet_scrabble_club/client/response_transformers/examine/history.rb
Defined Under Namespace
Modules: Middleware, ResponseParsers Classes: CallbackQueue, InvalidCredentials, ResponseTransformers
Constant Summary collapse
- DEFAULT_HOST =
'50.97.175.138'
- DEFAULT_PORT =
1330
Instance Attribute Summary collapse
-
#command_callback_queue ⇒ Object
writeonly
Sets the attribute command_callback_queue.
-
#event_emitter ⇒ Object
writeonly
Sets the attribute event_emitter.
-
#middleware ⇒ Object
writeonly
Sets the attribute middleware.
-
#socket ⇒ Object
writeonly
Sets the attribute socket.
Instance Method Summary collapse
- #authenticate(nickname, password, &callback) ⇒ Object
- #finalize ⇒ Object
-
#initialize(host = DEFAULT_HOST, port = DEFAULT_PORT) ⇒ Client
constructor
A new instance of Client.
- #on_response(command_regex = /.*/, &callback) ⇒ Object
- #run ⇒ Object
- #send_request(command, *arguments, &callback) ⇒ Object
Constructor Details
#initialize(host = DEFAULT_HOST, port = DEFAULT_PORT) ⇒ Client
Returns a new instance of Client.
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/internet_scrabble_club/client.rb', line 31 def initialize(host = DEFAULT_HOST, port = DEFAULT_PORT) @socket = TCPSocket.new(host, port) @command_callback_queue = Client::CallbackQueue.new @event_emitter = Events::EventEmitter.new @event_emitter.on(:response) { |response| yield_command_callback(response) } Celluloid.every(50) { send_request('SEEK') } async.run end |
Instance Attribute Details
#command_callback_queue=(value) ⇒ Object (writeonly)
Sets the attribute command_callback_queue
20 21 22 |
# File 'lib/internet_scrabble_club/client.rb', line 20 def command_callback_queue=(value) @command_callback_queue = value end |
#event_emitter=(value) ⇒ Object (writeonly)
Sets the attribute event_emitter
20 21 22 |
# File 'lib/internet_scrabble_club/client.rb', line 20 def event_emitter=(value) @event_emitter = value end |
#middleware=(value) ⇒ Object (writeonly)
Sets the attribute middleware
19 20 21 |
# File 'lib/internet_scrabble_club/client.rb', line 19 def middleware=(value) @middleware = value end |
#socket=(value) ⇒ Object (writeonly)
Sets the attribute socket
19 20 21 |
# File 'lib/internet_scrabble_club/client.rb', line 19 def socket=(value) @socket = value end |
Instance Method Details
#authenticate(nickname, password, &callback) ⇒ Object
47 48 49 |
# File 'lib/internet_scrabble_club/client.rb', line 47 def authenticate(nickname, password, &callback) send_request('LOGIN', nickname, password, 1871, '?', &callback) end |
#finalize ⇒ Object
63 64 65 |
# File 'lib/internet_scrabble_club/client.rb', line 63 def finalize @socket.close if @socket end |
#on_response(command_regex = /.*/, &callback) ⇒ Object
51 52 53 54 55 |
# File 'lib/internet_scrabble_club/client.rb', line 51 def on_response(command_regex = /.*/, &callback) @event_emitter.on(:response) do |response| callback.call(response) if response[:command] =~ command_regex end end |
#run ⇒ Object
43 44 45 |
# File 'lib/internet_scrabble_club/client.rb', line 43 def run loop { middleware_stack.call({}) } end |
#send_request(command, *arguments, &callback) ⇒ Object
57 58 59 60 61 |
# File 'lib/internet_scrabble_club/client.rb', line 57 def send_request(command, *arguments, &callback) request = ['0', command, *arguments].join(' ') @command_callback_queue.enqueue(command, callback) @socket.write("\0" << request.length << request) end |