icu_tournament 1.5.0 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -392,6 +392,9 @@ module ICU
392
392
  # Ratings are assumed to be local unless otherwise specified.
393
393
  rating = @data[44, 4].to_i
394
394
  opt[arg[:fide] ? :fide_rating : :rating] = rating if rating > 0 && rating < 4000
395
+
396
+ # Obviously wrong DOBs should just be ignored.
397
+ opt[:dob] = '' unless opt[:dob].match(/\d/);
395
398
 
396
399
  # IDs can be determined to be FIDE or ICU on the basis of their size.
397
400
  id = @data[53, 11].to_i
@@ -430,6 +433,7 @@ module ICU
430
433
  full_byes << round
431
434
  return 0.0
432
435
  end
436
+ data = "#{data} -" if data.match(/^\d+ (w|b|-)$/)
433
437
  raise "invalid result '#{data}'" unless data.match(/^(0{1,4}|[1-9]\d{0,3}) (w|b|-) (1|0|=|\+|-)$/)
434
438
  opponent = $1.to_i
435
439
  colour = $2
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ICU
4
4
  class Tournament
5
- VERSION = "1.5.0"
5
+ VERSION = "1.5.1"
6
6
  end
7
7
  end
@@ -259,7 +259,7 @@ KRAUSE
259
259
  check_player(2, 'Mark', 'Orr', :rating => nil, :fide_rating => 2258)
260
260
  check_player(3, 'Viktor', 'Bologan', :rating => nil, :fide_rating => 2663)
261
261
  end
262
-
262
+
263
263
  it "should auto-detect FIDE or ICU IDs based on size, the option has no effect" do
264
264
  @t = @p.parse(@krause)
265
265
  check_player(1, 'Gearoidin', 'Ui Laighleis', :id => nil, :fide_id => 2501171)
@@ -285,9 +285,10 @@ KRAUSE
285
285
  012 Las Vegas National Open
286
286
  042 2008-06-07
287
287
  001 1 m m Orr,Mark 2258 IRL 2.0 1 2 w 1 3 b 1
288
- 001 2 w Ui Laighleis,Gearoidin 1985 IRL 1.0 2 1 b 0 3 w 1
288
+ 001 2 w Ui Laighleis,Gearoidin 1985 IRL 1.0 2 1 b 0 3 w 1 #
289
289
  001 3 m g Bologan,Viktor 2663 MDA 0.0 3 2 b 0 1 w 0
290
290
  REORDERED
291
+ @reordered.sub!('#', '')
291
292
  end
292
293
 
293
294
  it "should serialise correctly after renumbering by rank" do
@@ -301,10 +302,11 @@ REORDERED
301
302
  @krause = <<KRAUSE
302
303
  012 Las Vegas National Open
303
304
  042 2008-06-07
304
- 001 1 w Ui Laighleis,Gearoidin 1985 IRL 2501171 1964-06-10 1.0 2 b 0 3 w 1
305
+ 001 1 w Ui Laighleis,Gearoidin 1985 IRL 2501171 1964-06-10 1.0 2 b 0 3 w 1 #
305
306
  001 2 m Orr,Mark 2258 IRL 2500035 1955-11-09 2.0 1 w 1 3 b 1
306
307
  001 3 g Bologan,Viktor 2663 MDA 13900048 1971-01-01 0.0 1 b 0 2 w 0
307
308
  KRAUSE
309
+ @krause.sub!('#', '')
308
310
  @p = ICU::Tournament::Krause.new
309
311
  @t = ICU::Tournament.new('Las Vegas National Open', '2008-06-07')
310
312
  @t.add_player(ICU::Player.new('Gearoidin', 'Ui Laighleis', 1, :rating => 1985, :id => 2501171, :dob => '1964-06-10', :fed => 'IRL', :gender => 'f'))
@@ -327,10 +329,11 @@ KRAUSE
327
329
  012 Las Vegas National Open
328
330
  042 2008-06-07
329
331
  0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
330
- 001 1 w Ui Laighleis,Gearoidin 1985 IRL 3364 1964-06-10 1.0 2 2 b 0 3 w 1
332
+ 001 1 w Ui Laighleis,Gearoidin 1985 IRL 3364 1964-06-10 1.0 2 2 b 0 3 w 1 #
331
333
  001 2 m Orr,Mark 2258 IRL 1350 1955-11-09 2.0 1 1 w 1 3 b 1
332
334
  001 3 g Svidler,Peter 2663 RUS 16790 1971-01-01 0.0 3 1 b 0 2 w 0
333
335
  KRAUSE
336
+ @k.sub!('#', '')
334
337
  @p = ICU::Tournament::Krause.new
335
338
  @t = @p.parse(@k)
336
339
  end
@@ -376,7 +379,7 @@ KRAUSE
376
379
  text.should match(/001 2 m Orr,Mark 2258 IRL 1350 1955-11-09 2.0 1/)
377
380
  text.should match(/001 3 g Svidler,Peter 2663 RUS 16790 1971-01-01 0.0 3/)
378
381
  end
379
-
382
+
380
383
  it "the :only and :except options are logical opposites" do
381
384
  @t.serialize('Krause', :only => [:gender, :title, :rating]).should == @t.serialize('Krause', :except => [:fed, :id, "dob", :rank])
382
385
  @t.serialize('Krause', :only => [:gender]).should == @t.serialize('Krause', :except => [:fed, :id, :dob, :rank, :title, :rating])
@@ -392,10 +395,11 @@ KRAUSE
392
395
  012 Las Vegas National Open
393
396
  042 2008-06-07
394
397
  0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
395
- 001 1 w Ui Laighleis,Gearoidin 1985 IRL 2501171 1964-06-10 1.0 2 2 b 0 3 w 1
398
+ 001 1 w Ui Laighleis,Gearoidin 1985 IRL 2501171 1964-06-10 1.0 2 2 b 0 3 w 1 #
396
399
  001 2 m Orr,Mark 2258 IRL 2500035 1955-11-09 2.0 1 1 w 1 3 b 1
397
400
  001 3 g Svidler,Peter 2663 RUS 4102142 1971-01-01 0.0 3 1 b 0 2 w 0
398
401
  KRAUSE
402
+ @k.gsub!('#', '')
399
403
  @p = ICU::Tournament::Krause.new
400
404
  @t = @p.parse(@k, :fide => true)
401
405
  end
@@ -566,7 +570,7 @@ KRAUSE
566
570
  @t.name.should == "Läs Végas National Opeñ"
567
571
  end
568
572
  end
569
-
573
+
570
574
  context "preserving original names" do
571
575
  before(:all) do
572
576
  @k = <<KRAUSE
@@ -774,6 +778,16 @@ KRAUSE
774
778
  file = "#{@s}/bunratty_challengers_2011.tab"
775
779
  lambda { @p.parse_file!(file, :fed => :ignore) }.should_not raise_error
776
780
  end
781
+
782
+ it "should handle Irish Intermediate Championships 2011" do
783
+ file = "#{@s}/irish_intermediate_champs_2011.tab"
784
+ lambda { @p.parse_file!(file) }.should_not raise_error
785
+ end
786
+
787
+ it "should handle Irish Junior Championships 2011" do
788
+ file = "#{@s}/irish_junior_champs_2011.tab"
789
+ lambda { @p.parse_file!(file) }.should_not raise_error
790
+ end
777
791
  end
778
792
  end
779
793
  end
metadata CHANGED
@@ -1,137 +1,136 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: icu_tournament
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.5.1
4
5
  prerelease:
5
- version: 1.5.0
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Mark Orr
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-07-01 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2011-07-06 00:00:00.000000000 +01:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
16
  name: dbf
17
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &2161738940 !ruby/object:Gem::Requirement
18
18
  none: false
19
- requirements:
19
+ requirements:
20
20
  - - ~>
21
- - !ruby/object:Gem::Version
21
+ - !ruby/object:Gem::Version
22
22
  version: 1.2.5
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
25
+ version_requirements: *2161738940
26
+ - !ruby/object:Gem::Dependency
27
27
  name: rubyzip
28
- requirement: &id002 !ruby/object:Gem::Requirement
28
+ requirement: &2161738220 !ruby/object:Gem::Requirement
29
29
  none: false
30
- requirements:
30
+ requirements:
31
31
  - - ~>
32
- - !ruby/object:Gem::Version
32
+ - !ruby/object:Gem::Version
33
33
  version: 0.9.4
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *2161738220
37
+ - !ruby/object:Gem::Dependency
38
38
  name: icu_name
39
- requirement: &id003 !ruby/object:Gem::Requirement
39
+ requirement: &2161737640 !ruby/object:Gem::Requirement
40
40
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
44
  version: 1.0.0
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
47
+ version_requirements: *2161737640
48
+ - !ruby/object:Gem::Dependency
49
49
  name: bundler
50
- requirement: &id004 !ruby/object:Gem::Requirement
50
+ requirement: &2161736720 !ruby/object:Gem::Requirement
51
51
  none: false
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- version: "0"
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
58
+ version_requirements: *2161736720
59
+ - !ruby/object:Gem::Dependency
60
60
  name: rake
61
- requirement: &id005 !ruby/object:Gem::Requirement
61
+ requirement: &2161735980 !ruby/object:Gem::Requirement
62
62
  none: false
63
- requirements:
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: "0"
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *id005
70
- - !ruby/object:Gem::Dependency
69
+ version_requirements: *2161735980
70
+ - !ruby/object:Gem::Dependency
71
71
  name: rspec
72
- requirement: &id006 !ruby/object:Gem::Requirement
72
+ requirement: &2161735360 !ruby/object:Gem::Requirement
73
73
  none: false
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- version: "0"
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *id006
81
- - !ruby/object:Gem::Dependency
80
+ version_requirements: *2161735360
81
+ - !ruby/object:Gem::Dependency
82
82
  name: guard-rspec
83
- requirement: &id007 !ruby/object:Gem::Requirement
83
+ requirement: &2161734780 !ruby/object:Gem::Requirement
84
84
  none: false
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: "0"
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *id007
92
- - !ruby/object:Gem::Dependency
91
+ version_requirements: *2161734780
92
+ - !ruby/object:Gem::Dependency
93
93
  name: rdoc
94
- requirement: &id008 !ruby/object:Gem::Requirement
94
+ requirement: &2161734340 !ruby/object:Gem::Requirement
95
95
  none: false
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- version: "0"
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *id008
103
- - !ruby/object:Gem::Dependency
102
+ version_requirements: *2161734340
103
+ - !ruby/object:Gem::Dependency
104
104
  name: rb-fsevent
105
- requirement: &id009 !ruby/object:Gem::Requirement
105
+ requirement: &2161733820 !ruby/object:Gem::Requirement
106
106
  none: false
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: "0"
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
111
  type: :development
112
112
  prerelease: false
113
- version_requirements: *id009
114
- - !ruby/object:Gem::Dependency
113
+ version_requirements: *2161733820
114
+ - !ruby/object:Gem::Dependency
115
115
  name: growl
116
- requirement: &id010 !ruby/object:Gem::Requirement
116
+ requirement: &2161733380 !ruby/object:Gem::Requirement
117
117
  none: false
118
- requirements:
119
- - - ">="
120
- - !ruby/object:Gem::Version
121
- version: "0"
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
122
  type: :development
123
123
  prerelease: false
124
- version_requirements: *id010
125
- description: Convert files of chess tournament data in different formats to ruby classes and vice-versa.
124
+ version_requirements: *2161733380
125
+ description: Convert files of chess tournament data in different formats to ruby classes
126
+ and vice-versa.
126
127
  email: mark.j.l.orr@googlemail.com
127
128
  executables: []
128
-
129
129
  extensions: []
130
-
131
- extra_rdoc_files:
130
+ extra_rdoc_files:
132
131
  - LICENCE
133
132
  - README.rdoc
134
- files:
133
+ files:
135
134
  - lib/icu_tournament/federation.rb
136
135
  - lib/icu_tournament/player.rb
137
136
  - lib/icu_tournament/result.rb
@@ -159,40 +158,38 @@ files:
159
158
  - spec/util_spec.rb
160
159
  - LICENCE
161
160
  - README.rdoc
161
+ has_rdoc: true
162
162
  homepage: http://github.com/sanichi/icu_tournament
163
163
  licenses: []
164
-
165
164
  post_install_message:
166
165
  rdoc_options: []
167
-
168
- require_paths:
166
+ require_paths:
169
167
  - lib
170
- required_ruby_version: !ruby/object:Gem::Requirement
168
+ required_ruby_version: !ruby/object:Gem::Requirement
171
169
  none: false
172
- requirements:
173
- - - ">="
174
- - !ruby/object:Gem::Version
175
- hash: 3338096865289385673
176
- segments:
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ segments:
177
175
  - 0
178
- version: "0"
179
- required_rubygems_version: !ruby/object:Gem::Requirement
176
+ hash: -2393290451362669331
177
+ required_rubygems_version: !ruby/object:Gem::Requirement
180
178
  none: false
181
- requirements:
182
- - - ">="
183
- - !ruby/object:Gem::Version
184
- hash: 3338096865289385673
185
- segments:
179
+ requirements:
180
+ - - ! '>='
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
183
+ segments:
186
184
  - 0
187
- version: "0"
185
+ hash: -2393290451362669331
188
186
  requirements: []
189
-
190
187
  rubyforge_project: icu_tournament
191
- rubygems_version: 1.8.5
188
+ rubygems_version: 1.6.2
192
189
  signing_key:
193
190
  specification_version: 3
194
191
  summary: For reading and writing files of chess tournament data.
195
- test_files:
192
+ test_files:
196
193
  - spec/federation_spec.rb
197
194
  - spec/player_spec.rb
198
195
  - spec/result_spec.rb