fantasydata 0.0.2 → 0.2.0

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 (33) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +32 -8
  3. data/lib/fantasydata.rb +12 -0
  4. data/lib/fantasydata/api/box_score.rb +11 -6
  5. data/lib/fantasydata/api/league_leaders.rb +18 -0
  6. data/lib/fantasydata/api/score.rb +18 -0
  7. data/lib/fantasydata/box_score.rb +87 -0
  8. data/lib/fantasydata/boxscore/kicking_stat.rb +13 -0
  9. data/lib/fantasydata/boxscore/passing_stat.rb +16 -0
  10. data/lib/fantasydata/boxscore/player_defense_stat.rb +15 -0
  11. data/lib/fantasydata/boxscore/punting_stat.rb +12 -0
  12. data/lib/fantasydata/boxscore/receiving_stat.rb +15 -0
  13. data/lib/fantasydata/boxscore/return_stat.rb +16 -0
  14. data/lib/fantasydata/boxscore/rushing_stat.rb +14 -0
  15. data/lib/fantasydata/boxscore/score.rb +24 -0
  16. data/lib/fantasydata/boxscore/scoring_play.rb +11 -0
  17. data/lib/fantasydata/boxscore/team_defense_stat.rb +30 -0
  18. data/lib/fantasydata/client.rb +4 -0
  19. data/lib/fantasydata/score.rb +22 -0
  20. data/lib/fantasydata/version.rb +1 -1
  21. data/spec/fantasydata/api/box_score_spec.rb +188 -2
  22. data/spec/fantasydata/api/league_leaders_spec.rb +50 -0
  23. data/spec/fantasydata/api/scores_spec.rb +53 -0
  24. data/spec/fixtures/box_score/active.json +1 -0
  25. data/spec/fixtures/box_score/by_team.json +1 -0
  26. data/spec/fixtures/box_score/by_week.json +1 -0
  27. data/spec/fixtures/box_score/delta.json +1 -0
  28. data/spec/fixtures/box_score/delta_current.json +1 -0
  29. data/spec/fixtures/league_leaders/by_season.json +1 -0
  30. data/spec/fixtures/league_leaders/by_week.json +1 -0
  31. data/spec/fixtures/scores/by_season.json +1 -0
  32. data/spec/fixtures/scores/by_week.json +1 -0
  33. metadata +38 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 068bbd920761d11f6074947e253393d8913ebf42
4
- data.tar.gz: 53bf5b17a32c7eb90e955fc048974914abc33fd4
3
+ metadata.gz: 62dc781a935f0f3686b8fc61490c3f52daa1a08e
4
+ data.tar.gz: 46af121c0ddb86c3251798943fa25f2a8b931331
5
5
  SHA512:
6
- metadata.gz: 99a0b95194675a4405e969515ae0d9188383511d49eba1e3bd79b0005ade74ad89d79dd4105acaa8ed3091306db329843d794b2ae98619844551081824dd4399
7
- data.tar.gz: 33a612732f744ced12478815941473ef7188c0e49605d2c0e7a970c0526df0966818debba217be4601e024cffdc52c122d67550392f0721e20c55392ca16a93f
6
+ metadata.gz: ab3b260d4eef0efe7b711bf73543f82e5b38722653c534dcda9c5f0624c05f84238324ce9842fcf0ff4198e7329f0578ad11c0697b1bdd9378e7d1bffde7b0a4
7
+ data.tar.gz: 918a5f751bf8521bda96f867762f81e654afabbaffbe768b9ede34f1aacf01f670bc3edebf614e4bc4fd38478b4fec5143105fac3175df7fcdc493ea2c9015b4
data/README.md CHANGED
@@ -1,17 +1,22 @@
1
1
  # Fantasydata
2
2
 
3
- Check https://github.com/Drosty/fantasydata/wiki/Checklist for status on completed and incomplete endpoints.
3
+ [![Gem Version](https://badge.fury.io/rb/fantasydata.svg)](http://badge.fury.io/rb/fantasydata)[![Build Status](https://travis-ci.org/Drosty/fantasydata.svg?branch=master)](https://travis-ci.org/Drosty/fantasydata)[![Code Climate](https://codeclimate.com/github/Drosty/fantasydata/badges/gpa.svg)](https://codeclimate.com/github/Drosty/fantasydata)[![Test Coverage](https://codeclimate.com/github/Drosty/fantasydata/badges/coverage.svg)](https://codeclimate.com/github/Drosty/fantasydata/coverage)
4
4
 
5
- [![Build Status](https://travis-ci.org/Drosty/fantasydata.svg?branch=master)](https://travis-ci.org/Drosty/fantasydata)[![Code Climate](https://codeclimate.com/github/Drosty/fantasydata/badges/gpa.svg)](https://codeclimate.com/github/Drosty/fantasydata)[![Test Coverage](https://codeclimate.com/github/Drosty/fantasydata/badges/coverage.svg)](https://codeclimate.com/github/Drosty/fantasydata/coverage)
6
5
 
7
-
8
- A Ruby interface to the Fantasy Data API. The Fantasy Data API delivery historical and up to the second NFL, NBA and MLB data. This gem currently only supports the NFL Data but could be expanded to include the others as well. Details about the API can be found here: https://developer.fantasydata.com/documentation
9
-
10
- ## Inspiration
11
- I relied heavily on the [Echowrap](https://github.com/timcase/echowrap) gem to follow best practices around the structure of the gem, tests and documentation.
6
+ A Ruby interface to the Fantasy Data API. The Fantasy Data API delivery historical and up to the second NFL, NBA and MLB data. This gem currently only supports the NFL Data but could be expanded to include the others as well. Details about the API can be found here: [https://developer.fantasydata.com/documentation](https://developer.fantasydata.com/documentation). For a Implementation guide check out this page: [http://fantasydata.com/resources/implementation-guide.aspx](http://fantasydata.com/resources/implementation-guide.aspx).
12
7
 
13
8
  ## Supported Rubies
14
9
 
10
+ The following Ruby versions are tested in [Travis CI](https://travis-ci.org/Drosty/fantasydata):
11
+ * 2.2.2
12
+ * 2.2.0
13
+ * 2.1.5
14
+ * 2.0.0
15
+ * 1.9.3
16
+ * jruby-19mode
17
+ * rbx-18mode
18
+ * rbx-19mode
19
+
15
20
  ## Gem Dependencies
16
21
 
17
22
  Installing this gem also installs the following gems:
@@ -35,7 +40,22 @@ Or install it yourself as:
35
40
 
36
41
  ## Usage
37
42
 
38
- TODO: Write usage instructions here
43
+ Go to [Fantasy Data](http://www.fantasydata.com) and sign up for an account to get an API Key.
44
+
45
+ Then copy and paste in your API keys:
46
+
47
+ ```ruby
48
+ Fantasydata.configure do |config|
49
+ config.api_key = 'YOUR_API_KEY'
50
+ end
51
+ ```
52
+ If you are using Fantasydata with a Rails application then a good location for the key would be to create an initializer, for example you could place the above code in /config/initializers/fantasydata.rb.
53
+
54
+ You can now use Fantasydata like this:
55
+
56
+ ```ruby
57
+ Fantasydata.current_week
58
+ ```
39
59
 
40
60
  ## Contributing
41
61
 
@@ -44,3 +64,7 @@ TODO: Write usage instructions here
44
64
  3. Commit your changes (`git commit -am 'Added some feature'`)
45
65
  4. Push to the branch (`git push origin my-new-feature`)
46
66
  5. Create new Pull Request
67
+
68
+ ## Inspiration
69
+
70
+ This gem relied heavily on the [Echowrap](https://github.com/timcase/echowrap) gem to follow best practices around the structure of the gem, tests and documentation.
@@ -1,6 +1,17 @@
1
1
  require "fantasydata/version"
2
2
  require 'fantasydata/client'
3
3
  require 'fantasydata/configurable'
4
+ require 'fantasydata/box_score'
5
+ require 'fantasydata/boxscore/kicking_stat'
6
+ require 'fantasydata/boxscore/passing_stat'
7
+ require 'fantasydata/boxscore/player_defense_stat'
8
+ require 'fantasydata/boxscore/punting_stat'
9
+ require 'fantasydata/boxscore/return_stat'
10
+ require 'fantasydata/boxscore/receiving_stat'
11
+ require 'fantasydata/boxscore/rushing_stat'
12
+ require 'fantasydata/boxscore/score'
13
+ require 'fantasydata/boxscore/scoring_play'
14
+ require 'fantasydata/boxscore/team_defense_stat'
4
15
  require 'fantasydata/bye_week'
5
16
  require 'fantasydata/fantasy_player_adp'
6
17
  require 'fantasydata/daily_fantasy_player'
@@ -14,6 +25,7 @@ require 'fantasydata/game_stat'
14
25
  require 'fantasydata/scoring_detail'
15
26
  require 'fantasydata/schedule'
16
27
  require 'fantasydata/team_detail'
28
+ require 'fantasydata/score'
17
29
  require 'fantasydata/stadium'
18
30
  require 'fantasydata/standings'
19
31
  require 'fantasydata/timeline'
@@ -15,9 +15,10 @@ module Fantasydata
15
15
  # @param season [String] Year of the season and the season type. If no season type is provided, then the default is regular season Examples: 2015REG, 2015PRE, 2015POST, 2015
16
16
  # @param week [Integer] Week of the season. Valid values are as follows: Preseason 0 to 4, Regular Season 1 to 17, Postseason 1 to 4
17
17
  # @param hometeam [String] Abbreviation of the home team. Example: WAS
18
- # @example box_score_individual_game
19
- # Fantasydata.box_score_individual_game('2015REG', 15, 'MIN')
20
- def box_score_individual_game(season, week, hometeam)
18
+ # @example box_score_by_team
19
+ # Fantasydata.box_score_by_team('2015REG', 15, 'MIN')
20
+ def box_score_by_team(season, week, home_team)
21
+ object_from_response(Fantasydata::BoxScore, :get, "/nfl/v2/JSON/BoxScore/#{season}/#{week}/#{home_team}")
21
22
  end
22
23
 
23
24
 
@@ -30,9 +31,10 @@ module Fantasydata
30
31
  # @return [Array<Fantasydata::BoxScore>]
31
32
  # @param season [String] Year of the season and the season type. If no season type is provided, then the default is regular season Examples: 2015REG, 2015PRE, 2015POST, 2015
32
33
  # @param week [Integer] Week of the season. Valid values are as follows: Preseason 0 to 4, Regular Season 1 to 17, Postseason 1 to 4
33
- # @example box_scores_week
34
- # Fantasydata.box_scores_week('2015REG', 15)
35
- def box_scores_week(season, week)
34
+ # @example box_scores_by_week
35
+ # Fantasydata.box_scores_by_week('2015REG', 15)
36
+ def box_scores_by_week(season, week)
37
+ objects_from_response(Fantasydata::BoxScore, :get, "/nfl/v2/JSON/BoxScores/#{season}/#{week}")
36
38
  end
37
39
 
38
40
  # This method returns box scores for all games that are either in-progress or have been updated within the last 30 minutes.
@@ -45,6 +47,7 @@ module Fantasydata
45
47
  # @example box_scores_active
46
48
  # Fantasydata.box_scores_active
47
49
  def box_scores_active
50
+ objects_from_response(Fantasydata::BoxScore, :get, "/nfl/v2/JSON/ActiveBoxScores")
48
51
  end
49
52
 
50
53
  # This method returns all box scores for a given season and week, but only returns player stats that have changed in the last X minutes.
@@ -60,6 +63,7 @@ module Fantasydata
60
63
  # @example box_scores_delta
61
64
  # Fantasydata.box_scores_delta('2014REG', 1, 5)
62
65
  def box_scores_delta(season, week, minutes)
66
+ objects_from_response(Fantasydata::BoxScore, :get, "/nfl/v2/JSON/BoxScoresDelta/#{season}/#{week}/#{minutes}")
63
67
  end
64
68
 
65
69
  # This method returns all box scores for the current week, but only returns player stats that have changed in the last X minutes.
@@ -73,6 +77,7 @@ module Fantasydata
73
77
  # @example box_scores_delta_current_week
74
78
  # Fantasydata.box_scores_delta_current_week(5)
75
79
  def box_scores_delta_current_week(minutes)
80
+ objects_from_response(Fantasydata::BoxScore, :get, "/nfl/v2/JSON/RecentlyUpdatedBoxScores/#{minutes}")
76
81
  end
77
82
 
78
83
  #
@@ -0,0 +1,18 @@
1
+ require 'fantasydata/api/utils'
2
+
3
+ module Fantasydata
4
+ module API
5
+ module LeagueLeaders
6
+ include Fantasydata::API::Utils
7
+
8
+ def league_leaders_by_season(year, position, stat_column)
9
+ objects_from_response(Fantasydata::PlayerSeasonStat, :get, "/nfl/v2/JSON/SeasonLeagueLeaders/#{year}/#{position.upcase}/#{stat_column}")
10
+ end
11
+
12
+ def league_leaders_by_week(year, week, position, stat_column)
13
+ objects_from_response(Fantasydata::PlayerGameStat, :get, "/nfl/v2/JSON/GameLeagueLeaders/#{year}/#{week}/#{position.upcase}/#{stat_column}")
14
+ end
15
+
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ require 'fantasydata/api/utils'
2
+
3
+ module Fantasydata
4
+ module API
5
+ module Score
6
+ include Fantasydata::API::Utils
7
+
8
+ def scores_by_season year
9
+ objects_from_response(Fantasydata::Score, :get, "/nfl/v2/JSON/Scores/#{year}")
10
+ end
11
+
12
+ def scores_by_week year, week
13
+ objects_from_response(Fantasydata::Score, :get, "/nfl/v2/JSON/ScoresByWeek/#{year}/#{week}")
14
+ end
15
+
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,87 @@
1
+ require 'fantasydata/base'
2
+
3
+ module Fantasydata
4
+ class BoxScore < Fantasydata::Base
5
+
6
+ def away_defense
7
+ @away_defense ||= map_collection(Fantasydata::Boxscore::PlayerDefenseStat, :away_defense)
8
+ end
9
+
10
+ def away_fantasy_defense
11
+ @away_fantasy_defense ||= Fantasydata::Boxscore::TeamDefenseStat.new(@attrs[:away_fantasy_defense])
12
+ end
13
+
14
+ def away_kick_punt_returns
15
+ @away_kick_punt_returns ||= map_collection(Fantasydata::Boxscore::ReturnStat, :away_kick_punt_returns)
16
+ end
17
+
18
+ def away_kicking
19
+ @away_kicking ||= map_collection(Fantasydata::Boxscore::KickingStat, :away_kicking)
20
+ end
21
+
22
+ def away_passing
23
+ @away_passing ||= map_collection(Fantasydata::Boxscore::PassingStat, :away_passing)
24
+ end
25
+
26
+ def away_punting
27
+ @away_punting ||= map_collection(Fantasydata::Boxscore::PuntingStat, :away_punting)
28
+ end
29
+
30
+ def away_receiving
31
+ @away_receiving ||= map_collection(Fantasydata::Boxscore::ReceivingStat, :away_receiving)
32
+ end
33
+
34
+ def away_rushing
35
+ @away_rushing ||= map_collection(Fantasydata::Boxscore::RushingStat, :away_rushing)
36
+ end
37
+
38
+ def game
39
+ @game ||= Fantasydata::GameStat.new(@attrs[:game])
40
+ end
41
+
42
+ def home_defense
43
+ @home_defense ||= map_collection(Fantasydata::Boxscore::PlayerDefenseStat, :home_defense)
44
+ end
45
+
46
+ def home_fantasy_defense
47
+ @home_fantasy_defense ||= Fantasydata::Boxscore::TeamDefenseStat.new(@attrs[:home_fantasy_defense])
48
+ end
49
+
50
+ def home_kick_punt_returns
51
+ @home_kick_punt_returns ||= map_collection(Fantasydata::Boxscore::ReturnStat, :home_kick_punt_returns)
52
+ end
53
+
54
+ def home_kicking
55
+ @home_kicking ||= map_collection(Fantasydata::Boxscore::KickingStat, :home_kicking)
56
+ end
57
+
58
+ def home_passing
59
+ @home_passing ||= map_collection(Fantasydata::Boxscore::PassingStat, :home_passing)
60
+ end
61
+
62
+ def home_punting
63
+ @home_punting ||= map_collection(Fantasydata::Boxscore::PuntingStat, :home_punting)
64
+ end
65
+
66
+ def home_receiving
67
+ @home_receiving ||= map_collection(Fantasydata::Boxscore::ReceivingStat, :home_receiving)
68
+ end
69
+
70
+ def home_rushing
71
+ @home_rushing ||= map_collection(Fantasydata::Boxscore::RushingStat, :home_rushing)
72
+ end
73
+
74
+ def score
75
+ @score ||= Fantasydata::Boxscore::Score.new(@attrs[:score])
76
+ end
77
+
78
+ def scoring_details
79
+ @scoring_details ||= map_collection(Fantasydata::ScoringDetail, :scoring_details)
80
+ end
81
+
82
+ def scoring_plays
83
+ @scoring_plays ||= map_collection(Fantasydata::Boxscore::ScoringPlay, :scoring_plays)
84
+ end
85
+
86
+ end
87
+ end
@@ -0,0 +1,13 @@
1
+ require 'fantasydata/base'
2
+
3
+ module Fantasydata
4
+ module Boxscore
5
+ class KickingStat < Fantasydata::Base
6
+ attr_reader :player_game_id, :player_id, :short_name, :name, :team,
7
+ :number, :position, :position_category, :fantasy_position,
8
+ :fantasy_points, :updated, :extra_points_attempted,
9
+ :extra_points_made, :field_goal_percentage,
10
+ :field_goals_attempted, :field_goals_longest_made, :field_goals_made
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,16 @@
1
+ require 'fantasydata/base'
2
+
3
+ module Fantasydata
4
+ module Boxscore
5
+ class PassingStat < Fantasydata::Base
6
+ attr_reader :player_game_id, :player_id, :short_name, :name, :team,
7
+ :number, :position, :position_category, :fantasy_position,
8
+ :fantasy_points, :updated, :passing_attempts,
9
+ :passing_completion_percentage, :passing_completions,
10
+ :passing_interceptions, :passing_long, :passing_rating,
11
+ :passing_sack_yards, :passing_sacks, :passing_touchdowns,
12
+ :passing_yards, :passing_yards_per_attempt,
13
+ :passing_yards_per_completion, :two_point_conversion_passes
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ require 'fantasydata/base'
2
+
3
+ module Fantasydata
4
+ module Boxscore
5
+ class PlayerDefenseStat < Fantasydata::Base
6
+ attr_reader :player_game_id, :player_id, :short_name, :name, :team,
7
+ :number, :position, :position_category, :fantasy_position,
8
+ :fantasy_points, :updated, :assisted_tackles,
9
+ :fumble_return_touchdowns, :fumbles_forced, :fumbles_recovered,
10
+ :interception_return_touchdowns, :interception_return_yards,
11
+ :interceptions, :passes_defended, :quarterback_hits, :sack_yards,
12
+ :sacks, :solo_tackles, :tackles, :tackles_for_loss
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ require 'fantasydata/base'
2
+
3
+ module Fantasydata
4
+ module Boxscore
5
+ class PuntingStat < Fantasydata::Base
6
+ attr_reader :player_game_id, :player_id, :short_name, :name, :team,
7
+ :number, :position, :position_category, :fantasy_position,
8
+ :fantasy_points, :updated, :punt_average, :punt_inside20,
9
+ :punt_touchbacks, :punt_yards, :punts
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,15 @@
1
+ require 'fantasydata/base'
2
+
3
+ module Fantasydata
4
+ module Boxscore
5
+ class ReceivingStat < Fantasydata::Base
6
+ attr_reader :player_game_id, :player_id, :short_name, :name, :team,
7
+ :number, :position, :position_category, :fantasy_position,
8
+ :fantasy_points, :updated, :fumbles_lost, :receiving_long,
9
+ :receiving_targets, :receiving_touchdowns, :receiving_yards,
10
+ :receiving_yards_per_reception, :receiving_yards_per_target,
11
+ :reception_percentage, :receptions, :two_point_conversion_receptions
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ require 'fantasydata/base'
2
+
3
+ module Fantasydata
4
+ module Boxscore
5
+ class ReturnStat < Fantasydata::Base
6
+ attr_reader :player_game_id, :player_id, :short_name, :name, :team,
7
+ :number, :position, :position_category, :fantasy_position,
8
+ :fantasy_points, :updated, :kick_return_long,
9
+ :kick_return_touchdowns, :kick_return_yards,
10
+ :kick_return_yards_per_attempt, :kick_returns,
11
+ :punt_return_long, :punt_return_touchdowns,
12
+ :punt_return_yards, :punt_return_yards_per_attempt, :punt_returns
13
+
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ require 'fantasydata/base'
2
+
3
+ module Fantasydata
4
+ module Boxscore
5
+ class RushingStat < Fantasydata::Base
6
+ attr_reader :player_game_id, :player_id, :short_name, :name, :team,
7
+ :number, :position, :position_category, :fantasy_position,
8
+ :fantasy_points, :updated, :fumbles_lost, :rushing_attempts,
9
+ :rushing_long, :rushing_touchdowns, :rushing_yards,
10
+ :rushing_yards_per_attempt, :two_point_conversion_runs
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,24 @@
1
+ require 'fantasydata/base'
2
+
3
+ module Fantasydata
4
+ module Boxscore
5
+ class Score < Fantasydata::Base
6
+ attr_reader :stadium_details, :game_key, :season_type, :season, :week,
7
+ :date, :away_team, :home_team, :away_score, :home_score,
8
+ :channel, :point_spread, :over_under, :quarter, :time_remaining,
9
+ :possession, :down, :distance, :yard_line, :yard_line_territory,
10
+ :red_zone, :away_score_quarter1, :away_score_quarter2,
11
+ :away_score_quarter3, :away_score_quarter4, :away_score_overtime,
12
+ :home_score_quarter1, :home_score_quarter2, :home_score_quarter3,
13
+ :home_score_quarter4, :home_score_overtime, :has_started,
14
+ :is_in_progress, :is_over, :has1st_quarter_started,
15
+ :has2nd_quarter_started, :has3rd_quarter_started,
16
+ :has4th_quarter_started, :is_overtime, :down_and_distance,
17
+ :quarter_description, :stadium_id, :last_updated
18
+
19
+ def stadium
20
+ @stadium ||= Fantasydata::Stadium.new(@attrs[:stadium_details])
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,11 @@
1
+ require 'fantasydata/base'
2
+
3
+ module Fantasydata
4
+ module Boxscore
5
+ class ScoringPlay < Fantasydata::Base
6
+ attr_reader :game_key, :season_type, :scoring_play_id, :season,
7
+ :week, :away_team, :home_team, :date, :sequence, :team,
8
+ :quarter, :time_remaining, :play_description, :away_score, :home_score
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,30 @@
1
+ require 'fantasydata/base'
2
+
3
+ module Fantasydata
4
+ module Boxscore
5
+ class TeamDefenseStat < Fantasydata::Base
6
+ attr_reader :scoring_details, :game_key, :season_type, :season, :week,
7
+ :date, :team, :opponent, :points_allowed, :touchdowns_scored,
8
+ :solo_tackles, :assisted_tackles, :sacks, :sack_yards,
9
+ :passes_defended, :fumbles_forced, :fumbles_recovered,
10
+ :fumble_return_yards, :fumble_return_touchdowns, :interceptions,
11
+ :interception_return_yards, :interception_return_touchdowns,
12
+ :blocked_kicks, :safeties, :punt_returns, :punt_return_yards,
13
+ :punt_return_touchdowns, :punt_return_long, :kick_returns,
14
+ :kick_return_yards, :kick_return_touchdowns, :kick_return_long,
15
+ :blocked_kick_return_touchdowns, :field_goal_return_touchdowns,
16
+ :fantasy_points_allowed, :quarterback_fantasy_points_allowed,
17
+ :runningback_fantasy_points_allowed,
18
+ :wide_receiver_fantasy_points_allowed,
19
+ :tight_end_fantasy_points_allowed, :kicker_fantasy_points_allowed,
20
+ :blocked_kick_return_yards, :field_goal_return_yards,
21
+ :quarterback_hits, :tackles_for_loss, :defensive_touchdowns,
22
+ :special_teams_touchdowns, :is_game_over, :fantasy_points,
23
+ :stadium, :temperature, :humidity, :wind_speed, :third_down_attempts,
24
+ :third_down_conversions, :fourth_down_attempts,
25
+ :fourth_down_conversions, :points_allowed_by_defense_special_teams,
26
+ :fan_duel_salary, :draft_kings_salary, :fantasy_data_salary,
27
+ :victiv_salary
28
+ end
29
+ end
30
+ end