nfl_data 0.0.11 → 0.0.12

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
  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