gamertag 1.1.0 → 2.0.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 +7 -0
- data/CHANGELOG.md +11 -1
- data/LICENSE.md +11 -0
- data/README.md +84 -0
- data/gamertag.gemspec +25 -25
- data/lib/faraday/response/cleanup_xbox_leaders_naming.rb +30 -0
- data/lib/faraday/response/raise_xbox_leaders_error.rb +22 -0
- data/lib/gamertag.rb +21 -10
- data/lib/gamertag/client.rb +25 -0
- data/lib/gamertag/client/achievements.rb +15 -0
- data/lib/gamertag/client/friends.rb +14 -0
- data/lib/gamertag/client/games.rb +41 -0
- data/lib/gamertag/client/profile.rb +14 -0
- data/lib/gamertag/configuration.rb +48 -0
- data/lib/gamertag/connection.rb +22 -0
- data/lib/gamertag/error.rb +22 -0
- data/lib/gamertag/version.rb +2 -2
- data/spec/client/achievements_spec.rb +21 -0
- data/spec/client/friends_spec.rb +23 -0
- data/spec/client/games_spec.rb +49 -0
- data/spec/client/profile_spec.rb +22 -0
- data/spec/client_spec.rb +7 -0
- data/spec/faraday/xboxleader_cleanup_spec.rb +59 -0
- data/spec/faraday/xboxleader_error_spec.rb +63 -0
- data/spec/fixtures/achievements.json +654 -0
- data/spec/fixtures/errors/friends_not_found.json +9 -0
- data/spec/fixtures/errors/game_not_found.json +9 -0
- data/spec/fixtures/errors/gamertag_not_found.json +9 -0
- data/spec/fixtures/errors/invalid_game_id.json +9 -0
- data/spec/fixtures/errors/invalid_gamertag.json +9 -0
- data/spec/fixtures/friends.json +772 -0
- data/spec/fixtures/gamertag_not_found.json +9 -0
- data/spec/fixtures/games.json +2244 -0
- data/spec/fixtures/profile.json +125 -0
- data/spec/gamertag_spec.rb +13 -0
- data/spec/helper.rb +38 -0
- metadata +92 -124
- data/.gitignore +0 -9
- data/.rspec +0 -3
- data/.rvmrc +0 -1
- data/Gemfile +0 -4
- data/LICENSE +0 -20
- data/README.mdown +0 -106
- data/Rakefile +0 -12
- data/lib/gamertag/friends.rb +0 -25
- data/lib/gamertag/played_games.rb +0 -73
- data/lib/gamertag/profile.rb +0 -13
- data/lib/gamertag/simple_profile.rb +0 -68
- data/spec/fixtures/vcr_cassettes/Friends_Belial1984.yml +0 -520
- data/spec/fixtures/vcr_cassettes/PlayedGames_Belial1984.yml +0 -1309
- data/spec/fixtures/vcr_cassettes/PlayedGames_some_user.yml +0 -100
- data/spec/fixtures/vcr_cassettes/SimpleProfile_Belial1984.yml +0 -45
- data/spec/friends_spec.rb +0 -19
- data/spec/played_games_spec.rb +0 -25
- data/spec/profile_spec.rb +0 -15
- data/spec/simple_profile_spec.rb +0 -69
- data/spec/spec_helper.rb +0 -15
- data/spec/version_spec.rb +0 -7
@@ -1,100 +0,0 @@
|
|
1
|
-
---
|
2
|
-
- !ruby/struct:VCR::HTTPInteraction
|
3
|
-
request: !ruby/struct:VCR::Request
|
4
|
-
method: :get
|
5
|
-
uri: http://www.xboxgamertag.com:80/search/some+user/
|
6
|
-
body: !!null
|
7
|
-
headers: !!null
|
8
|
-
response: !ruby/struct:VCR::Response
|
9
|
-
status: !ruby/struct:VCR::ResponseStatus
|
10
|
-
code: 500
|
11
|
-
message: Internal Server Error
|
12
|
-
headers:
|
13
|
-
set-cookie:
|
14
|
-
- PHPSESSID=q43afhmf2th49p3hluntbkp8h0; path=/
|
15
|
-
expires:
|
16
|
-
- Thu, 19 Nov 1981 08:52:00 GMT
|
17
|
-
cache-control:
|
18
|
-
- no-store, no-cache, must-revalidate, post-check=0, pre-check=0
|
19
|
-
pragma:
|
20
|
-
- no-cache
|
21
|
-
vary:
|
22
|
-
- Accept-Encoding
|
23
|
-
content-type:
|
24
|
-
- text/html; charset=UTF-8
|
25
|
-
transfer-encoding:
|
26
|
-
- chunked
|
27
|
-
date:
|
28
|
-
- Thu, 20 Dec 2012 20:16:22 GMT
|
29
|
-
x-varnish:
|
30
|
-
- '1120123603'
|
31
|
-
age:
|
32
|
-
- '0'
|
33
|
-
connection:
|
34
|
-
- keep-alive
|
35
|
-
x-cache:
|
36
|
-
- MISS
|
37
|
-
server:
|
38
|
-
- Xbox Gamertag
|
39
|
-
body: ! "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html
|
40
|
-
xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:og=\"http://ogp.me/ns#\"\n xmlns:fb=\"https://www.facebook.com/2008/fbml\"
|
41
|
-
lang=\"en\">\n<head>\n<title>Xbox Gamertag data is broken </title>\n<meta http-equiv=\"Content-Type\"
|
42
|
-
content=\"text/html; charset=utf-8\" />\n<meta name=\"description\" content=\"Search
|
43
|
-
Xbox Live Gamertags, Create Xbox Gamercards using the Xbox Gamerator. Get Gamertag
|
44
|
-
Suggestions for a new Gamertag. Find Game information, reviews and more\" />\n<meta
|
45
|
-
name=\"keywords\" content=\"xbox, xbox gamertag, gamertag, gamertag search,
|
46
|
-
xbox gamertag search, xbox live, gamercards, gamertag generator, gamercard generator\"
|
47
|
-
/>\n<meta name=\"robots\" content=\"index, follow\" />\n<meta name=\"google-site-verification\"
|
48
|
-
content=\"DawowDmV2J68zDd4Ej0RdjF9C4mPykmq7smE1F2bgTw\" />\n<!-- Stylesheets
|
49
|
-
-->\n<link rel=\"stylesheet\" type=\"text/css\" href=\"/resources/css/main.css?1340884017\"
|
50
|
-
/>\n\n\n<!-- Javascript -->\n<script type=\"text/javascript\" src=\"/resources/scripts/jquery-1.7.2.min.js?1340884017\"></script>\n\n<!--[if
|
51
|
-
lt IE 7]>\n<script type=\"text/javascript\" src=\"/resources/scripts/supersleight.plugin.js?1340884017\"></script>\n<script>\n$(document).ready(function()\n{\n\t$('img,
|
52
|
-
div, input').supersleight();\n});\n</script>\n<![endif]-->\n\n<div id=\"fb-root\"></div>\n<script
|
53
|
-
type=\"text/javascript\">(function(d, s, id) {\n var js, fjs = d.getElementsByTagName(s)[0];\n
|
54
|
-
\ if (d.getElementById(id)) return;\n js = d.createElement(s); js.id = id;\n
|
55
|
-
\ js.src = \"//connect.facebook.net/en_GB/all.js#xfbml=1&appId=190837717693571\";\n
|
56
|
-
\ fjs.parentNode.insertBefore(js, fjs);\n}(document, 'script', 'facebook-jssdk'));\n</script>\n\n\n\n</head>\n<body>\n\n\n\n<div
|
57
|
-
id=\"container\"><noscript>For full functionality of this page it is necessary
|
58
|
-
to enable JavaScript. Here are the <a href=\"http://www.enable-javascript.com\"
|
59
|
-
target=\"_blank\"> instructions how to enable JavaScript in your web browser</a></noscript>\n\t\n\t<h1
|
60
|
-
id=\"MainTitle\"><a href=\"http://www.xboxgamertag.com/\">Xbox Gamertag</a></h1>\n\t\t\t\t\t\t\t\t\n\n<div
|
61
|
-
class=\"topAd\">\n\n<!-- BuySellAds.com Ad Code -->\n<script type=\"text/javascript\">\n(function(){\n
|
62
|
-
\ var bsa = document.createElement('script');\n bsa.type = 'text/javascript';\n
|
63
|
-
\ bsa.async = true;\n bsa.src = 'http://s3.buysellads.com/ac/bsa.js';\n
|
64
|
-
\ (document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(bsa);\n})();\n</script>\n<!--
|
65
|
-
End BuySellAds.com Ad Code -->\n<div id=\"bsap_1263149\" class=\"bsarocks bsap_98d6915731db38cdebc72e15b7b23b2b\"></div>\n\n\n\n\n\n\n</div>\t\n\t\n\t<div
|
66
|
-
id=\"topLinks\">\n\t\t<ul>\n\t\t\t\t\t\t<li><a href=\"/register/\"><strong>Register</strong></a>
|
67
|
-
| </li>\n\t\t\t<li><a href=\"/login/\">Login</a></li>\n\t\t\t\t\t\t\n\t\t</ul>\n\t</div>\n\t<div
|
68
|
-
id=\"XGTHeader\">\n\t\t<ul id=\"Menu\">\n\t\t\t<li class=\"image\"><a href=\"/\"><img
|
69
|
-
src=\"/resources/images/homeHouse.png\" alt=\"xboxgamertag\" /></a></li>\n\t\t\t<li
|
70
|
-
class=\"left\"><a href=\"/gamercard/\">Gamercards</a></li>\n\t\t\t<li class=\"left\"><a
|
71
|
-
href=\"/gamertag-generator/\">Gamertag Generator</a></li>\n\t\t\t<li class=\"left\"><a
|
72
|
-
href=\"/achievements/\">Achievements</a></li>\n\t\t\t<li class=\"left\"><a href=\"/leaderboards/\">Leaderboards</a></li>\n\n\t\t\t<!---<li
|
73
|
-
class=\"rightOption\"><a href=\"/forum/\">Forums</a></li>-->\n\t\t\t\n\t\t\t<li
|
74
|
-
class=\"rightOption\"><a href=\"http://www.facebook.com/pages/Xbox-Gamertag/134742809876061\"
|
75
|
-
rel=\"nofollow\" target=\"_blank\">Share Your Gamertag</a></li>\n\n\n\t\t</ul>\n\t\t\t</div>\n\t<div
|
76
|
-
id=\"XGTMain\">\n\t<h2>An error occured...</h2>\r\n\t<div class=\"centerContent\">\r\n\t<p>It
|
77
|
-
seems as if the Xbox.com feeds are down.</p>\r\n\t<p>It's probably just a temporary
|
78
|
-
issue, try again in a while</p>\r\n\t<p>In the mean time, come have a chat with
|
79
|
-
us on the forums and have some tea...</p>\r\n\t\t<img src=\"/resources/images/icons/teatime.png\"
|
80
|
-
alt=\"Why not have some tea? (or coffee, its better)\" title=\"Why not have
|
81
|
-
some tea? (or coffee, its better)\" />\r\n\t\t\r\n\t\t<br /><br /> <h2>If you're
|
82
|
-
bored, add us on Xbox Live before our friends list gets full! <br />Gamertag:
|
83
|
-
XboxGamertagCom</h2>\r\n\t</div>\r\n</div>\n\t<div class=\"XGTFooter\">\n\t\t<div
|
84
|
-
class=\"rightCol\">\n\t\t\t<p> </p>\n\t\t</div>\n\t\t\n\t</div>\n</div>\n<div
|
85
|
-
class=\"XGTFooter\">\n\t<div class=\"leftCol\">\n\t\t<a href=\"/contact/\">Contact
|
86
|
-
Us</a> - <a href=\"/legal/terms/\">Terms of Use</a> - <a href=\"/legal/privacy/\">Privacy
|
87
|
-
Policy</a> - <a href=\"/sitemap/\">Sitemap</a>\n\t\t<br />\n\t\tFollow us on:
|
88
|
-
<a href=\"http://www.facebook.com/pages/Xbox-Gamertag/134742809876061\" target=_blank\"
|
89
|
-
rel=\"nofollow\">Facebook</a> - <a href=\"http://twitter.com/XboxGamerTagCom\"
|
90
|
-
\ target=_blank\" rel=\"nofollow\">Twitter</a> - <a href=\"http://www.youtube.com/user/XboxGamertagCom\"
|
91
|
-
target=_blank\" rel=\"nofollow\">Youtube</a>\n\n</div>\n\t<div class=\"rightCol\">\n\t\t<p>Xboxgamertag.com
|
92
|
-
© 2010 - 2012</p>\n\t\t<p>XboxGamertag.com is a member of the Xbox Community
|
93
|
-
Developer Program (XCDP)</p>\n\t\t<p>We are not affiliated with Microsoft or
|
94
|
-
Xbox</p>\n\t</div>\t\n</div>\n<script type=\"text/javascript\"> var _gaq =
|
95
|
-
_gaq || []; _gaq.push(['_setAccount', 'UA-16948229-1']); _gaq.push(['_trackPageview']);
|
96
|
-
\ (function() { var ga = document.createElement('script'); ga.type = 'text/javascript';
|
97
|
-
ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl'
|
98
|
-
: 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0];
|
99
|
-
s.parentNode.insertBefore(ga, s); })();</script>\n</body>\n</html>\n"
|
100
|
-
http_version: '1.1'
|
@@ -1,45 +0,0 @@
|
|
1
|
-
---
|
2
|
-
http_interactions:
|
3
|
-
- request:
|
4
|
-
method: get
|
5
|
-
uri: http://api.xboxleaders.com/v2/?gamertag=Belial1984&format=json
|
6
|
-
body:
|
7
|
-
encoding: US-ASCII
|
8
|
-
string: ''
|
9
|
-
headers: {}
|
10
|
-
response:
|
11
|
-
status:
|
12
|
-
code: 200
|
13
|
-
message: OK
|
14
|
-
headers:
|
15
|
-
Date:
|
16
|
-
- Wed, 24 Aug 2011 16:40:13 GMT
|
17
|
-
Server:
|
18
|
-
- Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1
|
19
|
-
mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.13
|
20
|
-
X-Powered-By:
|
21
|
-
- PHP/5.2.13
|
22
|
-
Expires:
|
23
|
-
- Mon, 26 Jul 1997 05:00:00 GMT
|
24
|
-
Last-Modified:
|
25
|
-
- Wed, 24 Aug 2011 16:40:14GMT
|
26
|
-
Cache-Control:
|
27
|
-
- no-cache, must-revalidate
|
28
|
-
Pragma:
|
29
|
-
- no-cache
|
30
|
-
Content-Length:
|
31
|
-
- '3225'
|
32
|
-
Content-Type:
|
33
|
-
- application/json
|
34
|
-
body:
|
35
|
-
encoding: UTF-8
|
36
|
-
string: ! '{"user":{"gamertag":"belial1984","is_valid":1,"profile_link":"http:\/\/live.xbox.com\/member\/belial1984","launch_team":{"xbl":0,"nxe":0,"kinect":0},"account_status":"Gold","gender":"Male","is_cheater":0,"online":0,"online_status":"Last
|
37
|
-
seen 8\/22\/2011 playing Modern Warfare® 2","avatars":{"gamer_tile":"http:\/\/avatar.xboxlive.com\/avatar\/belial1984\/avatarpic-l.png","small_gamerpic":"http:\/\/avatar.xboxlive.com\/avatar\/belial1984\/avatarpic-s.png","large_gamerpic":"http:\/\/avatar.xboxlive.com\/avatar\/belial1984\/avatarpic-l.png","body_gamerpic":"http:\/\/avatar.xboxlive.com\/avatar\/belial1984\/avatar-body.png"},"reputation":100,"gamerscore":11910,"location":"london","motto":"","name":"baris
|
38
|
-
balic","bio":"","recent_games":{"1":{"title":"Modern Warfare® 2","tid":1096157207,"marketplace_url":"http:\/\/marketplace.xbox.com\/Title\/1096157207","compare_url":"http:\/\/live.xbox.com\/en-US\/GameCenter\/Achievements?title=1096157207&compareTo=belial1984","image":"http:\/\/tiles.xbox.com\/tiles\/l6\/Vi\/0Gdsb2JhbA9ECgQJGgYfVl5UL2ljb24vMC84MDAwIAAAAAAAAP9NpYg=.jpg","last_played":"1313967600","earned_gamerscore":930,"available_gamerscore":1000,"earned_achievements":43,"available_achievements":50,"percentage_complete":86},"2":{"title":"Halo:
|
39
|
-
Reach","tid":1297287259,"marketplace_url":"http:\/\/marketplace.xbox.com\/Title\/1297287259","compare_url":"http:\/\/live.xbox.com\/en-US\/GameCenter\/Achievements?title=1297287259&compareTo=belial1984","image":"http:\/\/tiles.xbox.com\/tiles\/ih\/ew\/0Wdsb2JhbA9ECgR8GgMfVlohL2ljb24vMC84MDAwIAAAAAAAAP6fF5U=.jpg","last_played":"1299542400","earned_gamerscore":375,"available_gamerscore":1400,"earned_achievements":26,"available_achievements":59,"percentage_complete":44},"3":{"title":"Portal
|
40
|
-
2","tid":1161890066,"marketplace_url":"http:\/\/marketplace.xbox.com\/Title\/1161890066","compare_url":"http:\/\/live.xbox.com\/en-US\/GameCenter\/Achievements?title=1161890066&compareTo=belial1984","image":"http:\/\/tiles.xbox.com\/tiles\/x2\/5+\/1mdsb2JhbA9ECgQNGwEfV15RL2ljb24vMC84MDAwIAAAAAAAAPlRbtg=.jpg","last_played":"","earned_gamerscore":345,"available_gamerscore":1000,"earned_achievements":21,"available_achievements":50,"percentage_complete":42},"4":{"title":"SUPER
|
41
|
-
STREETFIGHTER IV","tid":1128466428,"marketplace_url":"http:\/\/marketplace.xbox.com\/Title\/1128466428","compare_url":"http:\/\/live.xbox.com\/en-US\/GameCenter\/Achievements?title=1128466428&compareTo=belial1984","image":"http:\/\/tiles.xbox.com\/tiles\/oX\/8i\/0Wdsb2JhbA9ECgQLGwMfWSkgL2ljb24vMC84MDAwIAAAAAAAAP4Nf74=.jpg","last_played":"1309906800","earned_gamerscore":470,"available_gamerscore":1160,"earned_achievements":28,"available_achievements":58,"percentage_complete":48},"5":{"title":"Child
|
42
|
-
of Eden","tid":1431504972,"marketplace_url":"http:\/\/marketplace.xbox.com\/Title\/1431504972","compare_url":"http:\/\/live.xbox.com\/en-US\/GameCenter\/Achievements?title=1431504972&compareTo=belial1984","image":"http:\/\/tiles.xbox.com\/tiles\/z2\/Jl\/1mdsb2JhbA9ECgUNGgMfVlsgL2ljb24vMC84MDAwIAAAAAAAAPlKYtA=.jpg","last_played":"","earned_gamerscore":0,"available_gamerscore":1000,"earned_achievements":0,"available_achievements":49,"percentage_complete":0}}}}'
|
43
|
-
http_version: '1.1'
|
44
|
-
recorded_at: Thu, 25 Aug 2011 00:52:26 GMT
|
45
|
-
recorded_with: VCR 2.3.0
|
data/spec/friends_spec.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Gamertag::Friends do
|
4
|
-
use_vcr_cassette('Friends_Belial1984')
|
5
|
-
|
6
|
-
it "should return all friends" do
|
7
|
-
profile = Gamertag::Friends.new('Belial1984')
|
8
|
-
|
9
|
-
profile.friends.class.should be(Array)
|
10
|
-
profile.friends.length.should eql(65)
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should return online friends" do
|
14
|
-
profile = Gamertag::Friends.new('Belial1984')
|
15
|
-
|
16
|
-
profile.online_friends.class.should be(Array)
|
17
|
-
profile.online_friends.length.should eql(7)
|
18
|
-
end
|
19
|
-
end
|
data/spec/played_games_spec.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Gamertag::PlayedGames do
|
4
|
-
|
5
|
-
context "valid user" do
|
6
|
-
use_vcr_cassette('PlayedGames_Belial1984')
|
7
|
-
it "should return played games" do
|
8
|
-
played_games = Gamertag::PlayedGames.new('Belial1984')
|
9
|
-
|
10
|
-
played_games.first.title.should include("Modern Warfare")
|
11
|
-
played_games.count.should == 88
|
12
|
-
played_games.each {|game| game.title.nil?.should be_false}
|
13
|
-
gamerscore_values = [:above_average, :below_average, :undefined]
|
14
|
-
played_games.each do |game|
|
15
|
-
gamerscore_values.should include(game.relative_gamerscore)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
context "invalid user" do
|
20
|
-
use_vcr_cassette('PlayedGames_some_user')
|
21
|
-
it "should not raise an error" do
|
22
|
-
expect{Gamertag::PlayedGames.new('some user')}.to_not raise_error(URI::InvalidURIError)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
data/spec/profile_spec.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Gamertag::Profile do
|
4
|
-
use_vcr_cassette('SimpleProfile_Belial1984')
|
5
|
-
use_vcr_cassette('PlayedGames_Belial1984')
|
6
|
-
|
7
|
-
it "should return composite details" do
|
8
|
-
profile = Gamertag::Profile.new('Belial1984')
|
9
|
-
|
10
|
-
profile.gamertag.should eql('belial1984')
|
11
|
-
profile.online_status.include?('SUPER STREETFIGHTER IV').should eql(false)
|
12
|
-
profile.recent_games.count.should eql(5)
|
13
|
-
profile.played_games.count.should eql(88)
|
14
|
-
end
|
15
|
-
end
|
data/spec/simple_profile_spec.rb
DELETED
@@ -1,69 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Gamertag::SimpleProfile do
|
4
|
-
describe "#fetch" do
|
5
|
-
context "valid user" do
|
6
|
-
use_vcr_cassette('SimpleProfile_Belial1984')
|
7
|
-
|
8
|
-
it "should return profile data" do
|
9
|
-
profile = Gamertag::SimpleProfile.new('Belial1984')
|
10
|
-
|
11
|
-
profile.name.should =~ /baris balic/i
|
12
|
-
profile.gamertag.should =~ /Belial1984/i
|
13
|
-
profile.avatars.count.should eql(4)
|
14
|
-
profile.avatars.small_gamerpic.should == 'http://avatar.xboxlive.com/avatar/belial1984/avatarpic-s.png'
|
15
|
-
end
|
16
|
-
|
17
|
-
it "should return the recent games data" do
|
18
|
-
profile = Gamertag::SimpleProfile.new('Belial1984')
|
19
|
-
|
20
|
-
profile.recent_games.count.should eql(5)
|
21
|
-
profile.recent_games.first.title.should eql('Modern Warfare® 2')
|
22
|
-
profile.recent_games.first.available_gamerscore.should eql(1000)
|
23
|
-
profile.recent_games.first.last_played.class.should == Time
|
24
|
-
end
|
25
|
-
end
|
26
|
-
context "user with spaces" do
|
27
|
-
use_vcr_cassette('SimpleProfile_some_user')
|
28
|
-
it "should not raise an error" do
|
29
|
-
expect{Gamertag::SimpleProfile.new('some user')}.to_not raise_error(URI::InvalidURIError)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
describe ".from_json" do
|
35
|
-
let(:seed_data) {
|
36
|
-
{
|
37
|
-
"gamertag" => "laikal1",
|
38
|
-
"is_valid" => 1,
|
39
|
-
"profile_link"=>"http://live.xbox.com/member/laikal1",
|
40
|
-
"launch_team"=>{"xbl"=>0, "nxe"=>0, "kinect"=>0},
|
41
|
-
"account_status"=>"Gold",
|
42
|
-
"gender"=>"Male",
|
43
|
-
"is_cheater"=>0,
|
44
|
-
"online"=>0,
|
45
|
-
"online_status"=>"Last seen 9 hours ago playing Xbox.com",
|
46
|
-
"avatars"=>{
|
47
|
-
"gamer_tile"=>"http://avatar.xboxlive.com/avatar/laikal1/avatarpic-l.png",
|
48
|
-
"small_gamerpic"=>"http://avatar.xboxlive.com/avatar/laikal1/avatarpic-s.png",
|
49
|
-
"large_gamerpic"=>"http://avatar.xboxlive.com/avatar/laikal1/avatarpic-l.png",
|
50
|
-
"body_gamerpic"=>"http://avatar.xboxlive.com/avatar/laikal1/avatar-body.png"
|
51
|
-
},
|
52
|
-
"reputation"=>85,
|
53
|
-
"gamerscore"=>41646,
|
54
|
-
"location"=>"Ann Arbor, MI",
|
55
|
-
"motto"=>"Complexify!",
|
56
|
-
"name"=>"Nyarlathotep (1 bucket)",
|
57
|
-
"bio"=>"Design is how it works."
|
58
|
-
}
|
59
|
-
}
|
60
|
-
it "should initialize a profile from json data without calling a remote service" do
|
61
|
-
Net::HTTP.should_not_receive(:get_response)
|
62
|
-
profile = Gamertag::SimpleProfile.from_json(seed_data.to_json)
|
63
|
-
seed_data.keys.each do |k|
|
64
|
-
profile.send(k).should == seed_data[k]
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rspec'
|
3
|
-
require 'vcr'
|
4
|
-
|
5
|
-
require File.join(File.dirname(__FILE__), %w{ .. lib gamertag})
|
6
|
-
|
7
|
-
VCR.configure do |c|
|
8
|
-
c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
|
9
|
-
c.hook_into :fakeweb
|
10
|
-
c.default_cassette_options = { :record => :once }
|
11
|
-
end
|
12
|
-
|
13
|
-
RSpec.configure do |c|
|
14
|
-
c.extend VCR::RSpec::Macros
|
15
|
-
end
|