ahl_scraper 0.2.0 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/CHANGELOG.md +70 -0
  4. data/Gemfile +0 -19
  5. data/Gemfile.lock +46 -41
  6. data/ahl_scraper.gemspec +15 -1
  7. data/lib/ahl_scraper/fetchers/game_data_fetcher.rb +1 -1
  8. data/lib/ahl_scraper/fetchers/player_data_fetcher.rb +1 -1
  9. data/lib/ahl_scraper/fetchers/player_games/data_fetcher.rb +1 -1
  10. data/lib/ahl_scraper/fetchers/scoreboards/data_fetcher.rb +37 -0
  11. data/lib/ahl_scraper/fetchers/season_type_fetcher.rb +1 -2
  12. data/lib/ahl_scraper/fixed_games/1001050.json +18 -18
  13. data/lib/ahl_scraper/fixed_games/1003351.json +2728 -0
  14. data/lib/ahl_scraper/fixed_games/1018774.json +4 -4
  15. data/lib/ahl_scraper/fixed_games/1020527.json +8 -8
  16. data/lib/ahl_scraper/helpers/ice_time_helper.rb +3 -1
  17. data/lib/ahl_scraper/helpers/period_time_helper.rb +6 -2
  18. data/lib/ahl_scraper/resources/game.rb +7 -5
  19. data/lib/ahl_scraper/resources/game_list_item.rb +13 -13
  20. data/lib/ahl_scraper/resources/games/goalie.rb +1 -1
  21. data/lib/ahl_scraper/resources/games/info.rb +1 -1
  22. data/lib/ahl_scraper/resources/games/penalty.rb +2 -2
  23. data/lib/ahl_scraper/resources/games/penalty_shot.rb +0 -5
  24. data/lib/ahl_scraper/resources/games/team.rb +2 -2
  25. data/lib/ahl_scraper/resources/goalie_game_list_item.rb +2 -1
  26. data/lib/ahl_scraper/resources/player.rb +2 -2
  27. data/lib/ahl_scraper/resources/playoff_bracket.rb +5 -5
  28. data/lib/ahl_scraper/resources/playoff_brackets/round.rb +1 -1
  29. data/lib/ahl_scraper/resources/playoff_brackets/series.rb +60 -20
  30. data/lib/ahl_scraper/resources/roster_player.rb +1 -1
  31. data/lib/ahl_scraper/resources/scoreboard.rb +147 -0
  32. data/lib/ahl_scraper/resources/scoreboards/team.rb +67 -0
  33. data/lib/ahl_scraper/resources/season.rb +13 -8
  34. data/lib/ahl_scraper/resources/season_list_item.rb +2 -2
  35. data/lib/ahl_scraper/resources/seasons/team.rb +6 -5
  36. data/lib/ahl_scraper/resources/skater_game_list_item.rb +2 -2
  37. data/lib/ahl_scraper/resources/team_game_list_item.rb +2 -3
  38. data/lib/ahl_scraper/resources/team_list_item.rb +1 -1
  39. data/lib/ahl_scraper/scoreboards.rb +15 -0
  40. data/lib/ahl_scraper/services/games/create_skaters_service.rb +1 -1
  41. data/lib/ahl_scraper/services/games/on_ice_statlines_service.rb +1 -1
  42. data/lib/ahl_scraper/services/games/penalty_shots_service.rb +1 -6
  43. data/lib/ahl_scraper/services/games/scoring_statlines_service.rb +29 -25
  44. data/lib/ahl_scraper/services/games/team_on_ice_goals_service.rb +1 -1
  45. data/lib/ahl_scraper/team_games.rb +3 -1
  46. data/lib/ahl_scraper/version.rb +1 -1
  47. data/lib/ahl_scraper.rb +2 -0
  48. metadata +178 -5
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AhlScraper
4
+ module Scoreboards
5
+ class Team < Resource
6
+ def id
7
+ @id ||= @raw_data[:id].to_i
8
+ end
9
+
10
+ def abbreviation
11
+ @abbreviation ||= @raw_data[:abbreviation]
12
+ end
13
+
14
+ def city
15
+ @city ||= @raw_data[:city]
16
+ end
17
+
18
+ def name
19
+ @name ||= @raw_data[:name]
20
+ end
21
+
22
+ def full_name
23
+ @full_name ||= @raw_data[:full_name]
24
+ end
25
+
26
+ def division
27
+ @division ||= @raw_data[:division]
28
+ end
29
+
30
+ def score
31
+ @score ||= @raw_data[:score].to_i
32
+ end
33
+
34
+ def audio_url
35
+ @audio_url ||= @raw_data[:audio_url]
36
+ end
37
+
38
+ def video_url
39
+ @video_url ||= @raw_data[:video_url]
40
+ end
41
+
42
+ def webcasts_url
43
+ @webcasts_url ||= @raw_data[:webcasts_url]
44
+ end
45
+
46
+ def wins
47
+ @wins ||= @raw_data[:wins].to_i
48
+ end
49
+
50
+ def regulation_losses
51
+ @regulation_losses ||= @raw_data[:regulation_losses].to_i
52
+ end
53
+
54
+ def ot_losses
55
+ @ot_losses ||= @raw_data[:ot_losses].to_i
56
+ end
57
+
58
+ def shootout_losses
59
+ @shootout_losses ||= @raw_data[:shootout_losses].to_i
60
+ end
61
+
62
+ def logo
63
+ @logo ||= @raw_data[:logo]
64
+ end
65
+ end
66
+ end
67
+ end
@@ -4,7 +4,8 @@ module AhlScraper
4
4
  class Season < Resource
5
5
  attr_reader :id, :name, :season_type
6
6
 
7
- def initialize(raw_data)
7
+ def initialize(raw_data, opts = {})
8
+ super(raw_data, opts)
8
9
  @id = raw_data[:id].to_i
9
10
  @name = raw_data[:name]
10
11
  @season_type = set_season_type
@@ -15,13 +16,15 @@ module AhlScraper
15
16
  @abbreviation ||=
16
17
  case season_type
17
18
  when :regular
18
- "#{start_year.to_s[-2..-1]}-#{end_year.to_s[-2..-1]}"
19
+ "#{start_year.to_s[-2..]}-#{end_year.to_s[-2..]}"
19
20
  when :playoffs
20
- "#{start_year.to_s[-2..-1]}PO"
21
+ "#{start_year.to_s[-2..]}PO"
21
22
  when :all_star_game
22
- "#{start_year.to_s[-2..-1]}ASG"
23
+ "#{start_year.to_s[-2..]}ASG"
23
24
  when :exhibition
24
- "#{start_year.to_s[-2..-1]}-#{end_year.to_s[-2..-1]}EX"
25
+ "#{start_year.to_s[-2..]}-#{end_year.to_s[-2..]}EX"
26
+ when :preseason
27
+ "#{start_year.to_s[-2..]}PS"
25
28
  end
26
29
  end
27
30
 
@@ -29,8 +32,8 @@ module AhlScraper
29
32
  @start_year ||=
30
33
  case season_type
31
34
  when :regular, :exhibition
32
- name[/(.*?)\-/].to_i
33
- when :playoffs, :all_star_game
35
+ name[/(.*?)-/].to_i
36
+ when :playoffs, :all_star_game, :preseason
34
37
  name[/(.*?) /].to_i
35
38
  end
36
39
  end
@@ -48,7 +51,7 @@ module AhlScraper
48
51
  case season_type
49
52
  when :regular, :exhibition
50
53
  start_year + 1
51
- when :playoffs, :all_star_game
54
+ when :playoffs, :all_star_game, :preseason
52
55
  start_year
53
56
  end
54
57
  end
@@ -73,6 +76,8 @@ module AhlScraper
73
76
  :playoffs
74
77
  when /Regular/
75
78
  :regular
79
+ when /Preseason/
80
+ :preseason
76
81
  end
77
82
  end
78
83
 
@@ -2,8 +2,8 @@
2
2
 
3
3
  module AhlScraper
4
4
  class SeasonListItem < Resource
5
- def initialize(raw_data)
6
- @raw_data = raw_data
5
+ def initialize(raw_data, opts = {})
6
+ super(raw_data, opts)
7
7
  end
8
8
 
9
9
  def id
@@ -28,8 +28,8 @@ module AhlScraper
28
28
  "henderson-silver-knights" => { city: "Henderson", name: "Silver Knights" },
29
29
  }.freeze
30
30
 
31
- def initialize(raw_data, division)
32
- @raw_data = raw_data
31
+ def initialize(raw_data, division, opts = {})
32
+ super(raw_data, opts)
33
33
  @division = division
34
34
  end
35
35
 
@@ -42,7 +42,8 @@ module AhlScraper
42
42
  end
43
43
 
44
44
  def abbreviation
45
- @abbreviation ||= EXCEPTIONS[parameterized_name]&.dig(:abbreviation) || @raw_data.dig(:row, :team_code)&.delete_prefix("y -")&.delete_prefix("x -")&.delete_prefix("xy -")&.strip
45
+ @abbreviation ||= EXCEPTIONS[parameterized_name]&.dig(:abbreviation) || @raw_data.dig(:row,
46
+ :team_code)&.delete_prefix("y -")&.delete_prefix("x -")&.delete_prefix("xy -")&.strip
46
47
  end
47
48
 
48
49
  def parameterized_name
@@ -50,11 +51,11 @@ module AhlScraper
50
51
  end
51
52
 
52
53
  def city
53
- @city ||= full_name.split.length > 2 ? exception_split_object&.dig(:city) : full_name.split[0]
54
+ @city ||= full_name&.split.length > 2 ? exception_split_object&.dig(:city) : full_name&.split[0]
54
55
  end
55
56
 
56
57
  def name
57
- @name ||= full_name.split.length > 2 ? exception_split_object&.dig(:name) : full_name.split[1]
58
+ @name ||= full_name&.split.length > 2 ? exception_split_object&.dig(:name) : full_name&.split[1]
58
59
  end
59
60
 
60
61
  def game_file_city
@@ -2,8 +2,8 @@
2
2
 
3
3
  module AhlScraper
4
4
  class SkaterGameListItem < Resource
5
- def initialize(raw_data)
6
- @raw_data = raw_data
5
+ def initialize(raw_data, opts = {})
6
+ super(raw_data, opts)
7
7
  end
8
8
 
9
9
  def game_id
@@ -2,9 +2,8 @@
2
2
 
3
3
  module AhlScraper
4
4
  class TeamGameListItem < Resource
5
- def initialize(raw_data, opts)
6
- @raw_data = raw_data
7
- @opts = opts
5
+ def initialize(raw_data, opts = {})
6
+ super(raw_data, opts)
8
7
  end
9
8
 
10
9
  def game_id
@@ -5,7 +5,7 @@ module AhlScraper
5
5
  attr_reader :season_id
6
6
 
7
7
  def initialize(raw_data, season_id)
8
- @raw_data = raw_data
8
+ super(raw_data, {})
9
9
  @season_id = season_id
10
10
  end
11
11
 
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ahl_scraper/fetchers/scoreboards/data_fetcher"
4
+
5
+ require "ahl_scraper/resources/scoreboards/team"
6
+
7
+ module AhlScraper
8
+ module Scoreboards
9
+ class << self
10
+ def list(start_date, end_date)
11
+ DataFetcher.new(start_date: start_date, end_date: end_date).call&.map { |game| Scoreboard.new(game) }
12
+ end
13
+ end
14
+ end
15
+ end
@@ -3,7 +3,7 @@
3
3
  module AhlScraper
4
4
  module Games
5
5
  class CreateSkatersService
6
- def initialize(skater_data, goal_data, penalty_data, shootout_data, penalty_shot_data, opts)
6
+ def initialize(skater_data, goal_data, penalty_data, shootout_data, penalty_shot_data, opts = {})
7
7
  @skater_data = skater_data
8
8
  @goal_data = goal_data
9
9
  @penalty_data = penalty_data
@@ -45,7 +45,7 @@ module AhlScraper
45
45
  on_scoring_team ? "#{skater_ids.length}v#{opposing_skater_ids.length}" : "#{opposing_skater_ids.length}v#{skater_ids.length}"
46
46
  end
47
47
 
48
- def find_goal_situation(goal, on_scoring_team)
48
+ def find_goal_situation(goal, on_scoring_team) # rubocop:disable Metrics/CyclomaticComplexity
49
49
  return "pp" if (goal[:properties][:isPowerPlay] == "1" && on_scoring_team) || (goal[:properties][:isShortHanded] == "1" && !on_scoring_team)
50
50
 
51
51
  return "sh" if goal[:properties][:isShortHanded] == "1" && on_scoring_team || (goal[:properties][:isPowerPlay] == "1" && !on_scoring_team)
@@ -17,14 +17,9 @@ module AhlScraper
17
17
 
18
18
  def ordered_penalty_shots
19
19
  @ordered_penalty_shots ||= penalty_shot_data.sort do |a, b|
20
- [a[:period][:id].to_i, convert_time(a[:time])] <=> [b[:period][:id].to_i, convert_time(b[:time])]
20
+ [a[:period][:id].to_i, IceTimeHelper.new(a[:time]).to_sec] <=> [b[:period][:id].to_i, IceTimeHelper.new(b[:time]).to_sec]
21
21
  end
22
22
  end
23
-
24
- def convert_time(game_time)
25
- time = game_time.split(":")
26
- time[0].to_i * 60 + time[1].to_i
27
- end
28
23
  end
29
24
  end
30
25
  end
@@ -17,21 +17,7 @@ module AhlScraper
17
17
  a1_id = goal[:assists][0]&.dig(:id) && scoring_statlines[goal[:assists][0]&.dig(:id).to_s] ? goal[:assists][0]&.dig(:id).to_s : false # Make sure assist exists and does not belong to goalie
18
18
  a2_id = goal[:assists][1]&.dig(:id) && scoring_statlines[goal[:assists][1]&.dig(:id).to_s] ? goal[:assists][1]&.dig(:id).to_s : false # Make sure assist exists and does not belong to goalie
19
19
 
20
- add_points(goalscorer_id, a1_id, a2_id, "as")
21
- if goal[:properties][:isPenaltyShot].to_i.positive?
22
- scoring_statlines[goalscorer_id][:goals_ps] += 1
23
- elsif extra_skater?(goal, plus_player_count, minus_player_count)
24
- add_points(goalscorer_id, a1_id, a2_id, "ex")
25
- elsif goal[:properties][:isEmptyNet].to_i.positive?
26
- add_points(goalscorer_id, a1_id, a2_id, "en")
27
- elsif goal[:properties][:isPowerPlay].to_i.positive?
28
- add_points(goalscorer_id, a1_id, a2_id, "pp")
29
- elsif goal[:properties][:isShortHanded].to_i.positive?
30
- add_points(goalscorer_id, a1_id, a2_id, "sh")
31
- elsif plus_player_count == minus_player_count
32
- add_points(goalscorer_id, a1_id, a2_id, "ev")
33
- add_points(goalscorer_id, a1_id, a2_id, "5v5") if plus_player_count == 5 && minus_player_count == 5
34
- end
20
+ add_to_statline(goal, plus_player_count, minus_player_count, goalscorer_id, a1_id, a2_id)
35
21
  end
36
22
 
37
23
  scoring_statlines
@@ -39,6 +25,24 @@ module AhlScraper
39
25
 
40
26
  private
41
27
 
28
+ def add_to_statline(goal, plus_player_count, minus_player_count, goalscorer_id, a1_id, a2_id)
29
+ add_points(goalscorer_id, a1_id, a2_id, "as")
30
+ if goal[:properties][:isPenaltyShot].to_i.positive?
31
+ scoring_statlines[goalscorer_id][:goals_ps] += 1
32
+ elsif extra_skater?(goal, plus_player_count, minus_player_count)
33
+ add_points(goalscorer_id, a1_id, a2_id, "ex")
34
+ elsif goal[:properties][:isEmptyNet].to_i.positive?
35
+ add_points(goalscorer_id, a1_id, a2_id, "en")
36
+ elsif goal[:properties][:isPowerPlay].to_i.positive?
37
+ add_points(goalscorer_id, a1_id, a2_id, "pp")
38
+ elsif goal[:properties][:isShortHanded].to_i.positive?
39
+ add_points(goalscorer_id, a1_id, a2_id, "sh")
40
+ elsif plus_player_count == minus_player_count
41
+ add_points(goalscorer_id, a1_id, a2_id, "ev")
42
+ add_points(goalscorer_id, a1_id, a2_id, "5v5") if plus_player_count == 5 && minus_player_count == 5
43
+ end
44
+ end
45
+
42
46
  def scoring_statlines
43
47
  @scoring_statlines ||= @skater_ids.map { |s_id| [s_id.to_s, blank_statline] }.to_h
44
48
  end
@@ -49,50 +53,50 @@ module AhlScraper
49
53
  a1_as: 0,
50
54
  a2_as: 0,
51
55
  points_as: 0,
52
- primary_points_as: 0,
56
+ p1_as: 0,
53
57
  goals_ps: 0,
54
- primary_points_ps: 0,
58
+ p1_ps: 0,
55
59
  goals_ev: 0,
56
60
  a1_ev: 0,
57
61
  a2_ev: 0,
58
62
  points_ev: 0,
59
- primary_points_ev: 0,
63
+ p1_ev: 0,
60
64
  goals_5v5: 0,
61
65
  a1_5v5: 0,
62
66
  a2_5v5: 0,
63
67
  points_5v5: 0,
64
- primary_points_5v5: 0,
68
+ p1_5v5: 0,
65
69
  goals_pp: 0,
66
70
  a1_pp: 0,
67
71
  a2_pp: 0,
68
72
  points_pp: 0,
69
- primary_points_pp: 0,
73
+ p1_pp: 0,
70
74
  goals_sh: 0,
71
75
  a1_sh: 0,
72
76
  a2_sh: 0,
73
77
  points_sh: 0,
74
- primary_points_sh: 0,
78
+ p1_sh: 0,
75
79
  goals_ex: 0,
76
80
  a1_ex: 0,
77
81
  a2_ex: 0,
78
82
  points_ex: 0,
79
- primary_points_ex: 0,
83
+ p1_ex: 0,
80
84
  goals_en: 0,
81
85
  a1_en: 0,
82
86
  a2_en: 0,
83
87
  points_en: 0,
84
- primary_points_en: 0,
88
+ p1_en: 0,
85
89
  }
86
90
  end
87
91
 
88
92
  def add_points(goalscorer_id, a1_id, a2_id, situation)
89
93
  if goalscorer_id
90
94
  scoring_statlines[goalscorer_id]["goals_#{situation}".to_sym] += 1
91
- scoring_statlines[goalscorer_id]["primary_points_#{situation}".to_sym] += 1
95
+ scoring_statlines[goalscorer_id]["p1_#{situation}".to_sym] += 1
92
96
  end
93
97
  if a1_id
94
98
  scoring_statlines[a1_id]["a1_#{situation}".to_sym] += 1
95
- scoring_statlines[a1_id]["primary_points_#{situation}".to_sym] += 1
99
+ scoring_statlines[a1_id]["p1_#{situation}".to_sym] += 1
96
100
  end
97
101
  scoring_statlines[a2_id]["a2_#{situation}".to_sym] += 1 if a2_id
98
102
 
@@ -70,7 +70,7 @@ module AhlScraper
70
70
  }
71
71
  end
72
72
 
73
- def goal_against(goal)
73
+ def goal_against(goal) # rubocop:disable Metrics/AbcSize
74
74
  @on_ice_statline[:ga_as] += 1
75
75
  if goal[:plus_players].length >= 3 && goal[:minus_players].length >= 3 && goal[:plus_players].length <= 6 && goal[:minus_players].length <= 6
76
76
  @on_ice_statline["ga_#{goal[:minus_players].length}v#{goal[:plus_players].length}".to_sym] += 1
@@ -8,7 +8,9 @@ module AhlScraper
8
8
 
9
9
  class << self
10
10
  def list(team_id, season_id)
11
- @season_games["#{team_id}-#{season_id}"] ||= DataFetcher.new(team_id, season_id).call&.map { |team_data| TeamGameListItem.new(team_data, { team_id: team_id }) }
11
+ @season_games["#{team_id}-#{season_id}"] ||= DataFetcher.new(team_id, season_id).call&.map do |team_data|
12
+ TeamGameListItem.new(team_data, { team_id: team_id })
13
+ end
12
14
 
13
15
  @season_games["#{team_id}-#{season_id}"]
14
16
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AhlScraper
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.2"
5
5
  end
data/lib/ahl_scraper.rb CHANGED
@@ -39,6 +39,7 @@ require "ahl_scraper/resources/goalie_game_list_item"
39
39
  require "ahl_scraper/resources/season_list_item"
40
40
  require "ahl_scraper/resources/skater_game_list_item"
41
41
  require "ahl_scraper/resources/roster_player"
42
+ require "ahl_scraper/resources/scoreboard"
42
43
  require "ahl_scraper/resources/player"
43
44
 
44
45
  require "ahl_scraper/games"
@@ -49,6 +50,7 @@ require "ahl_scraper/player_games"
49
50
  require "ahl_scraper/players"
50
51
  require "ahl_scraper/playoff_brackets"
51
52
  require "ahl_scraper/roster_players"
53
+ require "ahl_scraper/scoreboards"
52
54
 
53
55
  module AhlScraper
54
56
  class Error < StandardError; end
metadata CHANGED
@@ -1,15 +1,183 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ahl_scraper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - jefftcraig
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-07-18 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2022-03-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 2.5.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.5.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: nokogiri
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.12.4
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.12.4
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 13.0.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 13.0.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: byebug
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 11.1.3
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 11.1.3
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.13.1
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.13.1
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry-byebug
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 3.9.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 3.9.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 0.89.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.89.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: rubocop-performance
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 1.8.1
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 1.8.1
139
+ - !ruby/object:Gem::Dependency
140
+ name: solargraph
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.43.0
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 0.43.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: vcr
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 6.0.0
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 6.0.0
167
+ - !ruby/object:Gem::Dependency
168
+ name: webmock
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: 3.8.0
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: 3.8.0
13
181
  description: Allows users to gather game, season, and player data from the AHL website
14
182
  email:
15
183
  - jeffcraig35@gmail.com
@@ -41,6 +209,7 @@ files:
41
209
  - lib/ahl_scraper/fetchers/player_data_fetcher.rb
42
210
  - lib/ahl_scraper/fetchers/player_games/data_fetcher.rb
43
211
  - lib/ahl_scraper/fetchers/playoff_bracket_data_fetcher.rb
212
+ - lib/ahl_scraper/fetchers/scoreboards/data_fetcher.rb
44
213
  - lib/ahl_scraper/fetchers/season_data_fetcher.rb
45
214
  - lib/ahl_scraper/fetchers/season_end_date_fetcher.rb
46
215
  - lib/ahl_scraper/fetchers/season_game_ids_fetcher.rb
@@ -50,6 +219,7 @@ files:
50
219
  - lib/ahl_scraper/fetchers/team_games/data_fetcher.rb
51
220
  - lib/ahl_scraper/fetchers/team_roster_data_fetcher.rb
52
221
  - lib/ahl_scraper/fixed_games/1001050.json
222
+ - lib/ahl_scraper/fixed_games/1003351.json
53
223
  - lib/ahl_scraper/fixed_games/1018774.json
54
224
  - lib/ahl_scraper/fixed_games/1020527.json
55
225
  - lib/ahl_scraper/games.rb
@@ -89,6 +259,8 @@ files:
89
259
  - lib/ahl_scraper/resources/playoff_brackets/series.rb
90
260
  - lib/ahl_scraper/resources/playoff_brackets/team.rb
91
261
  - lib/ahl_scraper/resources/roster_player.rb
262
+ - lib/ahl_scraper/resources/scoreboard.rb
263
+ - lib/ahl_scraper/resources/scoreboards/team.rb
92
264
  - lib/ahl_scraper/resources/season.rb
93
265
  - lib/ahl_scraper/resources/season_list_item.rb
94
266
  - lib/ahl_scraper/resources/seasons/team.rb
@@ -96,6 +268,7 @@ files:
96
268
  - lib/ahl_scraper/resources/team_game_list_item.rb
97
269
  - lib/ahl_scraper/resources/team_list_item.rb
98
270
  - lib/ahl_scraper/roster_players.rb
271
+ - lib/ahl_scraper/scoreboards.rb
99
272
  - lib/ahl_scraper/seasons.rb
100
273
  - lib/ahl_scraper/services/games/create_skaters_service.rb
101
274
  - lib/ahl_scraper/services/games/on_ice_statlines_service.rb
@@ -125,14 +298,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
298
  requirements:
126
299
  - - ">="
127
300
  - !ruby/object:Gem::Version
128
- version: 2.3.0
301
+ version: 2.7.0
129
302
  required_rubygems_version: !ruby/object:Gem::Requirement
130
303
  requirements:
131
304
  - - ">="
132
305
  - !ruby/object:Gem::Version
133
306
  version: '0'
134
307
  requirements: []
135
- rubygems_version: 3.2.11
308
+ rubygems_version: 3.1.6
136
309
  signing_key:
137
310
  specification_version: 4
138
311
  summary: Scrape data from the AHL website