footty 0.4.0 → 2024.5.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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