football-butler 1.0.1 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/lib/football/butler/api.rb +14 -17
  3. data/lib/football/butler/api_football/base_api_football.rb +17 -0
  4. data/lib/football/butler/api_football/coachs.rb +46 -0
  5. data/lib/football/butler/api_football/countries.rb +39 -0
  6. data/lib/football/butler/api_football/fixtures.rb +80 -0
  7. data/lib/football/butler/api_football/head_to_head.rb +56 -0
  8. data/lib/football/butler/api_football/injuries.rb +62 -0
  9. data/lib/football/butler/api_football/leagues.rb +101 -0
  10. data/lib/football/butler/api_football/lineups.rb +39 -0
  11. data/lib/football/butler/api_football/odds.rb +55 -0
  12. data/lib/football/butler/api_football/players.rb +47 -0
  13. data/lib/football/butler/api_football/predictions.rb +27 -0
  14. data/lib/football/butler/api_football/sidelineds.rb +37 -0
  15. data/lib/football/butler/api_football/standings.rb +35 -0
  16. data/lib/football/butler/api_football/statistics.rb +22 -0
  17. data/lib/football/butler/api_football/teams.rb +66 -0
  18. data/lib/football/butler/api_football/timezones.rb +21 -0
  19. data/lib/football/butler/api_football/top_scorers.rb +22 -0
  20. data/lib/football/butler/api_football/transfers.rb +36 -0
  21. data/lib/football/butler/api_football/trophies.rb +37 -0
  22. data/lib/football/butler/api_football/venues.rb +66 -0
  23. data/lib/football/butler/apifootball/base_apifootball.rb +17 -0
  24. data/lib/football/butler/apifootball/competitions.rb +30 -0
  25. data/lib/football/butler/apifootball/countries.rb +20 -0
  26. data/lib/football/butler/apifootball/events.rb +61 -0
  27. data/lib/football/butler/apifootball/head_to_head.rb +30 -0
  28. data/lib/football/butler/apifootball/lineups.rb +22 -0
  29. data/lib/football/butler/apifootball/odds.rb +25 -0
  30. data/lib/football/butler/apifootball/players.rb +27 -0
  31. data/lib/football/butler/apifootball/predictions.rb +28 -0
  32. data/lib/football/butler/apifootball/standings.rb +23 -0
  33. data/lib/football/butler/apifootball/statistics.rb +22 -0
  34. data/lib/football/butler/apifootball/teams.rb +29 -0
  35. data/lib/football/butler/apifootball/top_scorers.rb +22 -0
  36. data/lib/football/butler/areas.rb +23 -23
  37. data/lib/football/butler/base.rb +45 -18
  38. data/lib/football/butler/coachs.rb +26 -0
  39. data/lib/football/butler/competitions.rb +53 -44
  40. data/lib/football/butler/configuration.rb +275 -14
  41. data/lib/football/butler/countries.rb +11 -0
  42. data/lib/football/butler/events.rb +11 -0
  43. data/lib/football/butler/fixtures.rb +11 -0
  44. data/lib/football/butler/football_data/areas.rb +40 -0
  45. data/lib/football/butler/football_data/competitions.rb +72 -0
  46. data/lib/football/butler/football_data/head_to_head.rb +27 -0
  47. data/lib/football/butler/football_data/lineups.rb +32 -0
  48. data/lib/football/butler/football_data/matches.rb +110 -0
  49. data/lib/football/butler/football_data/odds.rb +27 -0
  50. data/lib/football/butler/football_data/players.rb +20 -0
  51. data/lib/football/butler/football_data/scorers.rb +23 -0
  52. data/lib/football/butler/football_data/standings.rb +47 -0
  53. data/lib/football/butler/football_data/teams.rb +39 -0
  54. data/lib/football/butler/head_to_head.rb +28 -0
  55. data/lib/football/butler/injuries.rb +31 -0
  56. data/lib/football/butler/leagues.rb +11 -0
  57. data/lib/football/butler/lineups.rb +18 -0
  58. data/lib/football/butler/matches.rb +48 -83
  59. data/lib/football/butler/odds.rb +18 -0
  60. data/lib/football/butler/players.rb +26 -0
  61. data/lib/football/butler/predictions.rb +17 -0
  62. data/lib/football/butler/scorers.rb +22 -0
  63. data/lib/football/butler/sidelineds.rb +20 -0
  64. data/lib/football/butler/standings.rb +30 -0
  65. data/lib/football/butler/statistics.rb +17 -0
  66. data/lib/football/butler/teams.rb +23 -23
  67. data/lib/football/butler/tier.rb +26 -11
  68. data/lib/football/butler/timezones.rb +16 -0
  69. data/lib/football/butler/top_scorers.rb +11 -0
  70. data/lib/football/butler/transfers.rb +21 -0
  71. data/lib/football/butler/trophies.rb +21 -0
  72. data/lib/football/butler/venues.rb +34 -0
  73. data/lib/football/butler/version.rb +8 -2
  74. data/lib/football/butler.rb +20 -0
  75. metadata +71 -7
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Football
4
+ module Butler
5
+ module FootballData
6
+ class Teams < Base
7
+ PATH = :teams
8
+
9
+ class << self
10
+ ## TEAM
11
+ # v2/teams/{id}
12
+ # returns team object directly as a hash
13
+ def by_id(id:)
14
+ path = "#{PATH}/#{id}"
15
+ Api.get(path: path)
16
+ end
17
+
18
+ ## TEAMS
19
+ #
20
+ # season={YEAR}
21
+ # stage={STAGE}
22
+ #
23
+ # v2/competitions/{id}/teams
24
+ def by_competition(id:, result:, filters:)
25
+ path = "#{Competitions::PATH}/#{id}/#{PATH}"
26
+ Api.get(path: path, result: result, filters: filters)
27
+ end
28
+
29
+ # v2/competitions/{id}/teams?year={year}
30
+ def by_competition_and_year(id:, year:, result:, filters:)
31
+ path = "#{Competitions::PATH}/#{id}/#{PATH}"
32
+ filters.merge!({ year: year })
33
+ Api.get(path: path, result: result, filters: filters)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+ require 'football/butler/football_data/head_to_head'
3
+ require 'football/butler/apifootball/head_to_head'
4
+ require 'football/butler/api_football/head_to_head'
5
+
6
+ module Football
7
+ module Butler
8
+ class HeadToHead < Base
9
+
10
+ class << self
11
+ ## HEAD TO HEAD
12
+ def by_match(id:)
13
+ api_switch_method(__method__, { id: id })
14
+ end
15
+
16
+ def by_teams(team_id:, second_team_id:, filters: {}, result: api_switch_result)
17
+ api_switch_method(__method__, {
18
+ team_id: team_id,
19
+ second_team_id: second_team_id,
20
+ filters: filters,
21
+ result: result
22
+ }
23
+ )
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+ require 'football/butler/api_football/injuries'
3
+
4
+ module Football
5
+ module Butler
6
+ class Injuries < Base
7
+
8
+ class << self
9
+ ## INJURIES
10
+ #
11
+ def by_competition_and_season(competition:, season:, result: api_switch_result, filters: {})
12
+ api_switch_method(__method__, {
13
+ competition: competition, season: season, result: result, filters: filters
14
+ })
15
+ end
16
+
17
+ def by_match(match:, result: api_switch_result, filters: {})
18
+ api_switch_method(__method__, {
19
+ match: match, result: result, filters: filters
20
+ })
21
+ end
22
+
23
+ def by_team_and_season(team:, season:, result: api_switch_result, filters: {})
24
+ api_switch_method(__method__, {
25
+ team: team, season: season, result: result, filters: filters
26
+ })
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+ require 'football/butler/apifootball/competitions'
3
+ require 'football/butler/football_data/competitions'
4
+ require 'football/butler/api_football/leagues'
5
+
6
+ module Football
7
+ module Butler
8
+ class Leagues < Competitions
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+ require 'football/butler/football_data/lineups'
3
+ require 'football/butler/apifootball/lineups'
4
+ require 'football/butler/api_football/lineups'
5
+
6
+ module Football
7
+ module Butler
8
+ class Lineups < Base
9
+
10
+ class << self
11
+ ## LINEUPS
12
+ def by_match(id:)
13
+ api_switch_method(__method__, { id: id })
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,91 +1,56 @@
1
1
  # frozen_string_literal: true
2
+ require 'football/butler/apifootball/events'
3
+ require 'football/butler/football_data/matches'
4
+ require 'football/butler/api_football/fixtures'
2
5
 
3
6
  module Football
4
7
  module Butler
5
8
  class Matches < Base
6
- PATH = :matches
7
- STATUS_SCHEDULED = 'SCHEDULED'
8
- STATUS_FINISHED = 'FINISHED'
9
-
10
- ## MATCH
11
- # v2/matches/{id}
12
- # returns match object directly as a hash
13
- def self.by_id(id:)
14
- path = "#{PATH}/#{id}"
15
- Api.get(path: path)
16
- end
17
-
18
- ## MATCHES
19
- #
20
- # competitions={competitionIds}
21
- # dateFrom={DATE}
22
- # dateTo={DATE}
23
- # status={STATUS}
24
- #
25
- # /v2/matches
26
- def self.all(result: PATH, filters: {})
27
- Api.get(path: PATH, result: result, filters: filters)
28
- end
29
-
30
- ## by COMPETITION
31
- #
32
- # dateFrom={DATE}
33
- # dateTo={DATE}
34
- # stage={STAGE}
35
- # status={STATUS}
36
- # matchday={MATCHDAY}
37
- # group={GROUP}
38
- # season={YEAR}
39
- #
40
- # v2/competitions/{id}/matches
41
- def self.by_competition(id:, result: PATH, filters: {})
42
- path = "#{Competitions::PATH}/#{id}/#{PATH}"
43
- Api.get(path: path, filters: filters, result: result)
44
- end
45
-
46
- # v2/competitions/{id}/matches?season={year}
47
- def self.by_competition_and_year(id:, year:, result: PATH, filters: {})
48
- path = "#{Competitions::PATH}/#{id}/#{PATH}"
49
- filters.merge!({ season: year })
50
- Api.get(path: path, filters: filters, result: result)
51
- end
52
-
53
- # v2/competitions/{id}/matches?matchday={match_day}
54
- def self.by_competition_and_match_day(id:, match_day:, result: PATH, filters: {})
55
- path = "#{Competitions::PATH}/#{id}/#{PATH}"
56
- filters.merge!({ matchday: match_day })
57
- Api.get(path: path, filters: filters, result: result)
58
- end
59
-
60
- ## by TEAM
61
- #
62
- # dateFrom={DATE}
63
- # dateTo={DATE}
64
- # status={STATUS}
65
- # venue={VENUE}
66
- # limit={LIMIT}
67
- #
68
- # v2/teams/{id}/matches
69
- def self.by_team(id:, result: PATH, filters: {})
70
- path = "#{Teams::PATH}/#{id}/#{PATH}"
71
- Api.get(path: path, result: result, filters: filters)
72
- end
73
-
74
- # v2/teams/{id}/matches?status={status}
75
- def self.by_team_and_status(id:, status:, result: PATH, filters: {})
76
- path = "#{Teams::PATH}/#{id}/#{PATH}"
77
- filters.merge!({ status: status })
78
- Api.get(path: path, result: result, filters: filters)
79
- end
80
-
81
- # v2/teams/{team}/matches?status=FINISHED
82
- def self.by_team_finished(id:, result: PATH, filters: {})
83
- by_team_and_status(id: id, status: STATUS_FINISHED, result: result, filters: filters)
84
- end
85
-
86
- # v2/teams/{team}/matches?status=SCHEDULED
87
- def self.by_team_scheduled(id:, result: PATH, filters: {})
88
- by_team_and_status(id: id, status: STATUS_SCHEDULED, result: result, filters: filters)
9
+ class << self
10
+ ## MATCH
11
+ def by_id(id:)
12
+ api_switch_method(__method__, { id: id })
13
+ end
14
+
15
+ ## MATCHES
16
+ def all(result: api_switch_result, filters: {})
17
+ api_switch_method(__method__, { result: result, filters: filters })
18
+ end
19
+
20
+ ## by COMPETITION
21
+ def by_competition(id:, result: api_switch_result, filters: {})
22
+ api_switch_method(__method__, { id: id, result: result, filters: filters })
23
+ end
24
+
25
+ def by_competition_and_year(id:, year:, result: api_switch_result, filters: {})
26
+ api_switch_method(__method__, { id: id, year: year, result: result, filters: filters })
27
+ end
28
+
29
+ def by_competition_and_match_day(id:, match_day:, result: api_switch_result, filters: {})
30
+ api_switch_method(__method__, { id: id, match_day: match_day, result: result, filters: filters })
31
+ end
32
+
33
+ ## by TEAM
34
+ def by_team(id:, result: api_switch_result, filters: {})
35
+ api_switch_method(__method__, { id: id, result: result, filters: filters })
36
+ end
37
+
38
+ def by_team_and_status(id:, status:, result: api_switch_result, filters: {})
39
+ api_switch_method(__method__, { id: id, status: status, result: result, filters: filters })
40
+ end
41
+
42
+ def by_team_finished(id:, result: api_switch_result, filters: {})
43
+ api_switch_method(__method__, { id: id, result: result, filters: filters })
44
+ end
45
+
46
+ def by_team_scheduled(id:, result: api_switch_result, filters: {})
47
+ api_switch_method(__method__, { id: id, result: result, filters: filters })
48
+ end
49
+
50
+ ## by PLAYER
51
+ def by_player(id:, result: api_switch_result, filters: {})
52
+ api_switch_method(__method__, { id: id, result: result, filters: filters })
53
+ end
89
54
  end
90
55
  end
91
56
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+ require 'football/butler/football_data/odds'
3
+ require 'football/butler/apifootball/odds'
4
+ require 'football/butler/api_football/odds'
5
+
6
+ module Football
7
+ module Butler
8
+ class Odds < Base
9
+
10
+ class << self
11
+ ## ODDS
12
+ def by_match(id:, from: nil, to: nil, result: api_switch_result)
13
+ api_switch_method(__method__, { id: id, from: from, to: to, result: result })
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+ require 'football/butler/apifootball/players'
3
+ require 'football/butler/football_data/players'
4
+ require 'football/butler/api_football/players'
5
+
6
+ module Football
7
+ module Butler
8
+ class Players < Base
9
+
10
+ class << self
11
+ ## PLAYER
12
+ def by_id(id:)
13
+ api_switch_method(__method__, { id: id })
14
+ end
15
+
16
+ def by_name(name:, result: api_switch_result)
17
+ api_switch_method(__method__, { name: name, result: result })
18
+ end
19
+
20
+ def by_id_and_season(id:, season:, result: api_switch_result, filters: {})
21
+ api_switch_method(__method__, { id: id, season: season, result: result, filters: filters })
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+ require 'football/butler/apifootball/predictions'
3
+ require 'football/butler/api_football/predictions'
4
+
5
+ module Football
6
+ module Butler
7
+ class Predictions < Base
8
+
9
+ class << self
10
+ ## PREDICTIONS
11
+ def by_match(id:, filters: {}, result: api_switch_result)
12
+ api_switch_method(__method__, { id: id, filters: filters, result: result })
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+ require 'football/butler/football_data/scorers'
3
+ require 'football/butler/apifootball/top_scorers'
4
+ require 'football/butler/api_football/top_scorers'
5
+
6
+ module Football
7
+ module Butler
8
+ class Scorers < Base
9
+
10
+ class << self
11
+ ## SCORER
12
+ def by_competition(id:, result: api_switch_result, filters: {})
13
+ api_switch_method(__method__, { id: id, result: result, filters: filters })
14
+ end
15
+
16
+ def by_competition_and_year(id:, year:, result: api_switch_result, filters: {})
17
+ api_switch_method(__method__, { id: id, year: year, result: result, filters: filters })
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+ require 'football/butler/api_football/sidelineds'
3
+
4
+ module Football
5
+ module Butler
6
+ class Sidelineds < Base
7
+
8
+ class << self
9
+ ## SIDELINEDS
10
+ def by_player(player:, result: api_switch_result, filters: {})
11
+ api_switch_method(__method__, { player: player, result: result, filters: filters })
12
+ end
13
+
14
+ def by_coach(coach:, result: api_switch_result, filters: {})
15
+ api_switch_method(__method__, { coach: coach, result: result, filters: filters })
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+ require 'football/butler/apifootball/standings'
3
+ require 'football/butler/football_data/standings'
4
+ require 'football/butler/api_football/standings'
5
+
6
+ module Football
7
+ module Butler
8
+ class Standings < Base
9
+
10
+ class << self
11
+ def by_competition(id:, result: api_switch_result, filters: {})
12
+ api_switch_method(__method__, { id: id, result: result, filters: filters })
13
+ end
14
+
15
+ def home_by_competition(id:, result: api_switch_result, filters: {})
16
+ api_switch_method(__method__, { id: id, result: result, filters: filters })
17
+ end
18
+
19
+ def away_by_competition(id:, result: api_switch_result, filters: {})
20
+ api_switch_method(__method__, { id: id, result: result, filters: filters })
21
+ end
22
+
23
+ def by_competition_and_year(id:, year:, result: api_switch_result, filters: {})
24
+ api_switch_method(__method__, { id: id, year: year, result: result, filters: filters })
25
+ end
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+ require 'football/butler/apifootball/statistics'
3
+ require 'football/butler/api_football/statistics'
4
+
5
+ module Football
6
+ module Butler
7
+ class Statistics < Base
8
+
9
+ class << self
10
+ ## STATISTICS
11
+ def by_match(id:, result: api_switch_result)
12
+ api_switch_method(__method__, { id: id, result: result })
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,34 +1,34 @@
1
1
  # frozen_string_literal: true
2
+ require 'football/butler/apifootball/teams'
3
+ require 'football/butler/football_data/teams'
4
+ require 'football/butler/api_football/teams'
2
5
 
3
6
  module Football
4
7
  module Butler
5
8
  class Teams < Base
6
- PATH = :teams
7
9
 
8
- ## TEAM
9
- # v2/teams/{id}
10
- # returns team object directly as a hash
11
- def self.by_id(id:)
12
- path = "#{PATH}/#{id}"
13
- Api.get(path: path)
14
- end
10
+ class << self
11
+ ## TEAM
12
+ def by_id(id:)
13
+ api_switch_method(__method__, { id: id })
14
+ end
15
15
 
16
- ## COMPETITION
17
- #
18
- # season={YEAR}
19
- # stage={STAGE}
20
- #
21
- # v2/competitions/{id}/teams
22
- def self.by_competition(id:, result: PATH, filters: {})
23
- path = "#{Competitions::PATH}/#{id}/#{PATH}"
24
- Api.get(path: path, result: result, filters: filters)
25
- end
16
+ def by_name(name:)
17
+ api_switch_method(__method__, { name: name })
18
+ end
19
+
20
+ def by_country_name(name:)
21
+ api_switch_method(__method__, { name: name })
22
+ end
23
+
24
+ ## COMPETITION
25
+ def by_competition(id:, result: api_switch_result, filters: {})
26
+ api_switch_method(__method__, { id: id, result: result, filters: filters })
27
+ end
26
28
 
27
- # v2/competitions/{id}/teams?year={year}
28
- def self.by_competition_and_year(id:, year:, result: PATH, filters: {})
29
- path = "#{Competitions::PATH}/#{id}/#{PATH}"
30
- filters.merge!({ year: year })
31
- Api.get(path: path, result: result, filters: filters)
29
+ def by_competition_and_year(id:, year:, result: api_switch_result, filters: {})
30
+ api_switch_method(__method__, { id: id, year: year, result: result, filters: filters })
31
+ end
32
32
  end
33
33
  end
34
34
  end