sports_data_api 0.15.0 → 0.15.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eebf752b7fb818cf85c7b76cc0c4bdc19f9c9c8fc8a92386f25116226412f799
4
- data.tar.gz: e4545f5c2ec546d45364ae2b0ba85edbab1e2e9f7ae2677cc8226ca77a3258f3
3
+ metadata.gz: 07f6aa2548068b6f74a06b0bda9eb6fffd2e422b0d3a5295c7eba744207a4788
4
+ data.tar.gz: b9cc63e395efdf1a7ad01090341731640bffdeac47c832a4ec3a45dbbc4e9ce2
5
5
  SHA512:
6
- metadata.gz: a1c1d641e998d41f532433db6f3eaa206a31ede5a6ec45ccf819964eaa15b3ca8fae0747fcb7cd7b7fa4bdb38bab3bcc540658095c4c4bb4f2e3095eb96af341
7
- data.tar.gz: 7bc864e7a11eb9da7151a6ffdc1c51c2734ed4b80dc285870189584cf8a622fc3ad44a98ca6fb345387ac8ec64f53fdf30e7bdd719dbf2a8f3aaced92881889e
6
+ metadata.gz: f482f859858ad07ca7787ffcd7fb3804ea42a6f541810ae4e747c0005516a6f991fd667d886a1a1b7da9f8babf89b223da8d36b6482ebf1f7ae3cd0cd3e58409
7
+ data.tar.gz: 3a71cb9e7fd68ad00eab45db25df95d9f1c04a78d0dfbaefcccd2255354d5256b22c293eb64a0dd36653f42a7b843eafa33d1c70bbe660c90a74e5de56379c99
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.15.1
4
+ * [#92](https://github.com/RLovelett/sports_data_api/pull/92) [FIX] NFL extra points stats
5
+ * [#93](https://github.com/RLovelett/sports_data_api/pull/93) [Feature] Stats have #fetch like hash
6
+
3
7
  ## v0.15.0
4
8
  * [#91](https://github.com/RLovelett/sports_data_api/pull/91) Adds V2 NFL Support
5
9
 
@@ -11,5 +11,10 @@ module SportsDataApi
11
11
  ivar.delete key.to_sym
12
12
  end
13
13
  end
14
+
15
+ def fetch(key, default = nil)
16
+ ivar = instance_variable_get("@#{instance_var_name}")
17
+ ivar.fetch(key, default)
18
+ end
14
19
  end
15
20
  end
@@ -42,6 +42,7 @@ module SportsDataApi
42
42
  private
43
43
 
44
44
  PLAYER_KEYS = %w[id name jersey reference position].freeze
45
+ EXTRA_POINTS_KEY = 'extra_points'.freeze
45
46
 
46
47
  attr_reader :json
47
48
 
@@ -56,15 +57,28 @@ module SportsDataApi
56
57
  def players_from_stats
57
58
  statistics.each_with_object({}) do |(key, data), players|
58
59
  next unless data.is_a?(Hash)
59
- data.fetch('players', []).each do |player_json|
60
- base, stats = split_player_json(player_json)
61
- player = players[player_json['id']] || base
62
- player['statistics'][key] = stats
63
- players[player['id']] = player
60
+ if key == EXTRA_POINTS_KEY
61
+ data.each do |nested_key, nested_data|
62
+ nested_data.fetch('players', []).each do |player_json|
63
+ category = player_json.delete('category') || nested_key
64
+ add_stat(players, player_json, "#{key}_#{category}")
65
+ end
66
+ end
67
+ else
68
+ data.fetch('players', []).each do |player_json|
69
+ add_stat(players, player_json, key)
70
+ end
64
71
  end
65
72
  end
66
73
  end
67
74
 
75
+ def add_stat(players, player_json, key)
76
+ base, stats = split_player_json(player_json)
77
+ player = players[player_json['id']] || base
78
+ player['statistics'][key] = stats
79
+ players[player['id']] = player
80
+ end
81
+
68
82
  def split_player_json(player_json)
69
83
  player = { 'statistics' => {} }
70
84
  stats = {}
@@ -1,3 +1,3 @@
1
1
  module SportsDataApi
2
- VERSION = '0.15.0'
2
+ VERSION = '0.15.1'
3
3
  end