yahoo_nba 0.0.1.alpha → 0.0.2.alpha
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +3 -0
- data/Gemfile +4 -0
- data/lib/yahoo_nba/version.rb +1 -1
- data/lib/yahoo_nba/yahoo_nba.rb +33 -0
- data/lib/yahoo_nba.rb +3 -3
- data/spec/yahoo_nba/yahoo_nba_spec.rb +64 -0
- data/yahoo_nba.gemspec +1 -0
- metadata +19 -6
- data/spec/yahoo_nba_spec.rb +0 -6
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/lib/yahoo_nba/version.rb
CHANGED
@@ -0,0 +1,33 @@
|
|
1
|
+
module YahooNba
|
2
|
+
class Query
|
3
|
+
|
4
|
+
def initialize(consumer_key, consumer_secret)
|
5
|
+
consumer = ::OAuth::Consumer.new(consumer_key,
|
6
|
+
consumer_secret,
|
7
|
+
:site => 'http://fantasysports.yahooapis.com',
|
8
|
+
:http_method => :get)
|
9
|
+
@access_token = OAuth::AccessToken.new(consumer)
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_players_info_array_starting_at(num)
|
13
|
+
players_info_xml = @access_token.get("/fantasy/v2/game/249/players;start=#{num};count=25")
|
14
|
+
players_info_array = Crack::XML.parse(players_info_xml.body)['fantasy_content']['game']['players']['player']
|
15
|
+
end
|
16
|
+
|
17
|
+
def get_players_key_hash_from(players_info_array)
|
18
|
+
players_key_hash = {}
|
19
|
+
players_info_array.each{|item| players_key_hash[item["name"]["full"]] = item['player_key']}
|
20
|
+
players_key_hash
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_players_stats_hash_using(players_key_hash)
|
24
|
+
players_stats_hash = {}
|
25
|
+
players_key_hash.each do |player_name, player_id|
|
26
|
+
player_stats_xml = @access_token.get("/fantasy/v2/player/#{player_id}/stats")
|
27
|
+
player_stats = Crack::XML.parse(player_stats_xml.body)["fantasy_content"]["player"]
|
28
|
+
players_stats_hash[player_name] = player_stats
|
29
|
+
end
|
30
|
+
players_stats_hash
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/yahoo_nba.rb
CHANGED
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe YahooNba do
|
4
|
+
|
5
|
+
it "allows rspec to work" do
|
6
|
+
true.should equal(true)
|
7
|
+
end
|
8
|
+
|
9
|
+
describe YahooNba::Query do
|
10
|
+
before(:each) do
|
11
|
+
@consumer_key = "dj0yJmk9Z3ExYnVlRERPekVDJmQ9WVdrOVlWTnJOV2t6TlRRbWNHbzlNVFEzTnpRd09EUTJNZy0tJnM9Y29uc3VtZXJzZWNyZXQmeD1iNw--"
|
12
|
+
@consumer_secret = "a7d3c791b23f35774c608b7863b2d47508560927"
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should have initialize creates a new Query" do
|
16
|
+
query = YahooNba::Query.new(@consumer_key, @consumer_secret)
|
17
|
+
query.should_not equal(nil)
|
18
|
+
query.class.should equal(YahooNba::Query)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should have initialize creates new OAuth::Consumer" do
|
22
|
+
OAuth::Consumer.should_receive(:new).with(@consumer_key, @consumer_secret, anything)
|
23
|
+
query = YahooNba::Query.new(@consumer_key, @consumer_secret)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should have initialize sets access_token" do
|
27
|
+
query = YahooNba::Query.new(@consumer_key, @consumer_secret)
|
28
|
+
query.instance_variable_get(:@access_token).should_not equal(nil)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should have get_players_starting_at call get on the access token and parse the response" do
|
32
|
+
query = YahooNba::Query.new(@consumer_key, @consumer_secret)
|
33
|
+
access_token = query.instance_variable_get(:@access_token)
|
34
|
+
num = 20
|
35
|
+
mock_xml = double
|
36
|
+
mock_response = double(:body => mock_xml)
|
37
|
+
access_token.should_receive(:get).with("/fantasy/v2/game/249/players;start=#{num};count=25").and_return(mock_response)
|
38
|
+
Crack::XML.should_receive(:parse).with(mock_xml).and_return({'fantasy_content' => {'game' => {'players' => {'player' => 'right!'}}}})
|
39
|
+
query.get_players_info_array_starting_at(num).should == 'right!'
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should get players key has from players_info array" do
|
43
|
+
players_info_array = [{"player_key"=>"249.p.4244", "player_id"=>"4244", "name"=>{"full"=>"Kevin Durant", "first"=>"Kevin", "last"=>"Durant", "ascii_first"=>"Kevin", "ascii_last"=>"Durant"}, "editorial_player_key"=>"nba.p.4244", "editorial_team_key"=>"nba.t.25", "editorial_team_full_name"=>"Oklahoma City Thunder", "editorial_team_abbr"=>"OKC", "uniform_number"=>"35", "display_position"=>"SF", "image_url"=>"http://l.yimg.com/a/i/us/sp/v/nba/players_l/20101116/4244.jpg?x=46&y=60&xc=1&yc=1&wc=164&hc=215&q=100&sig=OTXf3hs63PFp0fv8wxtCIg--", "is_undroppable"=>"0", "position_type"=>"P", "eligible_positions"=>{"position"=>"SF"}, "has_player_notes"=>"1", "has_recent_player_notes"=>"1"}]
|
44
|
+
players_key_hash = {"Kevin Durant"=>"249.p.4244"}
|
45
|
+
query = YahooNba::Query.new(@consumer_key, @consumer_secret)
|
46
|
+
hash_results = query.get_players_key_hash_from(players_info_array)
|
47
|
+
hash_results.should == players_key_hash
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should get players stats using players_key_hash" do
|
51
|
+
query = YahooNba::Query.new(@consumer_key, @consumer_secret)
|
52
|
+
players_key_hash = {"Kevin Durant"=>"249.p.4244"}
|
53
|
+
access_token = query.instance_variable_get(:@access_token)
|
54
|
+
mock_xml = double
|
55
|
+
mock_response = double(:body => mock_xml)
|
56
|
+
access_token.should_receive(:get).with("/fantasy/v2/player/#{players_key_hash['Kevin Durant']}/stats").and_return(mock_response)
|
57
|
+
Crack::XML.should_receive(:parse).with(mock_xml).and_return({"fantasy_content" => {"player" => "the right stats!"}})
|
58
|
+
player_stats_hash = query.get_players_stats_hash_using(players_key_hash)
|
59
|
+
player_stats_hash.should == {"Kevin Durant" => "the right stats!"}
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
data/yahoo_nba.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yahoo_nba
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2.alpha
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-04-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: &70167040790720 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70167040790720
|
14
25
|
- !ruby/object:Gem::Dependency
|
15
26
|
name: rspec
|
16
|
-
requirement: &
|
27
|
+
requirement: &70167040790300 !ruby/object:Gem::Requirement
|
17
28
|
none: false
|
18
29
|
requirements:
|
19
30
|
- - ! '>='
|
@@ -21,7 +32,7 @@ dependencies:
|
|
21
32
|
version: '0'
|
22
33
|
type: :development
|
23
34
|
prerelease: false
|
24
|
-
version_requirements: *
|
35
|
+
version_requirements: *70167040790300
|
25
36
|
description: Get nba stats using yahoo api
|
26
37
|
email:
|
27
38
|
- ! "jc582@optonline.net\t"
|
@@ -31,14 +42,16 @@ extra_rdoc_files: []
|
|
31
42
|
files:
|
32
43
|
- .gitignore
|
33
44
|
- .rspec
|
45
|
+
- .travis.yml
|
34
46
|
- Gemfile
|
35
47
|
- LICENSE
|
36
48
|
- README.md
|
37
49
|
- Rakefile
|
38
50
|
- lib/yahoo_nba.rb
|
39
51
|
- lib/yahoo_nba/version.rb
|
52
|
+
- lib/yahoo_nba/yahoo_nba.rb
|
40
53
|
- spec/spec_helper.rb
|
41
|
-
- spec/yahoo_nba_spec.rb
|
54
|
+
- spec/yahoo_nba/yahoo_nba_spec.rb
|
42
55
|
- yahoo_nba.gemspec
|
43
56
|
homepage: ''
|
44
57
|
licenses: []
|
@@ -66,4 +79,4 @@ specification_version: 3
|
|
66
79
|
summary: Gem to get nba player stats using yahoo api
|
67
80
|
test_files:
|
68
81
|
- spec/spec_helper.rb
|
69
|
-
- spec/yahoo_nba_spec.rb
|
82
|
+
- spec/yahoo_nba/yahoo_nba_spec.rb
|