nfl_data 0.0.14 → 0.1.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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/.envrc +7 -0
  3. data/.gitignore +3 -3
  4. data/.rspec +1 -0
  5. data/.standard.yml +2 -0
  6. data/.travis.yml +6 -0
  7. data/CHANGELOG.md +7 -0
  8. data/Gemfile +1 -1
  9. data/README.md +94 -22
  10. data/Rakefile +5 -6
  11. data/bin/console +1 -1
  12. data/bin/setup +8 -0
  13. data/lib/nfl_data.rb +10 -19
  14. data/lib/nfl_data/api/player.rb +8 -26
  15. data/lib/nfl_data/api/schedule.rb +19 -0
  16. data/lib/nfl_data/api/statline.rb +8 -22
  17. data/lib/nfl_data/models/game.rb +5 -0
  18. data/lib/nfl_data/models/player.rb +11 -18
  19. data/lib/nfl_data/models/schedule.rb +12 -0
  20. data/lib/nfl_data/models/statline.rb +18 -19
  21. data/lib/nfl_data/my_sports_feeds/client.rb +45 -0
  22. data/lib/nfl_data/my_sports_feeds/players_feed.rb +18 -0
  23. data/lib/nfl_data/my_sports_feeds/seasonal_games_feed.rb +22 -0
  24. data/lib/nfl_data/my_sports_feeds/weekly_player_gamelogs.rb +21 -0
  25. data/lib/nfl_data/parsers/player_parser.rb +20 -93
  26. data/lib/nfl_data/parsers/schedule_parser.rb +20 -0
  27. data/lib/nfl_data/parsers/statline_parser.rb +27 -71
  28. data/lib/nfl_data/version.rb +1 -1
  29. data/nfl_data.gemspec +23 -23
  30. data/spec/api/player_spec.rb +24 -0
  31. data/spec/api/schedule_spec.rb +20 -0
  32. data/spec/api/statline_spec.rb +31 -0
  33. data/spec/models/game_spec.rb +15 -0
  34. data/spec/models/player_spec.rb +42 -0
  35. data/spec/models/schedule_spec.rb +17 -0
  36. data/spec/models/statline_spec.rb +63 -0
  37. data/spec/my_sports_feeds/client_spec.rb +17 -0
  38. data/spec/my_sports_feeds/players_feed_spec.rb +49 -0
  39. data/spec/my_sports_feeds/seasonal_games_feed_spec.rb +41 -0
  40. data/spec/my_sports_feeds/weekly_player_gamelogs_spec.rb +144 -0
  41. data/spec/parsers/player_parser_spec.rb +63 -0
  42. data/spec/parsers/schedule_parser_spec.rb +41 -0
  43. data/spec/parsers/statline_parser_spec.rb +68 -0
  44. data/spec/spec_helper.rb +55 -0
  45. metadata +83 -52
  46. data/.codeclimate.yml +0 -5
  47. data/.rubocop.yml +0 -2
  48. data/lib/nfl_data/api/team.rb +0 -23
  49. data/lib/nfl_data/models/team.rb +0 -38
  50. data/lib/nfl_data/parsers/data/teams.rb +0 -36
  51. data/lib/nfl_data/parsers/parser_helper.rb +0 -6
  52. data/lib/nfl_data/parsers/team_parser.rb +0 -76
  53. data/test/nfl_data/api/player_test.rb +0 -25
  54. data/test/nfl_data/api/statline_test.rb +0 -21
  55. data/test/nfl_data/api/team_test.rb +0 -13
  56. data/test/nfl_data/models/player_test.rb +0 -81
  57. data/test/nfl_data/models/statline_test.rb +0 -121
  58. data/test/nfl_data/models/team_test.rb +0 -43
  59. data/test/nfl_data/parsers/player_parser_test.rb +0 -81
  60. data/test/nfl_data/parsers/statline_parser_test.rb +0 -34
  61. data/test/nfl_data/parsers/team_parser_test.rb +0 -37
  62. data/test/test_helper.rb +0 -14
@@ -1,43 +0,0 @@
1
- require 'test_helper'
2
-
3
- describe Team do
4
- before do
5
- @team = Team.new
6
- end
7
-
8
- after do
9
- @team = nil
10
- end
11
-
12
- it 'has a name' do
13
- @team.must_respond_to :name
14
- end
15
-
16
- it 'has a short name' do
17
- @team.must_respond_to :short_name
18
- end
19
-
20
- it 'has a schedule' do
21
- @team.must_respond_to :schedule
22
- end
23
-
24
- describe 'to_hash' do
25
- before do
26
- @team.name = 'Denver Broncos'
27
- @team.short_name = 'DEN'
28
- @team.schedule = Team::Schedule.new
29
- end
30
-
31
- def valid_player_hash
32
- {
33
- name: 'Denver Broncos',
34
- short_name: 'DEN',
35
- schedule: []
36
- }
37
- end
38
-
39
- it 'can return itself as hash' do
40
- @team.to_hash.must_equal valid_player_hash
41
- end
42
- end
43
- end
@@ -1,81 +0,0 @@
1
- require 'test_helper'
2
-
3
- describe PlayerParser do
4
- before do
5
- @parser = PlayerParser.new
6
- end
7
-
8
- after do
9
- @parser = nil
10
- end
11
-
12
- it 'should know the correct base url' do
13
- expected_base_url = 'http://www.nfl.com/players/search?category=' \
14
- 'position&conferenceAbbr=null&playerType=current' \
15
- '&conference=ALL&filter='
16
-
17
- @parser.base_url.must_equal expected_base_url
18
- end
19
-
20
- describe 'get_by_position' do
21
- it 'should get quarterbacks' do
22
- VCR.use_cassette('quarterbacks') do
23
- response = @parser.get_by_position(:quarterbacks)
24
-
25
- response.keys.must_include :quarterbacks
26
- response[:quarterbacks].count.must_be :>, 0
27
- end
28
- end
29
-
30
- it 'should get runningbacks' do
31
- VCR.use_cassette('runningbacks') do
32
- response = @parser.get_by_position(:runningbacks)
33
-
34
- response.keys.must_include :runningbacks
35
- response[:runningbacks].count.must_be :>, 0
36
- end
37
- end
38
-
39
- it 'should get wide receivers' do
40
- VCR.use_cassette('wide_receivers') do
41
- response = @parser.get_by_position(:wide_receivers)
42
-
43
- response.keys.must_include :wide_receivers
44
- response[:wide_receivers].count.must_be :>, 0
45
- end
46
- end
47
-
48
- it 'should get tight ends' do
49
- VCR.use_cassette('tight_ends') do
50
- response = @parser.get_by_position(:tight_ends)
51
-
52
- response.keys.must_include :tight_ends
53
- response[:tight_ends].count.must_be :>, 0
54
- end
55
- end
56
-
57
- it 'should get all the players' do
58
- VCR.use_cassette('all_players') do
59
- response = @parser.get_by_position(:all)
60
-
61
- [:quarterbacks, :runningbacks, :wide_receivers, :tight_ends].each do |position|
62
- response.keys.must_include position
63
- response[position].count.must_be :>, 0
64
- end
65
- end
66
- end
67
-
68
- it 'should use JAX as Jacksonville abbreviation for all JAX team players' do
69
- VCR.use_cassette('all_players') do
70
- response = @parser.get_by_position(:all)
71
-
72
- players =
73
- [response[:quarterbacks], response[:runningbacks],
74
- response[:wide_receivers], response[:tight_ends]].flatten
75
-
76
- players.any? { |player| player[:team] == 'JAX' }.must_equal true
77
- players.none? { |player| player[:team] == 'JAC' }.must_equal true
78
- end
79
- end
80
- end
81
- end
@@ -1,34 +0,0 @@
1
- require 'test_helper'
2
-
3
- describe StatlineParser do
4
- before do
5
- @parser = StatlineParser.new
6
- end
7
-
8
- after do
9
- @parser = nil
10
- end
11
-
12
- describe 'get' do
13
- it 'should get passing statlines' do
14
- VCR.use_cassette('passing') do
15
- response = @parser.get(4, 2014, :passing)
16
- response.count.must_equal 34
17
- end
18
- end
19
-
20
- it 'should get rushing statlines' do
21
- VCR.use_cassette('rushing') do
22
- response = @parser.get(4, 2014, :rushing)
23
- response.count.must_equal 106
24
- end
25
- end
26
-
27
- it 'should get receiving statlines' do
28
- VCR.use_cassette('receiving') do
29
- response = @parser.get(4, 2014, :receiving)
30
- response.count.must_equal 210
31
- end
32
- end
33
- end
34
- end
@@ -1,37 +0,0 @@
1
- require 'test_helper'
2
-
3
- describe TeamParser do
4
- before do
5
- @parser = TeamParser.new
6
- end
7
-
8
- after do
9
- @parser = nil
10
- end
11
-
12
- describe 'get_by_year' do
13
- it 'should get all the teams for year without schedule' do
14
- VCR.use_cassette('teams_without_schedule') do
15
- @parser.get_by_year(2014, false).count.must_equal 32
16
- end
17
- end
18
-
19
- it 'should get all the teams for year with schedule' do
20
- VCR.use_cassette('teams_with_schedule') do
21
- result = @parser.get_by_year(2014, true)
22
- result.count.must_equal 32
23
- result.each do |team|
24
- team[:schedule].count.must_equal 17 # includes bye weeks
25
- end
26
- end
27
- end
28
-
29
- it 'should use JAX as the abbreviation for Jacksonville' do
30
- VCR.use_cassette('teams_with_schedule') do
31
- result = @parser.get_by_year(2014, true)
32
- result.any? { |team| team[:short_name] == 'JAX' }.must_equal true
33
- result.none? { |team| team[:short_name] == 'JAC' }.must_equal true
34
- end
35
- end
36
- end
37
- end
@@ -1,14 +0,0 @@
1
- ENV['NFL_DATA_ENV'] = 'test'
2
-
3
- require 'nfl_data'
4
-
5
- require 'minitest/autorun'
6
- require 'minitest/pride'
7
- require 'vcr'
8
-
9
- include NflData
10
-
11
- VCR.configure do |c|
12
- c.cassette_library_dir = 'test/cassettes'
13
- c.hook_into :webmock
14
- end