quakelive_api 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +21 -0
- data/.travis.yml +9 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +76 -0
- data/Rakefile +14 -0
- data/lib/quakelive_api/base.rb +52 -0
- data/lib/quakelive_api/error/player_not_found.rb +6 -0
- data/lib/quakelive_api/error/request_error.rb +6 -0
- data/lib/quakelive_api/game_time.rb +34 -0
- data/lib/quakelive_api/items/award.rb +7 -0
- data/lib/quakelive_api/items/competitor.rb +7 -0
- data/lib/quakelive_api/items/favourite.rb +7 -0
- data/lib/quakelive_api/items/model.rb +7 -0
- data/lib/quakelive_api/items/recent_game.rb +7 -0
- data/lib/quakelive_api/items/record.rb +7 -0
- data/lib/quakelive_api/items/structurable.rb +13 -0
- data/lib/quakelive_api/items/weapon.rb +7 -0
- data/lib/quakelive_api/parser/awards.rb +50 -0
- data/lib/quakelive_api/parser/base.rb +33 -0
- data/lib/quakelive_api/parser/statistics.rb +81 -0
- data/lib/quakelive_api/parser/summary.rb +174 -0
- data/lib/quakelive_api/profile/awards/base.rb +24 -0
- data/lib/quakelive_api/profile/awards/career_milestones.rb +14 -0
- data/lib/quakelive_api/profile/awards/experience.rb +14 -0
- data/lib/quakelive_api/profile/awards/mad_skillz.rb +14 -0
- data/lib/quakelive_api/profile/awards/social_life.rb +15 -0
- data/lib/quakelive_api/profile/awards/sweet_success.rb +14 -0
- data/lib/quakelive_api/profile/statistics.rb +18 -0
- data/lib/quakelive_api/profile/summary.rb +35 -0
- data/lib/quakelive_api/profile.rb +43 -0
- data/lib/quakelive_api/version.rb +3 -0
- data/lib/quakelive_api.rb +38 -0
- data/quakelive_api.gemspec +28 -0
- data/test/fixtures/awards/career.txt +382 -0
- data/test/fixtures/awards/experience.txt +769 -0
- data/test/fixtures/awards/mad_skillz.txt +915 -0
- data/test/fixtures/awards/social_life.txt +155 -0
- data/test/fixtures/awards/sweet_success.txt +684 -0
- data/test/fixtures/profile/error.txt +24 -0
- data/test/fixtures/profile/not_found.txt +36 -0
- data/test/fixtures/profile/summary.txt +383 -0
- data/test/fixtures/statistics/emqz.txt +431 -0
- data/test/fixtures/statistics/xsi.txt +558 -0
- data/test/fixtures/summary/emqz.txt +304 -0
- data/test/fixtures/summary/mariano.txt +380 -0
- data/test/quakelive_api/game_time_test.rb +51 -0
- data/test/quakelive_api/profile/awards/career_milestones_test.rb +38 -0
- data/test/quakelive_api/profile/awards/experience_test.rb +38 -0
- data/test/quakelive_api/profile/awards/mad_skillz_test.rb +38 -0
- data/test/quakelive_api/profile/awards/social_life_test.rb +38 -0
- data/test/quakelive_api/profile/awards/sweet_success_test.rb +38 -0
- data/test/quakelive_api/profile/statistics_test.rb +75 -0
- data/test/quakelive_api/profile/summary_test.rb +97 -0
- data/test/quakelive_api/profile_test.rb +67 -0
- data/test/test_helper.rb +47 -0
- metadata +220 -0
@@ -0,0 +1,75 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
describe "QuakeliveApi::Profile::Statistics" do
|
4
|
+
make_my_diffs_pretty!()
|
5
|
+
|
6
|
+
describe "black box test for" do
|
7
|
+
before { stub_stats_request(profile, fixture_statistics(profile)) }
|
8
|
+
subject { QuakeliveApi::Profile::Statistics.new(profile) }
|
9
|
+
|
10
|
+
describe "xsi" do
|
11
|
+
let(:profile) { "xsi" }
|
12
|
+
|
13
|
+
it "fetches proper stats for weapons" do
|
14
|
+
[
|
15
|
+
['Gauntlet', 185, nil, nil, nil, 1],
|
16
|
+
['Machinegun', 1232, 29, 64253, 225055, 9],
|
17
|
+
['Shotgun', 2091, 27, 25180, 91693, 9],
|
18
|
+
['Grenade Launcher', 241, 10, 1383, 14163, 3],
|
19
|
+
['Rocket Launcher', 4032, 34, 28182, 83256, 39],
|
20
|
+
['Lightning Gun', 2048, 28, 84326, 304674, 15],
|
21
|
+
['Railgun', 2368, 38, 8339, 21946, 19],
|
22
|
+
['Plasma Gun', 708, 13, 10253, 77655, 5],
|
23
|
+
['BFG', 4, 49, 26, 53, 0],
|
24
|
+
['Chaingun', 37, 21, 1111, 5358, 0],
|
25
|
+
['Nailgun', 18, 13, 466, 3495, 0],
|
26
|
+
['Proximity Mine', 7, 24, 40, 164, 0]
|
27
|
+
].each_with_index do |weapon, index|
|
28
|
+
assert_equal subject.weapons[index], QuakeliveApi::Items::Weapon.new(*weapon)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
it "fetches proper stats for records" do
|
33
|
+
[
|
34
|
+
['Clan Arena', 13, 13, 7, 0, 100, 54],
|
35
|
+
['Capture The Flag', 74, 67, 39, 7, 91, 53],
|
36
|
+
['Free For All', 31, 27, 10, 4, 87, 32],
|
37
|
+
['Domination', 16, 16, 11, 0, 100, 69],
|
38
|
+
['Freeze Tag', 1, 0, 0, 1, 0, 0],
|
39
|
+
['Team Deathmatch', 155, 142, 79, 13, 92, 51],
|
40
|
+
['Duel', 532, 503, 210, 29, 95, 39],
|
41
|
+
['Total', 822, 768, 356, 54, 93, 43]
|
42
|
+
].each_with_index do |record, index|
|
43
|
+
assert_equal subject.records[index], QuakeliveApi::Items::Record.new(*record)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "emqz" do
|
49
|
+
let(:profile) { "emqz" }
|
50
|
+
|
51
|
+
it "fetches proper stats for weapons" do
|
52
|
+
[
|
53
|
+
['Gauntlet', 0, nil, nil, nil, 0],
|
54
|
+
['Machinegun', 0, 0, 0, 0, 0],
|
55
|
+
['Shotgun', 0, 0, 0, 0, 0],
|
56
|
+
['Grenade Launcher', 0, 0, 0, 0, 0],
|
57
|
+
['Rocket Launcher', 0, 0, 0, 0, 0],
|
58
|
+
['Lightning Gun', 0, 0, 0, 0, 0],
|
59
|
+
['Railgun', 0, 0, 0, 0, 0],
|
60
|
+
['Plasma Gun', 0, 0, 0, 0, 0],
|
61
|
+
['BFG', 0, 0, 0, 0, 0],
|
62
|
+
['Chaingun', 0, 0, 0, 0, 0],
|
63
|
+
['Nailgun', 0, 0, 0, 0, 0],
|
64
|
+
['Proximity Mine', 0, 0, 0, 0, 0]
|
65
|
+
].each_with_index do |weapon, index|
|
66
|
+
assert_equal subject.weapons[index], QuakeliveApi::Items::Weapon.new(*weapon)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
it "fetches proper stats for records" do
|
71
|
+
assert_equal subject.records, nil
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
describe "QuakeliveApi::Profile::Summary" do
|
4
|
+
make_my_diffs_pretty!
|
5
|
+
|
6
|
+
describe "black box test for" do
|
7
|
+
before { stub_summary_request(profile, fixture_summary(profile)) }
|
8
|
+
subject { QuakeliveApi::Profile::Summary.new(profile) }
|
9
|
+
|
10
|
+
describe "emqz" do
|
11
|
+
let(:profile) { "emqz" }
|
12
|
+
|
13
|
+
its(:country) { must_equal "Poland" }
|
14
|
+
its(:nick) { must_equal "emqz"}
|
15
|
+
its(:clan) { must_equal nil }
|
16
|
+
|
17
|
+
its(:model) { must_equal QuakeliveApi::Items::Model.new(
|
18
|
+
"Major / Default",
|
19
|
+
"http://cdn.quakelive.com/web/2013071600/images/players/body_md/major_default_v2013071600.0.png") }
|
20
|
+
|
21
|
+
its(:member_since) { must_equal Date.parse('23.06.2013') }
|
22
|
+
its(:last_game) { must_equal nil }
|
23
|
+
its(:time_played) { must_equal nil }
|
24
|
+
its(:wins) { must_equal 0 }
|
25
|
+
its(:losses) { must_equal 0 }
|
26
|
+
its(:quits) { must_equal 0 }
|
27
|
+
its(:frags) { must_equal 0 }
|
28
|
+
its(:deaths) { must_equal 0 }
|
29
|
+
its(:hits) { must_equal 0 }
|
30
|
+
its(:shots) { must_equal 0 }
|
31
|
+
its(:accuracy) { must_equal 0.0 }
|
32
|
+
its(:favourite) { must_equal QuakeliveApi::Items::Favourite.new(nil, nil, nil) }
|
33
|
+
its(:recent_awards) { must_equal nil }
|
34
|
+
its(:recent_games) { must_equal nil }
|
35
|
+
its(:recent_competitors) { must_equal nil }
|
36
|
+
end
|
37
|
+
|
38
|
+
describe "mariano" do
|
39
|
+
let(:profile){ "mariano" }
|
40
|
+
|
41
|
+
its(:country) { must_equal "Poland" }
|
42
|
+
its(:nick) { must_equal "Mariano"}
|
43
|
+
its(:clan) { must_equal nil }
|
44
|
+
|
45
|
+
its(:model) { must_equal QuakeliveApi::Items::Model.new(
|
46
|
+
"Bitterman / Default",
|
47
|
+
"http://cdn.quakelive.com/web/2013071600/images/players/body_md/bitterman_default_v2013071600.0.png") }
|
48
|
+
|
49
|
+
its(:member_since) { must_equal Date.parse('7.02.2009') }
|
50
|
+
its(:last_game) { must_equal Time.parse('11-07-2013 2:59 PM') }
|
51
|
+
its(:time_played) { must_equal QuakeliveApi::GameTime.new("Ranked Time: 52.19:25:52 Unranked Time: 02:31:02") }
|
52
|
+
its(:wins) { must_equal 4278 }
|
53
|
+
its(:losses) { must_equal 3015 }
|
54
|
+
its(:quits) { must_equal 518 }
|
55
|
+
its(:frags) { must_equal 97_102 }
|
56
|
+
its(:deaths) { must_equal 88_381 }
|
57
|
+
its(:hits) { must_equal 1_960_767 }
|
58
|
+
its(:shots) { must_equal 6_085_608 }
|
59
|
+
its(:accuracy) { must_equal 32.22 }
|
60
|
+
its(:favourite) { must_equal QuakeliveApi::Items::Favourite.new("Furious Heights","Duel","Lightning Gun") }
|
61
|
+
its(:recent_awards) { must_include QuakeliveApi::Items::Award.new(
|
62
|
+
'http://cdn.quakelive.com/web/2013071600/images/awards/md/team_killer_v2013071600.0.png',
|
63
|
+
'Hope you touched the flag first!',
|
64
|
+
'Team Killer',
|
65
|
+
'Awarded 2 months ago',
|
66
|
+
'Kill all players on the opposing team in a single round in Attack & Defend, minimum size 3.') }
|
67
|
+
|
68
|
+
its(:recent_awards) { must_include QuakeliveApi::Items::Award.new(
|
69
|
+
'http://cdn.quakelive.com/web/2013071600/images/awards/md/pql_1_v2013071600.0.png',
|
70
|
+
'Do you think thats air youre breathing now?',
|
71
|
+
'Too Fast',
|
72
|
+
'Awarded 2 months ago',
|
73
|
+
'Complete 1 online PQL match.') }
|
74
|
+
|
75
|
+
its(:recent_games) { must_be_instance_of Array }
|
76
|
+
its(:recent_games) { wont_include nil }
|
77
|
+
its(:recent_games) { must_include QuakeliveApi::Items::RecentGame.new(
|
78
|
+
'TDM',
|
79
|
+
'Loss',
|
80
|
+
'20 days ago',
|
81
|
+
'http://cdn.quakelive.com/web/2013071600/images/levelshots/lg/hiddenfortress_v2013071600.0.jpg')
|
82
|
+
}
|
83
|
+
|
84
|
+
its(:recent_competitors) { wont_include nil }
|
85
|
+
its(:recent_competitors) { must_be_instance_of Array }
|
86
|
+
its(:recent_competitors) { must_include QuakeliveApi::Items::Competitor.new(
|
87
|
+
'http://cdn.quakelive.com/web/2013071600/images/players/icon_lg/bitterman_red_v2013071600.0.png',
|
88
|
+
'Jeezy',
|
89
|
+
Time.parse('2013-07-11 14:59:00'))}
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
describe "QuakeliveApi::Profile" do
|
4
|
+
|
5
|
+
describe "on error" do
|
6
|
+
it "raises an exception on non existing profiles" do
|
7
|
+
stub_summary_request "not-here", fixture_profile("not_found")
|
8
|
+
profile = QuakeliveApi::Profile.new('not-here')
|
9
|
+
assert_raises(QuakeliveApi::Error::PlayerNotFound) { profile.summary }
|
10
|
+
end
|
11
|
+
|
12
|
+
it "raises an exception on request error response from ql" do
|
13
|
+
stub_summary_request "error-profile", fixture_profile("error")
|
14
|
+
profile = QuakeliveApi::Profile.new('error-profile')
|
15
|
+
assert_raises(QuakeliveApi::Error::RequestError) { profile.summary }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "on success" do
|
20
|
+
it "returns an instance of summary class on 'summary' call" do
|
21
|
+
stub_summary_request "all-good", fixture_summary("emqz")
|
22
|
+
profile = QuakeliveApi::Profile.new('all-good')
|
23
|
+
assert_instance_of QuakeliveApi::Profile::Summary, profile.summary
|
24
|
+
end
|
25
|
+
|
26
|
+
it "returns an instance of statistics class on 'statistics' call" do
|
27
|
+
stub_stats_request "stats-test", fixture_statistics("xsi")
|
28
|
+
profile = QuakeliveApi::Profile.new('stats-test')
|
29
|
+
assert_instance_of QuakeliveApi::Profile::Statistics, profile.statistics
|
30
|
+
end
|
31
|
+
|
32
|
+
it "returns an instance of career milestones class on 'awards_milestones' call" do
|
33
|
+
profile = QuakeliveApi::Profile.new('awards-test')
|
34
|
+
stub_request(:get, "http://www.quakelive.com/profile/awards/awards-test/3")
|
35
|
+
assert_instance_of QuakeliveApi::Profile::Awards::CareerMilestones, profile.awards_milestones
|
36
|
+
end
|
37
|
+
|
38
|
+
it "returns an instance of experience class on 'awards_experience' call" do
|
39
|
+
profile = QuakeliveApi::Profile.new('awards-test')
|
40
|
+
stub_request(:get, "http://www.quakelive.com/profile/awards/awards-test/1")
|
41
|
+
assert_instance_of QuakeliveApi::Profile::Awards::Experience, profile.awards_experience
|
42
|
+
end
|
43
|
+
|
44
|
+
it "returns an instance of mad skillz class on 'awards_skillz' call" do
|
45
|
+
profile = QuakeliveApi::Profile.new('awards-test')
|
46
|
+
stub_request(:get, "http://www.quakelive.com/profile/awards/awards-test/2")
|
47
|
+
assert_instance_of QuakeliveApi::Profile::Awards::MadSkillz, profile.awards_skillz
|
48
|
+
end
|
49
|
+
|
50
|
+
it "returns an instance of social life class on 'awards_social' call" do
|
51
|
+
profile = QuakeliveApi::Profile.new('awards-test')
|
52
|
+
stub_request(:get, "http://www.quakelive.com/profile/awards/awards-test/5")
|
53
|
+
assert_instance_of QuakeliveApi::Profile::Awards::SocialLife, profile.awards_social
|
54
|
+
end
|
55
|
+
|
56
|
+
it "returns an instance of sweet success class on 'awards_success' call" do
|
57
|
+
profile = QuakeliveApi::Profile.new('awards-test')
|
58
|
+
stub_request(:get, "http://www.quakelive.com/profile/awards/awards-test/4")
|
59
|
+
assert_instance_of QuakeliveApi::Profile::Awards::SweetSuccess, profile.awards_success
|
60
|
+
end
|
61
|
+
|
62
|
+
it "responds to each_award" do
|
63
|
+
profile = QuakeliveApi::Profile.new('awards-test')
|
64
|
+
assert_respond_to(profile, :each_award)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
SimpleCov.start
|
3
|
+
require "minitest/autorun"
|
4
|
+
require "webmock/minitest"
|
5
|
+
|
6
|
+
require "#{File.dirname(__FILE__)}/../lib/quakelive_api"
|
7
|
+
|
8
|
+
def fixtures_path
|
9
|
+
"#{File.dirname(__FILE__)}/fixtures"
|
10
|
+
end
|
11
|
+
|
12
|
+
def fixture_profile(name)
|
13
|
+
File.read "#{fixtures_path}/profile/#{name}.txt"
|
14
|
+
end
|
15
|
+
|
16
|
+
def fixture_summary(name)
|
17
|
+
File.read "#{fixtures_path}/summary/#{name}.txt"
|
18
|
+
end
|
19
|
+
|
20
|
+
def fixture_statistics(name)
|
21
|
+
File.read "#{fixtures_path}/statistics/#{name}.txt"
|
22
|
+
end
|
23
|
+
|
24
|
+
def fixture_awards(name)
|
25
|
+
File.read "#{fixtures_path}/awards/#{name}.txt"
|
26
|
+
end
|
27
|
+
|
28
|
+
def stub_summary_request(profile_name, content)
|
29
|
+
stub_request(:get, "#{QuakeliveApi.site}/profile/summary/#{profile_name}").to_return(content)
|
30
|
+
end
|
31
|
+
|
32
|
+
def stub_stats_request(profile_name, content)
|
33
|
+
stub_request(:get, "#{QuakeliveApi.site}/profile/statistics/#{profile_name}").to_return(content)
|
34
|
+
end
|
35
|
+
|
36
|
+
# taken from its-minitest gem, as I'm used to rspec syntax (and it's quite convenient for blackbox testing)
|
37
|
+
class MiniTest::Spec
|
38
|
+
def self.its attribute, &block
|
39
|
+
describe "verify subject.#{attribute} for" do
|
40
|
+
let(:inner_subject) { subject.send(attribute) }
|
41
|
+
|
42
|
+
it "verify subject.#{attribute} for" do
|
43
|
+
inner_subject.instance_eval &block
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
metadata
ADDED
@@ -0,0 +1,220 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: quakelive_api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Rafal Wojsznis
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-09-21 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: nokogiri
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.5'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.5'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: bundler
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '1.3'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '1.3'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rake
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: minitest
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 5.0.0
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 5.0.0
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: webmock
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 1.12.0
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 1.12.0
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: simplecov
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 0.8.0.pre
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 0.8.0.pre
|
110
|
+
description: Pseudo API for QuakeLive
|
111
|
+
email:
|
112
|
+
- rafal.wojsznis@gmail.com
|
113
|
+
executables: []
|
114
|
+
extensions: []
|
115
|
+
extra_rdoc_files: []
|
116
|
+
files:
|
117
|
+
- .gitignore
|
118
|
+
- .travis.yml
|
119
|
+
- Gemfile
|
120
|
+
- LICENSE.txt
|
121
|
+
- README.md
|
122
|
+
- Rakefile
|
123
|
+
- lib/quakelive_api.rb
|
124
|
+
- lib/quakelive_api/base.rb
|
125
|
+
- lib/quakelive_api/error/player_not_found.rb
|
126
|
+
- lib/quakelive_api/error/request_error.rb
|
127
|
+
- lib/quakelive_api/game_time.rb
|
128
|
+
- lib/quakelive_api/items/award.rb
|
129
|
+
- lib/quakelive_api/items/competitor.rb
|
130
|
+
- lib/quakelive_api/items/favourite.rb
|
131
|
+
- lib/quakelive_api/items/model.rb
|
132
|
+
- lib/quakelive_api/items/recent_game.rb
|
133
|
+
- lib/quakelive_api/items/record.rb
|
134
|
+
- lib/quakelive_api/items/structurable.rb
|
135
|
+
- lib/quakelive_api/items/weapon.rb
|
136
|
+
- lib/quakelive_api/parser/awards.rb
|
137
|
+
- lib/quakelive_api/parser/base.rb
|
138
|
+
- lib/quakelive_api/parser/statistics.rb
|
139
|
+
- lib/quakelive_api/parser/summary.rb
|
140
|
+
- lib/quakelive_api/profile.rb
|
141
|
+
- lib/quakelive_api/profile/awards/base.rb
|
142
|
+
- lib/quakelive_api/profile/awards/career_milestones.rb
|
143
|
+
- lib/quakelive_api/profile/awards/experience.rb
|
144
|
+
- lib/quakelive_api/profile/awards/mad_skillz.rb
|
145
|
+
- lib/quakelive_api/profile/awards/social_life.rb
|
146
|
+
- lib/quakelive_api/profile/awards/sweet_success.rb
|
147
|
+
- lib/quakelive_api/profile/statistics.rb
|
148
|
+
- lib/quakelive_api/profile/summary.rb
|
149
|
+
- lib/quakelive_api/version.rb
|
150
|
+
- quakelive_api.gemspec
|
151
|
+
- test/fixtures/awards/career.txt
|
152
|
+
- test/fixtures/awards/experience.txt
|
153
|
+
- test/fixtures/awards/mad_skillz.txt
|
154
|
+
- test/fixtures/awards/social_life.txt
|
155
|
+
- test/fixtures/awards/sweet_success.txt
|
156
|
+
- test/fixtures/profile/error.txt
|
157
|
+
- test/fixtures/profile/not_found.txt
|
158
|
+
- test/fixtures/profile/summary.txt
|
159
|
+
- test/fixtures/statistics/emqz.txt
|
160
|
+
- test/fixtures/statistics/xsi.txt
|
161
|
+
- test/fixtures/summary/emqz.txt
|
162
|
+
- test/fixtures/summary/mariano.txt
|
163
|
+
- test/quakelive_api/game_time_test.rb
|
164
|
+
- test/quakelive_api/profile/awards/career_milestones_test.rb
|
165
|
+
- test/quakelive_api/profile/awards/experience_test.rb
|
166
|
+
- test/quakelive_api/profile/awards/mad_skillz_test.rb
|
167
|
+
- test/quakelive_api/profile/awards/social_life_test.rb
|
168
|
+
- test/quakelive_api/profile/awards/sweet_success_test.rb
|
169
|
+
- test/quakelive_api/profile/statistics_test.rb
|
170
|
+
- test/quakelive_api/profile/summary_test.rb
|
171
|
+
- test/quakelive_api/profile_test.rb
|
172
|
+
- test/test_helper.rb
|
173
|
+
homepage: https://github.com/emq/quakelive_api
|
174
|
+
licenses:
|
175
|
+
- MIT
|
176
|
+
post_install_message:
|
177
|
+
rdoc_options: []
|
178
|
+
require_paths:
|
179
|
+
- lib
|
180
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
181
|
+
none: false
|
182
|
+
requirements:
|
183
|
+
- - ! '>='
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: '0'
|
186
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
187
|
+
none: false
|
188
|
+
requirements:
|
189
|
+
- - ! '>='
|
190
|
+
- !ruby/object:Gem::Version
|
191
|
+
version: '0'
|
192
|
+
requirements: []
|
193
|
+
rubyforge_project:
|
194
|
+
rubygems_version: 1.8.25
|
195
|
+
signing_key:
|
196
|
+
specification_version: 3
|
197
|
+
summary: Fetch some basic information from QuakeLive site
|
198
|
+
test_files:
|
199
|
+
- test/fixtures/awards/career.txt
|
200
|
+
- test/fixtures/awards/experience.txt
|
201
|
+
- test/fixtures/awards/mad_skillz.txt
|
202
|
+
- test/fixtures/awards/social_life.txt
|
203
|
+
- test/fixtures/awards/sweet_success.txt
|
204
|
+
- test/fixtures/profile/error.txt
|
205
|
+
- test/fixtures/profile/not_found.txt
|
206
|
+
- test/fixtures/profile/summary.txt
|
207
|
+
- test/fixtures/statistics/emqz.txt
|
208
|
+
- test/fixtures/statistics/xsi.txt
|
209
|
+
- test/fixtures/summary/emqz.txt
|
210
|
+
- test/fixtures/summary/mariano.txt
|
211
|
+
- test/quakelive_api/game_time_test.rb
|
212
|
+
- test/quakelive_api/profile/awards/career_milestones_test.rb
|
213
|
+
- test/quakelive_api/profile/awards/experience_test.rb
|
214
|
+
- test/quakelive_api/profile/awards/mad_skillz_test.rb
|
215
|
+
- test/quakelive_api/profile/awards/social_life_test.rb
|
216
|
+
- test/quakelive_api/profile/awards/sweet_success_test.rb
|
217
|
+
- test/quakelive_api/profile/statistics_test.rb
|
218
|
+
- test/quakelive_api/profile/summary_test.rb
|
219
|
+
- test/quakelive_api/profile_test.rb
|
220
|
+
- test/test_helper.rb
|