internet_scrabble_club 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.ruby-version +1 -1
- data/Rakefile +1 -1
- data/bin/scraper.rb +12 -0
- data/bin/spectator.rb +91 -0
- data/internet_scrabble_club.gemspec +3 -4
- data/lib/internet_scrabble_club.rb +1 -1
- data/lib/internet_scrabble_club/client.rb +34 -30
- data/lib/internet_scrabble_club/client/callback_queue.rb +22 -0
- data/lib/internet_scrabble_club/client/middleware.rb +7 -4
- data/lib/internet_scrabble_club/client/middleware/request/echo_ping.rb +23 -0
- data/lib/internet_scrabble_club/client/middleware/request/keep_alive.rb +31 -0
- data/lib/internet_scrabble_club/client/middleware/response/emit.rb +20 -0
- data/lib/internet_scrabble_club/client/middleware/response/parse.rb +26 -0
- data/lib/internet_scrabble_club/client/middleware/response/read.rb +21 -0
- data/lib/internet_scrabble_club/client/middleware/response/transform.rb +22 -0
- data/lib/internet_scrabble_club/client/response_parsers.rb +17 -0
- data/lib/internet_scrabble_club/client/response_parsers/base.rb +78 -0
- data/lib/internet_scrabble_club/client/response_parsers/close.rb +14 -0
- data/lib/internet_scrabble_club/client/response_parsers/examine.rb +15 -0
- data/lib/internet_scrabble_club/client/response_parsers/examine/history.rb +51 -0
- data/lib/internet_scrabble_club/client/response_parsers/history.rb +17 -0
- data/lib/internet_scrabble_club/client/response_parsers/login.rb +14 -0
- data/lib/internet_scrabble_club/client/response_parsers/ping.rb +13 -0
- data/lib/internet_scrabble_club/client/response_parsers/ping/reply.rb +12 -0
- data/lib/internet_scrabble_club/client/response_parsers/seek.rb +15 -0
- data/lib/internet_scrabble_club/client/response_parsers/unseek.rb +14 -0
- data/lib/internet_scrabble_club/client/response_parsers/who.rb +13 -0
- data/lib/internet_scrabble_club/client/response_parsers/who/list.rb +16 -0
- data/lib/internet_scrabble_club/client/response_parsers/who/move.rb +14 -0
- data/lib/internet_scrabble_club/client/response_transformers.rb +2 -0
- data/lib/internet_scrabble_club/client/response_transformers/base.rb +50 -0
- data/lib/internet_scrabble_club/client/response_transformers/examine/history.rb +22 -0
- metadata +31 -32
- data/lib/internet_scrabble_club/client/extensions/authentication.rb +0 -21
- data/lib/internet_scrabble_club/client/extensions/echo_ping.rb +0 -17
- data/lib/internet_scrabble_club/client/extensions/keep_alive.rb +0 -16
- data/lib/internet_scrabble_club/client/middleware/emit.rb +0 -18
- data/lib/internet_scrabble_club/client/middleware/parse.rb +0 -24
- data/lib/internet_scrabble_club/client/middleware/read.rb +0 -19
- data/lib/internet_scrabble_club/client/middleware/transform.rb +0 -20
- data/lib/internet_scrabble_club/message_parsers.rb +0 -17
- data/lib/internet_scrabble_club/message_parsers/base.rb +0 -76
- data/lib/internet_scrabble_club/message_parsers/close.rb +0 -12
- data/lib/internet_scrabble_club/message_parsers/examine.rb +0 -13
- data/lib/internet_scrabble_club/message_parsers/examine/history.rb +0 -49
- data/lib/internet_scrabble_club/message_parsers/history.rb +0 -15
- data/lib/internet_scrabble_club/message_parsers/login.rb +0 -12
- data/lib/internet_scrabble_club/message_parsers/ping.rb +0 -11
- data/lib/internet_scrabble_club/message_parsers/ping/reply.rb +0 -11
- data/lib/internet_scrabble_club/message_parsers/seek.rb +0 -13
- data/lib/internet_scrabble_club/message_parsers/unseek.rb +0 -12
- data/lib/internet_scrabble_club/message_parsers/who.rb +0 -11
- data/lib/internet_scrabble_club/message_parsers/who/list.rb +0 -14
- data/lib/internet_scrabble_club/message_parsers/who/move.rb +0 -12
- data/lib/internet_scrabble_club/message_transformers.rb +0 -3
- data/lib/internet_scrabble_club/message_transformers/base.rb +0 -48
- data/lib/internet_scrabble_club/message_transformers/examine/history.rb +0 -32
- data/lib/internet_scrabble_club/message_transformers/history.rb +0 -14
- data/lib/internet_scrabble_club/message_transformers/who/move.rb +0 -14
- data/lib/internet_scrabble_club/multi_queue.rb +0 -20
@@ -1,48 +0,0 @@
|
|
1
|
-
require 'date'
|
2
|
-
require 'parslet'
|
3
|
-
require 'descendants_tracker'
|
4
|
-
|
5
|
-
module InternetScrabbleClub
|
6
|
-
class MessageTransformers
|
7
|
-
|
8
|
-
class Base < Parslet::Transform
|
9
|
-
extend DescendantsTracker
|
10
|
-
|
11
|
-
rule(command: simple(:cmd), arguments: subtree(:args)) do
|
12
|
-
OpenStruct.new(args.to_h.merge(command: cmd.to_s))
|
13
|
-
end
|
14
|
-
|
15
|
-
rule(command: simple(:cmd), sub_command: simple(:sub_cmd)) do
|
16
|
-
OpenStruct.new(command: cmd.to_s, sub_command: sub_cmd.to_s)
|
17
|
-
end
|
18
|
-
|
19
|
-
rule(command: simple(:cmd), sub_command: simple(:sub_cmd), arguments: subtree(:args)) do
|
20
|
-
OpenStruct.new(args.to_h.merge(command: cmd.to_s, sub_command: sub_cmd.to_s))
|
21
|
-
end
|
22
|
-
|
23
|
-
rule(int: simple(:int)) { Integer(int) }
|
24
|
-
|
25
|
-
rule(word: simple(:word)) { word.to_s }
|
26
|
-
rule(sentence: simple(:sentence)) { sentence.to_s }
|
27
|
-
rule(text: simple(:text)) { text.to_s }
|
28
|
-
|
29
|
-
rule(date: simple(:date)) { Date.parse(date.to_s) }
|
30
|
-
|
31
|
-
rule(null: simple(:null)) { 0 }
|
32
|
-
rule(tiles: simple(:tiles)) { tiles.to_s }
|
33
|
-
|
34
|
-
rule(dashes: simple(:dashes)) { nil }
|
35
|
-
|
36
|
-
def apply(tree, context = nil)
|
37
|
-
descendent_transformers.reduce(super) do |tree, transformer|
|
38
|
-
transformer.apply(tree, context)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def descendent_transformers
|
43
|
-
@descendent_transformers ||= self.class.descendants.map(&:new)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
48
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'ostruct'
|
2
|
-
require_relative '../base'
|
3
|
-
|
4
|
-
module InternetScrabbleClub
|
5
|
-
class MessageTransformers
|
6
|
-
module Examine
|
7
|
-
|
8
|
-
class History < Base
|
9
|
-
rule(date: simple(:date), dictionary_code: simple(:dictionary_code),
|
10
|
-
first_player: subtree(:first_player), second_player: subtree(:second_player)
|
11
|
-
) do
|
12
|
-
{ date: date, dictionary_code: dictionary_code,
|
13
|
-
first_player: first_player, second_player: second_player
|
14
|
-
}
|
15
|
-
end
|
16
|
-
|
17
|
-
rule(setup: subtree(:setup), plays: subtree(:plays)) do
|
18
|
-
OpenStruct.new(setup: setup, plays: plays.map { |play| OpenStruct.new(play) })
|
19
|
-
end
|
20
|
-
|
21
|
-
rule(horizontal: { column: simple(:column), row: simple(:row) }) do
|
22
|
-
{direction: :horizontal, column: column, row: row}
|
23
|
-
end
|
24
|
-
|
25
|
-
rule(vertical: { column: simple(:column), row: simple(:row) }) do
|
26
|
-
{direction: :vertical, column: column, row: row}
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
module InternetScrabbleClub
|
2
|
-
|
3
|
-
class MultiQueue
|
4
|
-
def initialize
|
5
|
-
@queues = Hash.new { Array.new }
|
6
|
-
end
|
7
|
-
|
8
|
-
def enqueue(name, item)
|
9
|
-
@queues[name] += [item]
|
10
|
-
end
|
11
|
-
|
12
|
-
def dequeue(name, default = nil)
|
13
|
-
return @queues[name].shift if @queues[name].any?
|
14
|
-
return yield(name) if block_given?
|
15
|
-
return default unless default.nil?
|
16
|
-
fail ArgumentError, "Cannot dequeue item from empty queue"
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|