footty 0.4.0 → 2024.5.10

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
- SHA1:
3
- metadata.gz: a9e350f6c69753563babe7b6313e990333d20f8a
4
- data.tar.gz: 9abbd3a090529c2d6dceb8f5cb4a30c09032885a
2
+ SHA256:
3
+ metadata.gz: 34ac44dbe56d51fad5a516b69331ab594243cbac79f5c4b63f69271455773cd5
4
+ data.tar.gz: 428605f76f7713f3e61f8cf53cf80d5c8c3d6add43f649a0d701e9ca465d4259
5
5
  SHA512:
6
- metadata.gz: 9fb986e01c99f9ce33b1ebb04e321af30c85570967c42a046029c3c70726a57e38a56a8f217792959cebe9d59313962407af8ca54a07c4a2af07f422812751ad
7
- data.tar.gz: dae5fdad18c6f894f01e991d5bc0db5f9345fbde968edf3d42b4f3407c79a31e2678af30269d2b24d67b419e1d8f1602d6a856bad70828aa0c08b87f93d31979
6
+ metadata.gz: 359ab0cc33ca8b8482a1d2e9cb60ea58e96c95c5494dc35232018dba09fe164f22a8a167afc1536e90ed9dabb600fe412fab6d0c7aa1a4afa3e3967e3c857907
7
+ data.tar.gz: 344366274d54e0721d8a718af983dd555009db88a8d11f89e56149bef17cb24ff23e17c772ca133a31bef0e0ac65a1dc68207b45e3c9a4c9c429241d30398599
@@ -1,3 +1,4 @@
1
+ ### 2024.5.10
1
2
  ### 1.0.0 / 2018-06-09
2
3
 
3
4
  * Everything is new (again). First release.
data/Manifest.txt CHANGED
@@ -1,4 +1,4 @@
1
- HISTORY.md
1
+ CHANGELOG.md
2
2
  Manifest.txt
3
3
  README.md
4
4
  Rakefile
@@ -6,5 +6,3 @@ bin/footty
6
6
  lib/footty.rb
7
7
  lib/footty/client.rb
8
8
  lib/footty/version.rb
9
- test/helper.rb
10
- test/test_client.rb
data/README.md CHANGED
@@ -1,10 +1,9 @@
1
- # footty - football.db command line client for world cup (russia 2018) and more
1
+ # footty - football.db command line client for european ("euro") championship 2024 and more
2
2
 
3
3
  * home :: [github.com/sportdb/footty](https://github.com/sportdb/footty)
4
4
  * bugs :: [github.com/sportdb/footty/issues](https://github.com/sportdb/footty/issues)
5
5
  * gem :: [rubygems.org/gems/footty](https://rubygems.org/gems/footty)
6
6
  * rdoc :: [rubydoc.info/gems/footty](http://rubydoc.info/gems/footty)
7
- * forum :: [opensport](http://groups.google.com/group/opensport)
8
7
 
9
8
 
10
9
 
@@ -15,27 +14,12 @@
15
14
  The footty command line tool lets you query the online football.db HTTP JSON API services
16
15
  for upcoming or past matches. For example:
17
16
 
18
- $ footty # Defaults to today's world cup 2018 matches
17
+ $ footty # Defaults to today's euro 2024 matches
19
18
 
20
- prints on Jun/14 2018:
19
+ prints on Jun/14 2024:
21
20
 
22
- #1 Thu Jun/14 Russia (RUS) 5-0 Saudi Arabia (KSA) Group A @ Luzhniki Stadium, Moscow
23
- [Gazinsky 12' Cheryshev 43' Dzyuba 71' Cheryshev 90+1' Golovin 90+4']
24
-
25
- prints on Jun/15 2018:
26
-
27
- #2 Fri Jun/15 Egypt (EGY) vs Uruguay (URU) Group A @ Ekaterinburg Arena, Ekaterinburg
28
- #3 Fri Jun/15 Portugal (POR) vs Spain (ESP) Group B @ Fisht Stadium, Sochi
29
- #4 Fri Jun/15 Morocco (MAR) vs Iran (IRN) Group B @ Saint Petersburg Stadium, Saint Petersburg
30
-
31
- prints on Jun/16:
32
-
33
- #5 Sat Jun/16 France (FRA) vs Australia (AUS) Group C @ Kazan Arena, Kazan
34
- #6 Sat Jun/16 Peru (PER) vs Denmark (DEN) Group C @ Mordovia Arena, Saransk
35
- #7 Sat Jun/16 Argentina (ARG) vs Iceland (ISL) Group D @ Spartak Stadium, Moscow
36
- #8 Sat Jun/16 Croatia (CRO) vs Nigeria (NGA) Group D @ Kaliningrad Stadium, Kaliningrad
37
-
38
- and so on.
21
+ #1 Fri Jun/14 Germany (GER) vs Scotland (SCO) Group A / Matchday 1
22
+
39
23
  Use `tomorrow` or `t` or `+1` to print tomorrow's matches e.g.:
40
24
 
41
25
  $ footty tomorrow # -or-
@@ -60,6 +44,13 @@ Use `past` or `p` to print all past matches e.g.:
60
44
  That's it. Enjoy the beautiful game.
61
45
 
62
46
 
47
+
48
+
49
+ ## Trivia
50
+
51
+ Why tty? tty stands for teletype (tty) writer and is the old traditional (short) name for the unix command line.
52
+
53
+
63
54
  ## Install
64
55
 
65
56
  Just install the gem:
@@ -73,8 +64,11 @@ The `footty` scripts are dedicated to the public domain.
73
64
  Use it as you please with no restrictions whatsoever.
74
65
 
75
66
 
67
+
68
+
69
+
76
70
  ## Questions? Comments?
77
71
 
78
- Send them along to the
79
- [Open Sports & Friends Forum/Mailing List](http://groups.google.com/group/opensport).
80
- Thanks!
72
+ Yes, you can. More than welcome.
73
+ See [Help & Support »](https://github.com/openfootball/help)
74
+
data/Rakefile CHANGED
@@ -5,17 +5,17 @@ Hoe.spec 'footty' do
5
5
 
6
6
  self.version = Footty::VERSION
7
7
 
8
- self.summary = 'footty - football.db command line client for world cup (russia 2018) and more - who is playing today?'
8
+ self.summary = 'footty - football.db command line client for european "euro" championship 2024 and more - who is playing today?'
9
9
  self.description = summary
10
10
 
11
- self.urls = ['https://github.com/sportdb/footty']
11
+ self.urls = { home: 'https://github.com/sportdb/footty' }
12
12
 
13
13
  self.author = 'Gerald Bauer'
14
14
  self.email = 'opensport@googlegroups.com'
15
15
 
16
16
  # switch extension to .markdown for gihub formatting
17
- self.readme_file = 'README.md'
18
- self.history_file = 'HISTORY.md'
17
+ self.readme_file = 'README.md'
18
+ self.history_file = 'CHANGELOG.md'
19
19
 
20
20
  self.extra_deps = [
21
21
  ['logutils' ],
@@ -25,6 +25,6 @@ Hoe.spec 'footty' do
25
25
  self.licenses = ['Public Domain']
26
26
 
27
27
  self.spec_extras = {
28
- :required_ruby_version => '>= 2.3'
28
+ required_ruby_version: '>= 2.3'
29
29
  }
30
30
  end
data/bin/footty CHANGED
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ ## tip: to test run:
4
+ ## ruby -I ./lib bin/footty
5
+
3
6
  require 'footty'
4
7
 
5
8
  Footty.main
data/lib/footty/client.rb CHANGED
@@ -1,58 +1,66 @@
1
- # encoding: utf-8
2
-
3
1
  module Footty
4
2
 
3
+
5
4
  class Client
6
5
 
7
6
  include LogUtils::Logging
8
7
 
9
- API_BASE = 'https://raw.githubusercontent.com/openfootball/world-cup.json/master/2018'
10
8
 
11
- def initialize( opts={} )
12
- @opts = opts
9
+ def initialize( league:, year: )
13
10
  @worker = Fetcher::Worker.new
11
+
12
+ @league = league
13
+ @year = year
14
14
  end
15
15
 
16
16
 
17
+ APIS = {
18
+ worldcup: 'https://github.com/openfootball/worldcup.json/raw/master/$year$/worldcup.json',
19
+ euro: 'https://github.com/openfootball/euro.json/raw/master/$year$/euro.json'
20
+ }
17
21
 
18
22
  ### note:
19
- ## cache ALL methods - only do one web request for worldcup match schedule & results
20
- def get_worldcup
21
- @worldcup ||= get( 'worldcup.json' ) ## use "memoized" / cached result
23
+ ## cache ALL methods - only do one web request for match schedule & results
24
+ def get_matches
25
+ @data ||= begin
26
+ str = APIS[ @league.downcase.to_sym ]
27
+ str = str.gsub( '$year$', @year.to_s )
28
+
29
+ get( str ) ## use "memoized" / cached result
30
+ end
22
31
  end
23
32
 
24
33
 
25
34
 
26
35
 
27
-
28
36
  ## for testing lets you use /round/1 etc.
29
- def get_round( num )
30
- h = get_worldcup
37
+ def round( num )
38
+ h = get_matches
31
39
  matches = h[ 'rounds' ][ num-1 ] ## note: rounds hash starts with zero (not 1)
32
40
  matches
33
41
  end
34
42
 
35
43
 
36
- def get_todays_matches( date: Date.today ) get_matches_for( date ); end
37
- def get_tomorrows_matches( date: Date.today ) get_matches_for( date+1 ); end
38
- def get_yesterdays_matches( date: Date.today ) get_matches_for( date-1 ); end
44
+ def todays_matches( date: Date.today ) matches_for( date ); end
45
+ def tomorrows_matches( date: Date.today ) matches_for( date+1 ); end
46
+ def yesterdays_matches( date: Date.today ) matches_for( date-1 ); end
39
47
 
40
- def get_matches_for( date )
41
- hash = get_worldcup
48
+ def matches_for( date )
49
+ hash = get_matches
42
50
  matches = select_matches( hash[ 'rounds' ] ) { |match| date == Date.parse( match['date'] ) }
43
51
  matches
44
52
  end
45
53
 
46
54
 
47
- def get_upcoming_matches( date: Date.today )
55
+ def upcoming_matches( date: Date.today )
48
56
  ## note: includes todays matches for now
49
- hash = get_worldcup
57
+ hash = get_matches
50
58
  matches = select_matches( hash[ 'rounds' ] ) { |match| date <= Date.parse( match['date'] ) }
51
59
  matches
52
60
  end
53
61
 
54
- def get_past_matches( date: Date.today )
55
- hash = get_worldcup
62
+ def past_matches( date: Date.today )
63
+ hash = get_matches
56
64
  matches = select_matches( hash[ 'rounds' ] ) { |match| date > Date.parse( match['date'] ) }
57
65
  ## note reveserve matches (chronological order/last first)
58
66
  matches.reverse
@@ -76,17 +84,14 @@ private
76
84
  matches
77
85
  end
78
86
 
79
- def get( path )
80
- ## uri = URI.parse( "#{API_BASE}/#{path}" )
81
- # fix: use is_a? URI in fetcher
82
- uri_string = "#{API_BASE}/#{path}"
83
87
 
84
- response = @worker.get_response( uri_string )
88
+ def get( str )
89
+ response = @worker.get_response( str )
85
90
 
86
91
  if response.code == '200'
87
92
  ##
88
- ## todo/check:
89
- ## do we need to force utf-8 encoding?
93
+ ## fix/fix/todo/check:
94
+ ## do we need to force utf-8 encoding? yes!!!!
90
95
  ## check for teams w/ non-ascii names
91
96
  hash = JSON.parse( response.body )
92
97
  ## pp hash
@@ -98,6 +103,4 @@ private
98
103
  end
99
104
 
100
105
  end # class Client
101
-
102
-
103
106
  end # module Footty
@@ -1,14 +1,14 @@
1
- # encoding: utf-8
2
-
3
1
 
4
2
  module Footty
5
- VERSION = '0.4.0'
3
+ VERSION = '2024.5.10'
6
4
 
7
5
  def self.banner
8
- "footty/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
6
+ "footty/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}] in (#{root})"
9
7
  end
10
8
 
11
9
  def self.root
12
- "#{File.expand_path( File.dirname(File.dirname(File.dirname(__FILE__))) )}"
10
+ File.expand_path( File.dirname(File.dirname(File.dirname(__FILE__))) )
13
11
  end
14
12
  end
13
+
14
+
data/lib/footty.rb CHANGED
@@ -1,6 +1,3 @@
1
- # encoding: utf-8
2
-
3
-
4
1
  ## stdlibs
5
2
 
6
3
  require 'net/http'
@@ -15,8 +12,8 @@ require 'pp'
15
12
  require 'logutils'
16
13
  require 'fetcher'
17
14
 
18
- # our own code
19
15
 
16
+ # our own code
20
17
  require 'footty/version' # let it always go first
21
18
  require 'footty/client'
22
19
 
@@ -24,7 +21,8 @@ require 'footty/client'
24
21
  module Footty
25
22
 
26
23
  def self.client
27
- @@client ||= Client.new ## use "singelton" / shared client
24
+ ## note: hard code tournament / league for now
25
+ @client ||= Client.new( league: 'euro', year: 2024 ) ## use "singelton" / shared client
28
26
  end
29
27
 
30
28
 
@@ -38,43 +36,47 @@ module Footty
38
36
  ## in the future make today "configurable" as param - why? why not?
39
37
  today = Date.today
40
38
 
41
- if ['yesterday', 'y', '-1'].include? what
42
- matches = client.get_yesterdays_matches
39
+ if ['yesterday', 'y', '-1'].include?( what )
40
+ matches = client.yesterdays_matches
43
41
  if matches.empty?
44
42
  puts "** No matches played yesterday.\n"
45
43
  end
46
- elsif ['tomorrow', 't', '+1', '1'].include? what
47
- matches = client.get_tomorrows_matches
44
+ elsif ['tomorrow', 't', '+1', '1'].include?( what )
45
+ matches = client.tomorrows_matches
48
46
  if matches.empty?
49
47
  puts "** No matches scheduled tomorrow.\n"
50
48
  end
51
- elsif ['past', 'p', 'prev'].include? what
52
- matches = client.get_past_matches
49
+ elsif ['past', 'p', 'prev'].include?( what )
50
+ matches = client.past_matches
53
51
  if matches.empty?
54
52
  puts "** No matches played yet.\n"
55
53
  end
56
- elsif ['upcoming', 'up', 'u', 'next', 'n'].include? what
57
- matches = client.get_upcoming_matches
54
+ elsif ['upcoming', 'up', 'u', 'next', 'n'].include?( what )
55
+ matches = client.upcoming_matches
58
56
  if matches.empty?
59
57
  puts "** No more matches scheduled.\n"
60
58
  end
61
59
  else
62
- matches = client.get_todays_matches
60
+ matches = client.todays_matches
63
61
 
64
62
  ## no matches today
65
63
  if matches.empty?
66
64
  puts "** No matches scheduled today.\n"
67
65
 
68
- if Date.today > Date.new( 2018, 7, 11 ) ## world cup is over, look back
66
+ ## note: was world cup 2018 - end date -- Date.new( 2018, 7, 11 )
67
+ ## note: was euro 2020 (in 2021) - end date -- Date.new( 2021, 7, 11 )
68
+ if Date.today > Date.new( 2024, 7, 14 ) ## tournament is over, look back
69
69
  puts "Past matches:"
70
- matches = client.get_past_matches
70
+ matches = client.past_matches
71
71
  else ## world cup is upcoming /in-progress,look forward
72
72
  puts "Upcoming matches:"
73
- matches = client.get_upcoming_matches
73
+ matches = client.upcoming_matches
74
74
  end
75
75
  end
76
76
  end
77
77
 
78
+
79
+
78
80
  print_matches( matches )
79
81
  end
80
82
 
@@ -95,25 +97,32 @@ module Footty
95
97
  print "%10s" % "(in #{diff}d) "
96
98
  end
97
99
 
98
- print "%20s" % "#{match['team1']['name']} (#{match['team1']['code']})"
100
+ print "%22s" % "#{match['team1']['name']} (#{match['team1']['code']})"
99
101
 
102
+ ## todo/fix: add support for knockout scores
103
+ ## with score1et/score1p (extra time and penalty)
100
104
  if match['score1'] && match['score2']
101
105
  print " #{match['score1']}-#{match['score2']} "
106
+ print "(#{match['score1i']}-#{match['score2i']}) "
102
107
  else
103
- print " vs "
108
+ print " vs "
104
109
  end
105
110
 
106
- print "%20s" % "#{match['team2']['name']} (#{match['team2']['code']})"
111
+ print "%-22s" % "#{match['team2']['name']} (#{match['team2']['code']})"
107
112
 
108
113
  if match['group']
109
- print " #{match['group']} " ## group phase/stage
110
- else
111
- print " #{match['round']} " ## knock out (k.o.) phase/stage
114
+ print " #{match['group']} /" ## group phase/stage
115
+ end
116
+
117
+ print " #{match['round']} " ## knock out (k.o.) phase/stage
118
+
119
+ if match['stadium']
120
+ print " @ #{match['stadium']['name']}, #{match['city']}"
112
121
  end
113
122
 
114
- print " @ #{match['stadium']['name']}, #{match['city']}"
115
123
  print "\n"
116
124
 
125
+
117
126
  if match['goals1'] && match['goals2']
118
127
  print " ["
119
128
  match['goals1'].each_with_index do |goal,i|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: footty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 2024.5.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-14 00:00:00.000000000 Z
11
+ date: 2024-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logutils
@@ -42,42 +42,48 @@ dependencies:
42
42
  name: rdoc
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '4.0'
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: '7'
48
51
  type: :development
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
51
54
  requirements:
52
- - - "~>"
55
+ - - ">="
53
56
  - !ruby/object:Gem::Version
54
57
  version: '4.0'
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '7'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: hoe
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: '3.16'
67
+ version: '4.1'
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: '3.16'
69
- description: footty - football.db command line client for world cup (russia 2018)
70
- and more - who is playing today?
74
+ version: '4.1'
75
+ description: footty - football.db command line client for european "euro" championship
76
+ 2024 and more - who is playing today?
71
77
  email: opensport@googlegroups.com
72
78
  executables:
73
79
  - footty
74
80
  extensions: []
75
81
  extra_rdoc_files:
76
- - HISTORY.md
82
+ - CHANGELOG.md
77
83
  - Manifest.txt
78
84
  - README.md
79
85
  files:
80
- - HISTORY.md
86
+ - CHANGELOG.md
81
87
  - Manifest.txt
82
88
  - README.md
83
89
  - Rakefile
@@ -85,13 +91,11 @@ files:
85
91
  - lib/footty.rb
86
92
  - lib/footty/client.rb
87
93
  - lib/footty/version.rb
88
- - test/helper.rb
89
- - test/test_client.rb
90
94
  homepage: https://github.com/sportdb/footty
91
95
  licenses:
92
96
  - Public Domain
93
97
  metadata: {}
94
- post_install_message:
98
+ post_install_message:
95
99
  rdoc_options:
96
100
  - "--main"
97
101
  - README.md
@@ -108,10 +112,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
112
  - !ruby/object:Gem::Version
109
113
  version: '0'
110
114
  requirements: []
111
- rubyforge_project:
112
- rubygems_version: 2.5.2
113
- signing_key:
115
+ rubygems_version: 3.4.10
116
+ signing_key:
114
117
  specification_version: 4
115
- summary: footty - football.db command line client for world cup (russia 2018) and
116
- more - who is playing today?
118
+ summary: footty - football.db command line client for european "euro" championship
119
+ 2024 and more - who is playing today?
117
120
  test_files: []
data/test/helper.rb DELETED
@@ -1,10 +0,0 @@
1
- ## $:.unshift(File.dirname(__FILE__))
2
-
3
- ## minitest setup
4
-
5
- require 'minitest/autorun'
6
-
7
-
8
- ## our own code
9
-
10
- require 'footty'
data/test/test_client.rb DELETED
@@ -1,163 +0,0 @@
1
- # encoding: utf-8
2
-
3
-
4
- require 'helper'
5
-
6
-
7
-
8
- class TestClient < MiniTest::Test
9
-
10
- def setup
11
- @client = Footty.client
12
- end
13
-
14
-
15
- def test_getters
16
- today = Date.new( 2018, 6, 16 )
17
-
18
- todays = @client.get_todays_matches( date: today )
19
- pp todays
20
- assert_equal 4, todays.size
21
-
22
- yesterdays = @client.get_yesterdays_matches( date: today )
23
- pp yesterdays
24
- assert_equal 3, yesterdays.size
25
-
26
- tomorrows = @client.get_tomorrows_matches( date: today )
27
- pp tomorrows
28
- assert_equal 3, tomorrows.size
29
-
30
- past = @client.get_past_matches( date: today )
31
- pp past
32
-
33
- upcoming = @client.get_upcoming_matches( date: today )
34
- pp upcoming
35
- end
36
-
37
-
38
-
39
- def test_todays_matches_2018_6_14
40
- today = Date.new( 2018, 6, 14 )
41
- ary = @client.get_todays_matches( date: today )
42
- ## pp ary
43
- =begin
44
- [{"num"=>1,
45
- "date"=>"2018-06-14",
46
- "time"=>"18:00",
47
- "team1"=>{"name"=>"Russia", "code"=>"RUS"},
48
- "team2"=>{"name"=>"Saudi Arabia", "code"=>"KSA"},
49
- "score1"=>nil,
50
- "score2"=>nil,
51
- "score1i"=>nil,
52
- "score2i"=>nil,
53
- "group"=>"Group A",
54
- "stadium"=>{"key"=>"luzhniki", "name"=>"Luzhniki Stadium"},
55
- "city"=>"Moscow",
56
- "timezone"=>"UTC+3",
57
- "round"=>"Matchday 1"}]
58
- =end
59
-
60
- assert_equal Array, ary.class ## for now just check return type (e.g. assume Array for parsed JSON data)
61
- assert_equal 1, ary.size
62
- assert_equal 'RUS', ary[0]['team1']['code']
63
- assert_equal 'KSA', ary[0]['team2']['code']
64
- assert_equal 'Matchday 1', ary[0]['round']
65
- assert_nil ary[0]['score1']
66
- assert_nil ary[0]['score2']
67
- end
68
-
69
- def test_todays_matches_2018_6_10
70
- today = Date.new( 2018, 6, 10 )
71
- ary = @client.get_todays_matches( date: today )
72
- ## note: returns empty array if no matches scheduled/playing today
73
- pp ary
74
-
75
- assert_equal Array, ary.class ## for now just check return type (e.g. assume Array for parsed JSON data)
76
- assert ary.empty?
77
- end
78
-
79
- def test_world_2018_round_1
80
- h = @client.get_round( 1 )
81
-
82
- ## pp h
83
- =begin
84
- {"name"=>"Matchday 1",
85
- "matches"=>
86
- [{"num"=>1,
87
- "date"=>"2018-06-14",
88
- "time"=>"18:00",
89
- "team1"=>{"name"=>"Russia", "code"=>"RUS"},
90
- "team2"=>{"name"=>"Saudi Arabia", "code"=>"KSA"},
91
- "score1"=>nil,
92
- "score2"=>nil,
93
- "score1i"=>nil,
94
- "score2i"=>nil,
95
- "group"=>"Group A",
96
- "stadium"=>{"key"=>"luzhniki", "name"=>"Luzhniki Stadium"},
97
- "city"=>"Moscow",
98
- "timezone"=>"UTC+3"}]}
99
- =end
100
-
101
- assert_equal 'RUS', h['matches'][0]['team1']['code']
102
- assert_equal 'KSA', h['matches'][0]['team2']['code']
103
- assert_nil h['matches'][0]['score1']
104
- assert_nil h['matches'][0]['score2']
105
- end
106
-
107
-
108
- def test_world_2018_round_2
109
- h = @client.get_round( 2 )
110
-
111
- ## pp h
112
- =begin
113
- {"name"=>"Matchday 2",
114
- "matches"=>
115
- [{"num"=>2,
116
- "date"=>"2018-06-15",
117
- "time"=>"17:00",
118
- "team1"=>{"name"=>"Egypt", "code"=>"EGY"},
119
- "team2"=>{"name"=>"Uruguay", "code"=>"URU"},
120
- "score1"=>nil,
121
- "score2"=>nil,
122
- "score1i"=>nil,
123
- "score2i"=>nil,
124
- "group"=>"Group A",
125
- "stadium"=>{"key"=>"ekaterinburg", "name"=>"Ekaterinburg Arena"},
126
- "city"=>"Ekaterinburg",
127
- "timezone"=>"UTC+5"},
128
- {"num"=>3,
129
- "date"=>"2018-06-15",
130
- "time"=>"21:00",
131
- "team1"=>{"name"=>"Portugal", "code"=>"POR"},
132
- "team2"=>{"name"=>"Spain", "code"=>"ESP"},
133
- "score1"=>nil,
134
- "score2"=>nil,
135
- "score1i"=>nil,
136
- "score2i"=>nil,
137
- "group"=>"Group B",
138
- "stadium"=>{"key"=>"fisht", "name"=>"Fisht Stadium"},
139
- "city"=>"Sochi",
140
- "timezone"=>"UTC+3"},
141
- {"num"=>4,
142
- "date"=>"2018-06-15",
143
- "time"=>"18:00",
144
- "team1"=>{"name"=>"Morocco", "code"=>"MAR"},
145
- "team2"=>{"name"=>"Iran", "code"=>"IRN"},
146
- "score1"=>nil,
147
- "score2"=>nil,
148
- "score1i"=>nil,
149
- "score2i"=>nil,
150
- "group"=>"Group B",
151
- "stadium"=>{"key"=>"saintpetersburg", "name"=>"Saint Petersburg Stadium"},
152
- "city"=>"Saint Petersburg",
153
- "timezone"=>"UTC+3"}]}
154
- =end
155
-
156
- assert_equal 'EGY', h['matches'][0]['team1']['code']
157
- assert_equal 'URU', h['matches'][0]['team2']['code']
158
- assert_nil h['matches'][0]['score1']
159
- assert_nil h['matches'][0]['score2']
160
- end
161
-
162
-
163
- end # class TestClient