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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/CHANGELOG.md +70 -0
- data/Gemfile +0 -19
- data/Gemfile.lock +46 -41
- data/ahl_scraper.gemspec +15 -1
- data/lib/ahl_scraper/fetchers/game_data_fetcher.rb +1 -1
- data/lib/ahl_scraper/fetchers/player_data_fetcher.rb +1 -1
- data/lib/ahl_scraper/fetchers/player_games/data_fetcher.rb +1 -1
- data/lib/ahl_scraper/fetchers/scoreboards/data_fetcher.rb +37 -0
- data/lib/ahl_scraper/fetchers/season_type_fetcher.rb +1 -2
- data/lib/ahl_scraper/fixed_games/1001050.json +18 -18
- data/lib/ahl_scraper/fixed_games/1003351.json +2728 -0
- data/lib/ahl_scraper/fixed_games/1018774.json +4 -4
- data/lib/ahl_scraper/fixed_games/1020527.json +8 -8
- data/lib/ahl_scraper/helpers/ice_time_helper.rb +3 -1
- data/lib/ahl_scraper/helpers/period_time_helper.rb +6 -2
- data/lib/ahl_scraper/resources/game.rb +7 -5
- data/lib/ahl_scraper/resources/game_list_item.rb +13 -13
- data/lib/ahl_scraper/resources/games/goalie.rb +1 -1
- data/lib/ahl_scraper/resources/games/info.rb +1 -1
- data/lib/ahl_scraper/resources/games/penalty.rb +2 -2
- data/lib/ahl_scraper/resources/games/penalty_shot.rb +0 -5
- data/lib/ahl_scraper/resources/games/team.rb +2 -2
- data/lib/ahl_scraper/resources/goalie_game_list_item.rb +2 -1
- data/lib/ahl_scraper/resources/player.rb +2 -2
- data/lib/ahl_scraper/resources/playoff_bracket.rb +5 -5
- data/lib/ahl_scraper/resources/playoff_brackets/round.rb +1 -1
- data/lib/ahl_scraper/resources/playoff_brackets/series.rb +60 -20
- data/lib/ahl_scraper/resources/roster_player.rb +1 -1
- data/lib/ahl_scraper/resources/scoreboard.rb +147 -0
- data/lib/ahl_scraper/resources/scoreboards/team.rb +67 -0
- data/lib/ahl_scraper/resources/season.rb +13 -8
- data/lib/ahl_scraper/resources/season_list_item.rb +2 -2
- data/lib/ahl_scraper/resources/seasons/team.rb +6 -5
- data/lib/ahl_scraper/resources/skater_game_list_item.rb +2 -2
- data/lib/ahl_scraper/resources/team_game_list_item.rb +2 -3
- data/lib/ahl_scraper/resources/team_list_item.rb +1 -1
- data/lib/ahl_scraper/scoreboards.rb +15 -0
- data/lib/ahl_scraper/services/games/create_skaters_service.rb +1 -1
- data/lib/ahl_scraper/services/games/on_ice_statlines_service.rb +1 -1
- data/lib/ahl_scraper/services/games/penalty_shots_service.rb +1 -6
- data/lib/ahl_scraper/services/games/scoring_statlines_service.rb +29 -25
- data/lib/ahl_scraper/services/games/team_on_ice_goals_service.rb +1 -1
- data/lib/ahl_scraper/team_games.rb +3 -1
- data/lib/ahl_scraper/version.rb +1 -1
- data/lib/ahl_scraper.rb +2 -0
- 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
|
19
|
+
"#{start_year.to_s[-2..]}-#{end_year.to_s[-2..]}"
|
19
20
|
when :playoffs
|
20
|
-
"#{start_year.to_s[-2
|
21
|
+
"#{start_year.to_s[-2..]}PO"
|
21
22
|
when :all_star_game
|
22
|
-
"#{start_year.to_s[-2
|
23
|
+
"#{start_year.to_s[-2..]}ASG"
|
23
24
|
when :exhibition
|
24
|
-
"#{start_year.to_s[-2
|
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[/(.*?)
|
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
|
|
@@ -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
|
-
|
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,
|
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
|
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
|
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
|
@@ -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,
|
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
|
-
|
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
|
-
|
56
|
+
p1_as: 0,
|
53
57
|
goals_ps: 0,
|
54
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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]["
|
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]["
|
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
|
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
|
data/lib/ahl_scraper/version.rb
CHANGED
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
|
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:
|
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.
|
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.
|
308
|
+
rubygems_version: 3.1.6
|
136
309
|
signing_key:
|
137
310
|
specification_version: 4
|
138
311
|
summary: Scrape data from the AHL website
|