sports_data_api 0.15.0 → 0.15.1

Sign up to get free protection for your applications and to get access to all the features.
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