pgn3 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b7c027d51555119b1692eb4946e10e20c0ebe1c6a7dc769d0cac27ddc4ebdb79
4
- data.tar.gz: 417566e5fe07b257e051e3fc59b690deb90e83e1115de57913165152da593004
3
+ metadata.gz: 10b8a0fe43c84fa8a30aa48fda2620806a93d1c36a6c4d8afad8a4d0e8e6a8cc
4
+ data.tar.gz: b247a9ea5b563d3a84bab1470364e75ab7e6b002641cceca1f2bffeb80be50da
5
5
  SHA512:
6
- metadata.gz: b673513b746751431a32b052b5400bbf9dfbb535e1458db1dbd8cead677a9d68b4b47e48b839ab36fef5af98dc74f2eab08364779067e92ebfbd0065e4f1adfa
7
- data.tar.gz: ff27203ae839a8bc3ff4f8228d298852f7c1e1ea6c72e5645cd75b37a3c96426ce2ab0717495b673308694b90445a1bc4de72637ab47ac662e6748c351d5d8d8
6
+ metadata.gz: 60fc1c6e535c1bfc9c5861f13778aac0b64f6afd895fbeea30bc0d708282084d1721a0b7a2629f0eada1f1b1d5e8fcfd3180d58dc61ac2bd0c687443bb3a91c7
7
+ data.tar.gz: b3b25658c846145b446d56b56338df55d3fc6ba629c1634608addd6db53ce3db747e5207793fcfa614b7a462ae10f63199178b33b614fb5337d8dff79d906a7f
data/lib/pgn/parser.rb CHANGED
@@ -11,7 +11,6 @@ module PGN
11
11
  ending = input.length
12
12
  @@pgn ||= ''
13
13
  @@game_comment ||= nil
14
-
15
14
  until offset == ending
16
15
  next_token(input, offset, line).tap do |token|
17
16
  if !token.nil?
@@ -131,7 +130,7 @@ module PGN
131
130
  string: /
132
131
  " # beginning of string
133
132
  (
134
- [[:print:]&&[^\\"]] | # printing characters except quote and backslash
133
+ [[:print:]&&[^\\]] | # printing characters except quote and backslash
135
134
  \\\\ | # escaped backslashes
136
135
  \\" # escaped quotation marks
137
136
  )* # zero or more of the above
data/lib/pgn/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module PGN
2
- VERSION = '0.0.2'.freeze
2
+ VERSION = '0.0.3'.freeze
3
3
  end
data/pgn3.gemspec CHANGED
@@ -1,5 +1,4 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'pgn/version'
5
4
 
data/spec/parser_spec.rb CHANGED
@@ -133,11 +133,19 @@ describe PGN do
133
133
  expect { game.positions }.not_to raise_error
134
134
  expect(game.moves).not_to be_empty
135
135
  end
136
+
136
137
 
137
138
  it 'gets game comment' do
138
139
  games = PGN.parse(File.read('./spec/pgn_files/no_moves.pgn'))
139
140
  game = games.last
140
141
  expect(game.comment).to eq('{game comment}')
141
142
  end
143
+
144
+ it 'tag_values with double quotes' do
145
+ games = PGN.parse(File.read('./spec/pgn_files/doublequotes.pgn'))
146
+ game = games.last
147
+ expect(game.tags['Event']).to eq('IRT BLITZ "Sub Zonal"')
148
+ end
149
+
142
150
  end
143
151
  end
@@ -0,0 +1,90 @@
1
+ [Event "IRT Campeonato In Memoriam MF Simon Dario Meneses Urbina"]
2
+ [Site "Liga Santandereana de Ajedrez (Calle 14 con carrera 30 Unidad Deportiva)"]
3
+ [Date "2022.07.24"]
4
+ [Round "7"]
5
+ [Board "4"]
6
+ [White "Gonzalez Bolivar, Juan Jose"]
7
+ [Black "Vargas Arteaga, Alexis"]
8
+ [Result "0-1"]
9
+ [ECO "A00"]
10
+ [WhiteElo "1424"]
11
+ [BlackElo "2254"]
12
+ [PlyCount "62"]
13
+ [EventDate "2022.07.20"]
14
+ [EventRounds "8"]
15
+ [EventCountry "COL"]
16
+
17
+ 1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. f3 Qb6 7. Nb3 e6 8. Bg5
18
+ Nbd7 9. Qd2 Qc7 10. O-O-O b5 11. f4 b4 12. Nb1 Nxe4 13. Qe3 Nxg5 14. fxg5 Be7
19
+ 15. Be2 Bb7 16. h4 Ne5 17. Bf3 Rc8 18. c3 O-O 19. h5 Nc4 20. Qf4 bxc3 21. bxc3
20
+ Qd8 22. Qg3 Bxg5+ 23. N1d2 Nxd2 24. Nxd2 Rxc3+ 25. Kb1 Qb6+ 26. Ka1 Qd4 27. Nb1
21
+ Rd3+ 28. Nc3 Qxc3+ 29. Kb1 Be4 30. Bxe4 Rb8+ 31. Bb7 Rxb7# 0-1
22
+
23
+ [Event "IRT BLITZ "Sub Zonal""]
24
+ [Site "HOTEL CAFEIRA Calle 18 Nro. 5 - 38 Centro de Pereira Risaralda"]
25
+ [Date "2021.11.27"]
26
+ [Round "1"]
27
+ [Board "2"]
28
+ [White "Jaramillo, Carlos Orlando"]
29
+ [Black "Vargas Arteaga, Alexis"]
30
+ [Result "0-1"]
31
+ [ECO "B07"]
32
+ [WhiteElo "1785"]
33
+ [BlackElo "2343"]
34
+ [PlyCount "54"]
35
+ [EventDate "2021.11.27"]
36
+ [EventRounds "18"]
37
+ [EventCountry "COL"]
38
+
39
+ 1. e4 d6 2. d4 Nf6 3. Nc3 Nbd7 4. f4 g6 5. Nf3 c5 6. e5 cxd4 7. Qxd4 dxe5 8.
40
+ fxe5 Nh5 9. e6 Bg7 10. exd7+ Bxd7 11. Qb4 O-O 12. Be3 a5 13. Qh4 Rc8 14. Bd2
41
+ Qb6 15. O-O-O Be6 16. g4 Nf6 17. Ng5 Bxg4 18. Nd5 Qxb2+ 19. Kxb2 Nxd5+ 20. c3
42
+ h5 21. Bg2 Nxc3 22. Bxc3 Rxc3 23. Kb1 Rc4 24. Rhf1 Bf5+ 25. Rxf5 Rxh4 26. Rxa5
43
+ Rc8 27. Bd5 e6 0-1
44
+
45
+ [Event "IRT BLITZ "Sub Zonal""]
46
+ [Site "HOTEL CAFEIRA Calle 18 Nro. 5 - 38 Centro de Pereira Risaralda"]
47
+ [Date "2021.11.27"]
48
+ [Round "3"]
49
+ [Board "2"]
50
+ [White "Vargas Arteaga, Alexis"]
51
+ [Black "Zambrano Linares, Ramon Alberto"]
52
+ [Result "1-0"]
53
+ [ECO "C60"]
54
+ [WhiteElo "2343"]
55
+ [BlackElo "1935"]
56
+ [PlyCount "101"]
57
+ [EventDate "2021.11.27"]
58
+ [EventRounds "18"]
59
+ [EventCountry "COL"]
60
+
61
+ 1. e4 e5 2. Nf3 Nc6 3. Bb5 Nge7 4. O-O Ng6 5. Bxc6 dxc6 6. d4 exd4 7. Qxd4 Qxd4
62
+ 8. Nxd4 Bc5 9. Be3 O-O 10. Nc3 Re8 11. f3 Ne5 12. Bf2 Bb4 13. Nde2 Be6 14. a3
63
+ Bf8 15. b3 a6 16. Bg3 f6 17. Rfd1 Rad8 18. Kf1 Bc5 19. Bf2 Bxf2 20. Kxf2 b5 21.
64
+ Nf4 Bf7 22. Rxd8 Rxd8 23. Rd1 Rd6 24. Ke1 Kf8 25. Nce2 g5 26. Nh3 Be6 27. Nf2
65
+ h5 28. Nd4 Kf7 29. Nxe6 Kxe6 30. Ke2 c5 31. Nd3 Nxd3 32. Rxd3 Ke5 33. Ke3 h4
66
+ 34. g3 hxg3 35. hxg3 Rc6 36. f4+ gxf4+ 37. gxf4+ Ke6 38. Rd5 c4 39. b4 Rd6 40.
67
+ Rd4 Rc6 41. c3 a5 42. Rd5 axb4 43. axb4 Rb6 44. Kd4 c6 45. Rh5 Rb8 46. Kc5 Kf7
68
+ 47. Kxc6 Re8 48. e5 Re6+ 49. Kxb5 fxe5 50. Rxe5 Rf6 51. f5 1-0
69
+
70
+ [Event "IRT BLITZ "Sub Zonal""]
71
+ [Site "HOTEL CAFEIRA Calle 18 Nro. 5 - 38 Centro de Pereira Risaralda"]
72
+ [Date "2021.11.27"]
73
+ [Round "5"]
74
+ [Board "2"]
75
+ [White "Estrada Velandia, Henry Andres"]
76
+ [Black "Vargas Arteaga, Alexis"]
77
+ [Result "0-1"]
78
+ [ECO "D00"]
79
+ [WhiteElo "2055"]
80
+ [BlackElo "2343"]
81
+ [PlyCount "64"]
82
+ [EventDate "2021.11.27"]
83
+ [EventRounds "18"]
84
+ [EventCountry "COL"]
85
+
86
+ 1. d4 Nf6 2. c3 d5 3. e3 c5 4. Bd3 Nc6 5. f4 e6 6. Nf3 Bd6 7. O-O O-O 8. Bd2 b6
87
+ 9. Be1 Ne7 10. Ne5 Nf5 11. Bxf5 exf5 12. Bh4 Be6 13. Nd2 Rc8 14. Qf3 Be7 15.
88
+ Bxf6 Bxf6 16. Kh1 g6 17. Rg1 b5 18. g4 b4 19. gxf5 Bxf5 20. Raf1 Bg7 21. Rg5
89
+ bxc3 22. bxc3 cxd4 23. Rxf5 dxc3 24. Nxf7 Qd7 25. Rxd5 Qxf7 26. Nb3 c2 27. Rc1
90
+ Bb2 28. Rg1 c1=Q 29. Nxc1 Rxc1 30. Rxc1 Bxc1 31. h4 Bxe3 32. f5 Bh6 0-1
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pgn3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stacey Touset
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2022-10-11 00:00:00.000000000 Z
13
+ date: 2022-11-15 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: whittle
@@ -115,6 +115,7 @@ files:
115
115
  - spec/pgn_files/alternate_castling.pgn
116
116
  - spec/pgn_files/annotations.pgn
117
117
  - spec/pgn_files/comments.pgn
118
+ - spec/pgn_files/doublequotes.pgn
118
119
  - spec/pgn_files/empty_variation_move.pgn
119
120
  - spec/pgn_files/fen.pgn
120
121
  - spec/pgn_files/multiline_comments.pgn
@@ -156,6 +157,7 @@ test_files:
156
157
  - spec/pgn_files/alternate_castling.pgn
157
158
  - spec/pgn_files/annotations.pgn
158
159
  - spec/pgn_files/comments.pgn
160
+ - spec/pgn_files/doublequotes.pgn
159
161
  - spec/pgn_files/empty_variation_move.pgn
160
162
  - spec/pgn_files/fen.pgn
161
163
  - spec/pgn_files/multiline_comments.pgn