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.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.ruby-version +1 -1
  4. data/Rakefile +1 -1
  5. data/bin/scraper.rb +12 -0
  6. data/bin/spectator.rb +91 -0
  7. data/internet_scrabble_club.gemspec +3 -4
  8. data/lib/internet_scrabble_club.rb +1 -1
  9. data/lib/internet_scrabble_club/client.rb +34 -30
  10. data/lib/internet_scrabble_club/client/callback_queue.rb +22 -0
  11. data/lib/internet_scrabble_club/client/middleware.rb +7 -4
  12. data/lib/internet_scrabble_club/client/middleware/request/echo_ping.rb +23 -0
  13. data/lib/internet_scrabble_club/client/middleware/request/keep_alive.rb +31 -0
  14. data/lib/internet_scrabble_club/client/middleware/response/emit.rb +20 -0
  15. data/lib/internet_scrabble_club/client/middleware/response/parse.rb +26 -0
  16. data/lib/internet_scrabble_club/client/middleware/response/read.rb +21 -0
  17. data/lib/internet_scrabble_club/client/middleware/response/transform.rb +22 -0
  18. data/lib/internet_scrabble_club/client/response_parsers.rb +17 -0
  19. data/lib/internet_scrabble_club/client/response_parsers/base.rb +78 -0
  20. data/lib/internet_scrabble_club/client/response_parsers/close.rb +14 -0
  21. data/lib/internet_scrabble_club/client/response_parsers/examine.rb +15 -0
  22. data/lib/internet_scrabble_club/client/response_parsers/examine/history.rb +51 -0
  23. data/lib/internet_scrabble_club/client/response_parsers/history.rb +17 -0
  24. data/lib/internet_scrabble_club/client/response_parsers/login.rb +14 -0
  25. data/lib/internet_scrabble_club/client/response_parsers/ping.rb +13 -0
  26. data/lib/internet_scrabble_club/client/response_parsers/ping/reply.rb +12 -0
  27. data/lib/internet_scrabble_club/client/response_parsers/seek.rb +15 -0
  28. data/lib/internet_scrabble_club/client/response_parsers/unseek.rb +14 -0
  29. data/lib/internet_scrabble_club/client/response_parsers/who.rb +13 -0
  30. data/lib/internet_scrabble_club/client/response_parsers/who/list.rb +16 -0
  31. data/lib/internet_scrabble_club/client/response_parsers/who/move.rb +14 -0
  32. data/lib/internet_scrabble_club/client/response_transformers.rb +2 -0
  33. data/lib/internet_scrabble_club/client/response_transformers/base.rb +50 -0
  34. data/lib/internet_scrabble_club/client/response_transformers/examine/history.rb +22 -0
  35. metadata +31 -32
  36. data/lib/internet_scrabble_club/client/extensions/authentication.rb +0 -21
  37. data/lib/internet_scrabble_club/client/extensions/echo_ping.rb +0 -17
  38. data/lib/internet_scrabble_club/client/extensions/keep_alive.rb +0 -16
  39. data/lib/internet_scrabble_club/client/middleware/emit.rb +0 -18
  40. data/lib/internet_scrabble_club/client/middleware/parse.rb +0 -24
  41. data/lib/internet_scrabble_club/client/middleware/read.rb +0 -19
  42. data/lib/internet_scrabble_club/client/middleware/transform.rb +0 -20
  43. data/lib/internet_scrabble_club/message_parsers.rb +0 -17
  44. data/lib/internet_scrabble_club/message_parsers/base.rb +0 -76
  45. data/lib/internet_scrabble_club/message_parsers/close.rb +0 -12
  46. data/lib/internet_scrabble_club/message_parsers/examine.rb +0 -13
  47. data/lib/internet_scrabble_club/message_parsers/examine/history.rb +0 -49
  48. data/lib/internet_scrabble_club/message_parsers/history.rb +0 -15
  49. data/lib/internet_scrabble_club/message_parsers/login.rb +0 -12
  50. data/lib/internet_scrabble_club/message_parsers/ping.rb +0 -11
  51. data/lib/internet_scrabble_club/message_parsers/ping/reply.rb +0 -11
  52. data/lib/internet_scrabble_club/message_parsers/seek.rb +0 -13
  53. data/lib/internet_scrabble_club/message_parsers/unseek.rb +0 -12
  54. data/lib/internet_scrabble_club/message_parsers/who.rb +0 -11
  55. data/lib/internet_scrabble_club/message_parsers/who/list.rb +0 -14
  56. data/lib/internet_scrabble_club/message_parsers/who/move.rb +0 -12
  57. data/lib/internet_scrabble_club/message_transformers.rb +0 -3
  58. data/lib/internet_scrabble_club/message_transformers/base.rb +0 -48
  59. data/lib/internet_scrabble_club/message_transformers/examine/history.rb +0 -32
  60. data/lib/internet_scrabble_club/message_transformers/history.rb +0 -14
  61. data/lib/internet_scrabble_club/message_transformers/who/move.rb +0 -14
  62. data/lib/internet_scrabble_club/multi_queue.rb +0 -20
@@ -1,3 +0,0 @@
1
- require_relative 'message_transformers/examine/history'
2
- require_relative 'message_transformers/who/move'
3
- require_relative 'message_transformers/history'
@@ -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,14 +0,0 @@
1
- require 'ostruct'
2
- require_relative 'base'
3
-
4
- module InternetScrabbleClub
5
- class MessageTransformers
6
-
7
- class History < Base
8
- rule(entry: subtree(:entry)) do
9
- OpenStruct.new(entry)
10
- end
11
- end
12
-
13
- end
14
- end
@@ -1,14 +0,0 @@
1
- require 'ostruct'
2
- require_relative '../base'
3
-
4
- module InternetScrabbleClub
5
- class MessageTransformers
6
- module Who
7
-
8
- class Move < Base
9
- rule(nickname: simple(:nickname)) { OpenStruct.new(nickname: nickname) }
10
- end
11
-
12
- end
13
- end
14
- 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