ahl_scraper 0.2.0 → 0.3.2

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.
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