nfl_data 0.0.11 → 0.0.12

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
  SHA1:
3
- metadata.gz: fde80abd92b5afed0b3c16a9cd3d687387380bd5
4
- data.tar.gz: f904cf0f9158c3996494aff4864f1ab3767daa59
3
+ metadata.gz: 8ddfd102d1e34fb5f67cf1cd9bfeff27db2e907f
4
+ data.tar.gz: fd0babfb2953f8f0d7e927e28655b71f49aa78ad
5
5
  SHA512:
6
- metadata.gz: 6e7d173e1e01bdf293fda1ad9c5c495bb6d7a3f4d5ee0382a680e411241450aaf0c6c762aeb7334a48ec6f403de1e702ceeec7981d29b5478123f9dac38b415e
7
- data.tar.gz: fd76a8e7240ae7b46e4c5b084c52138f11eb671de0ae7d8115d926a205e510636563d670e3291ec138e68688e1e594e134baeb729fc57c200944f1059528b365
6
+ metadata.gz: 8efd6056e6012919326f1f6ed1223b25d1b43fe916b25c452c396070a52a6dff5b9db928fef14d364ea3efc879d514fb946d427ba176d9649247d2c6ea2dd6b1
7
+ data.tar.gz: a4faa749be2a46f744e16e27da1eb67fb72ae0bfb52cd6de3e174de08c76b961fc71881d57d51ba9cfd3d13408c128878807198d04cef956a4d315f7f667a59b
@@ -2,7 +2,7 @@ module NflData
2
2
  class Player
3
3
  ATTRIBUTES = [
4
4
  :first_name, :last_name, :full_name, :position, :number,
5
- :status, :team, :nfl_player_id, :picture_link
5
+ :status, :team, :nfl_player_id, :picture_link, :profile_link
6
6
  ]
7
7
 
8
8
  attr_accessor(*ATTRIBUTES)
@@ -1,3 +1,5 @@
1
+ require 'typhoeus'
2
+
1
3
  module NflData
2
4
  class PlayerParser
3
5
  include ParserHelper
@@ -40,6 +42,10 @@ module NflData
40
42
  end
41
43
 
42
44
  return_val.flatten.map(&:to_hash)
45
+
46
+ return_val = return_val.flatten
47
+ populate_picture_links(return_val)
48
+ return_val.map(&:to_hash)
43
49
  end
44
50
 
45
51
  def update_or_create_players(url)
@@ -70,15 +76,27 @@ module NflData
70
76
  first_name: names[0],
71
77
  last_name: names[1],
72
78
  full_name: names.join(' '),
73
- picture_link: get_picture_link(nfl_player_id, names[0], names[1])
79
+ profile_link: get_profile_link(nfl_player_id, names[0], names[1])
74
80
  )
75
81
  end
76
82
 
77
- def get_picture_link(nfl_player_id, first_name, last_name)
83
+ def get_profile_link(nfl_player_id, first_name, last_name)
78
84
  return nil if ENV['NFL_DATA_ENV'] == 'test'
79
- url = "http://www.nfl.com/player/#{first_name.gsub(/\s/, '')}#{last_name.gsub(/\s/, '')}/#{nfl_player_id}/profile"
80
- doc = open(url) { |f| Nokogiri(f) }
81
- doc.search('div.player-photo img').first.attributes['src'].value
85
+ "http://www.nfl.com/player/#{first_name.gsub(/\s/, '')}#{last_name.gsub(/\s/, '')}/#{nfl_player_id}/profile"
86
+ end
87
+
88
+ def populate_picture_links(players)
89
+ hydra = Typhoeus::Hydra.hydra
90
+ players.each do |player|
91
+ request = Typhoeus::Request.new(player.profile_link, followlocation: true, accept_encoding: 'gzip')
92
+ request.on_complete do |response|
93
+ doc = Nokogiri::HTML(response.body)
94
+ img_element = doc.search('div.player-photo img').first
95
+ player.picture_link = img_element.attributes['src'].value unless img_element.nil?
96
+ end
97
+ hydra.queue(request)
98
+ end
99
+ hydra.run
82
100
  end
83
101
  end
84
102
  end
@@ -1,3 +1,3 @@
1
1
  module NflData
2
- VERSION = '0.0.11'
2
+ VERSION = '0.0.12'
3
3
  end
@@ -26,5 +26,6 @@ Gem::Specification.new do |spec|
26
26
  spec.add_development_dependency 'webmock', '~> 1.19.0'
27
27
  spec.add_development_dependency 'rubocop', '~> 0.35.1'
28
28
 
29
+ spec.add_dependency 'typhoeus', '~> 1.3'
29
30
  spec.add_dependency 'nokogiri', '~> 1.6'
30
31
  end
@@ -56,6 +56,7 @@ describe Player do
56
56
  @player.team = 'Broncos'
57
57
  @player.nfl_player_id = '123'
58
58
  @player.picture_link = 'google.com'
59
+ @player.profile_link = 'espn.com'
59
60
  end
60
61
 
61
62
  def valid_player_hash
@@ -68,7 +69,8 @@ describe Player do
68
69
  status: 'Retired',
69
70
  team: 'Broncos',
70
71
  nfl_player_id: '123',
71
- picture_link: 'google.com'
72
+ picture_link: 'google.com',
73
+ profile_link: 'espn.com'
72
74
  }
73
75
  end
74
76
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nfl_data
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - thetizzo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-05 00:00:00.000000000 Z
11
+ date: 2017-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: 0.35.1
97
+ - !ruby/object:Gem::Dependency
98
+ name: typhoeus
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.3'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.3'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: nokogiri
99
113
  requirement: !ruby/object:Gem::Requirement