battlenet-api 0.1.0 → 0.2.0
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 +4 -4
- data/README.md +118 -2
- data/battlenet-api.gemspec +3 -3
- data/lib/battlenet/api.rb +25 -5
- data/lib/battlenet/api/client.rb +12 -8
- data/lib/battlenet/api/configuration.rb +27 -0
- data/lib/battlenet/api/d3_client.rb +2 -6
- data/lib/battlenet/api/sc2_client.rb +2 -6
- data/lib/battlenet/api/version.rb +1 -1
- data/lib/battlenet/api/wow_client.rb +6 -10
- data/spec/battlenetapi_spec.rb +6 -6
- data/spec/d3client_spec.rb +23 -0
- data/spec/sc2client_spec.rb +25 -0
- data/spec/wowclient_spec.rb +75 -0
- metadata +21 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f6009e021ba8b5d67293b21b656dea571e959eb
|
4
|
+
data.tar.gz: 8abe07468e5d82506dd1d7122b639da784bbd9cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7031729ba3fe8595c0c256bc2ce5b71bab92379419b82ad715ac76e90778148737df8690a714251f74c16454ee995f1a645b2b8a97ba017ac0ca135aae75c1aa
|
7
|
+
data.tar.gz: e48e5d71bc7af0633c32ba4787340aec1aac3aa73562f5ea0d18eb5daaa909d140d533cb958296e64ba217b25930823312fcd39c07e9a3738ac9b769fd80dc4b
|
data/README.md
CHANGED
@@ -1,6 +1,122 @@
|
|
1
|
-
# Battlenet API Gem
|
1
|
+
# Battlenet API Gem
|
2
|
+
[](http://badge.fury.io/rb/battlenet-api) [](https://gemnasium.com/goodcodeguy/battlenet-api) [](https://codeclimate.com/github/goodcodeguy/battlenet-api)
|
2
3
|
|
3
|
-
|
4
|
+
## Installation
|
5
|
+
|
6
|
+
`$ gem install battlenet-api`
|
7
|
+
|
8
|
+
## How to Use
|
9
|
+
|
10
|
+
### Configuration
|
11
|
+
|
12
|
+
````ruby
|
13
|
+
Battlenet.configure do |config|
|
14
|
+
config.api_key = 'apikey'
|
15
|
+
config.region = :us
|
16
|
+
end
|
17
|
+
````
|
18
|
+
|
19
|
+
### World of Warcraft Client
|
20
|
+
|
21
|
+
````ruby
|
22
|
+
client = Battlenet.WOWClient
|
23
|
+
|
24
|
+
# Available Methods
|
25
|
+
client.achievement(id)
|
26
|
+
client.auction_data_status(realm)
|
27
|
+
|
28
|
+
client.battlepet_ability(ability_id)
|
29
|
+
client.battlepet_species(species_id)
|
30
|
+
client.battlepet_stats(species_id)
|
31
|
+
|
32
|
+
client.challengemode_realm_leaderboard(realm)
|
33
|
+
client.challengemode_region_leaderboard
|
34
|
+
|
35
|
+
client.character_profile(realm, character_name)
|
36
|
+
client.character_achievements(realm, character_name)
|
37
|
+
client.character_appearance(realm, character_name)
|
38
|
+
client.character_feed(realm, character_name)
|
39
|
+
client.character_guild(realm, character_name)
|
40
|
+
client.character_hunter_pets(realm, character_name)
|
41
|
+
client.character_items(realm, character_name)
|
42
|
+
client.character_mounts(realm, character_name)
|
43
|
+
client.character_pets(realm, character_name)
|
44
|
+
client.character_pet_slots(realm, character_name)
|
45
|
+
client.character_progression(realm, character_name)
|
46
|
+
client.character_pvp(realm, character_name)
|
47
|
+
client.character_quests(realm, character_name)
|
48
|
+
client.character_reputation(realm, character_name)
|
49
|
+
client.character_stats(realm, character_name)
|
50
|
+
client.character_talents(realm, character_name)
|
51
|
+
client.character_titles(realm, character_name)
|
52
|
+
client.character_audit(realm, character_name)
|
53
|
+
|
54
|
+
client.data_battlegroups
|
55
|
+
client.data_character_races
|
56
|
+
client.data_character_classes
|
57
|
+
client.data_character_achievements
|
58
|
+
client.data_guild_rewards
|
59
|
+
client.data_guild_perks
|
60
|
+
client.data_guild_achievements
|
61
|
+
client.data_item_classes
|
62
|
+
client.data_talents
|
63
|
+
client.data_pet_types
|
64
|
+
|
65
|
+
client.guild_profile(realm, guild_name)
|
66
|
+
client.guild_members(realm, guild_name)
|
67
|
+
client.guild_achievements(realm, guild_name)
|
68
|
+
client.guild_news(realm, guild_name)
|
69
|
+
client.guild_challenge(realm, guild_name)
|
70
|
+
|
71
|
+
client.item(item_id)
|
72
|
+
client.item_set(set_id)
|
73
|
+
|
74
|
+
client.pvp_leaderboards(bracket)
|
75
|
+
|
76
|
+
client.quest(quest_id)
|
77
|
+
|
78
|
+
client.realm_status
|
79
|
+
|
80
|
+
client.recipe(recipe_id)
|
81
|
+
|
82
|
+
client.spell(spell_id)
|
83
|
+
|
84
|
+
````
|
85
|
+
|
86
|
+
### Diablo 3 Client
|
87
|
+
|
88
|
+
````ruby
|
89
|
+
client = Battlenet.D3Client
|
90
|
+
|
91
|
+
#Available Methods
|
92
|
+
|
93
|
+
client.data_item(data_id)
|
94
|
+
client.data_follower(follower_id)
|
95
|
+
client.data_artisan(artisan_id)
|
96
|
+
|
97
|
+
client.career_profile(battletag)
|
98
|
+
client.hero_profile(battletag,hero_id)
|
99
|
+
````
|
100
|
+
|
101
|
+
### Starcraft 2 Client
|
102
|
+
|
103
|
+
````ruby
|
104
|
+
client = Battlenet.S2Client
|
105
|
+
|
106
|
+
#Available Methods
|
107
|
+
|
108
|
+
client.achievements
|
109
|
+
client.rewards
|
110
|
+
|
111
|
+
client.ladder(ladder_id)
|
112
|
+
|
113
|
+
client.profile(id, region, name)
|
114
|
+
client.profile_ladders(id, region, name)
|
115
|
+
client.profile_match_history(id, region, name)
|
116
|
+
````
|
117
|
+
|
118
|
+
|
119
|
+
## TODO
|
4
120
|
|
5
121
|
- Community OAuth Profile APIs
|
6
122
|
- Account APIs
|
data/battlenet-api.gemspec
CHANGED
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.
|
22
|
-
spec.
|
21
|
+
spec.add_runtime_dependency "httparty", "~> 0.13"
|
22
|
+
spec.add_runtime_dependency "oauth2", "~> 1.0"
|
23
23
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.7"
|
25
25
|
spec.add_development_dependency "rake", "~> 10.0"
|
26
|
-
spec.add_development_dependency "rspec"
|
26
|
+
spec.add_development_dependency "rspec", "~> 3.1"
|
27
27
|
end
|
data/lib/battlenet/api.rb
CHANGED
@@ -1,6 +1,26 @@
|
|
1
|
-
require '
|
1
|
+
require File.expand_path('../api/version', __FILE__)
|
2
2
|
|
3
|
-
require '
|
4
|
-
require '
|
5
|
-
require '
|
6
|
-
require '
|
3
|
+
require File.expand_path('../api/configuration', __FILE__)
|
4
|
+
require File.expand_path('../api/client', __FILE__)
|
5
|
+
require File.expand_path('../api/wow_client', __FILE__)
|
6
|
+
require File.expand_path('../api/d3_client', __FILE__)
|
7
|
+
require File.expand_path('../api/sc2_client', __FILE__)
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
module Battlenet
|
12
|
+
extend Configuration
|
13
|
+
|
14
|
+
def self.WOWClient(options={})
|
15
|
+
Battlenet::WOWClient.new(options)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.SC2Client(options={})
|
19
|
+
Battlenet::SC2Client.new(options)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.D3Client(options={})
|
23
|
+
Battlenet::D3Client.new(options)
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
data/lib/battlenet/api/client.rb
CHANGED
@@ -6,19 +6,23 @@ module Battlenet
|
|
6
6
|
class Client
|
7
7
|
include HTTParty
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
@api_key = api_key
|
12
|
-
@endpoint = nil
|
9
|
+
attr_accessor *Configuration::OPTIONS_KEYS
|
13
10
|
|
14
|
-
|
11
|
+
def initialize(options={})
|
12
|
+
|
13
|
+
options = Battlenet.options.merge(client_defaults)
|
14
|
+
options = Battlenet.options.merge(options)
|
15
|
+
|
16
|
+
Configuration::OPTIONS_KEYS.each do |key|
|
17
|
+
send("#{key}=", options[key])
|
18
|
+
end
|
15
19
|
|
16
20
|
self.class.base_uri "https://#{domain}#{endpoint}"
|
17
21
|
|
18
22
|
end
|
19
23
|
|
20
|
-
def
|
21
|
-
domain = case region
|
24
|
+
def domain
|
25
|
+
domain = case @region
|
22
26
|
when :us
|
23
27
|
'us.api.battle.net'
|
24
28
|
when :eu
|
@@ -58,4 +62,4 @@ module Battlenet
|
|
58
62
|
|
59
63
|
end
|
60
64
|
|
61
|
-
end
|
65
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Battlenet
|
2
|
+
module Configuration
|
3
|
+
|
4
|
+
OPTIONS_KEYS = [
|
5
|
+
:api_key,
|
6
|
+
:region,
|
7
|
+
:endpoint
|
8
|
+
].freeze
|
9
|
+
|
10
|
+
DEFAULT_API_KEY = nil
|
11
|
+
DEFAULT_ENDPOINT = nil
|
12
|
+
DEFAULT_REGION = :us
|
13
|
+
|
14
|
+
attr_accessor *OPTIONS_KEYS
|
15
|
+
|
16
|
+
def configure
|
17
|
+
yield self
|
18
|
+
end
|
19
|
+
|
20
|
+
def options
|
21
|
+
OPTIONS_KEYS.inject({}) do |option, key|
|
22
|
+
option.merge!(key => send(key))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
@@ -10,12 +10,8 @@ module Battlenet
|
|
10
10
|
|
11
11
|
include Battlenet::SC2
|
12
12
|
|
13
|
-
def
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
def endpoint
|
18
|
-
@endpoint = '/sc2'
|
13
|
+
def client_defaults
|
14
|
+
{ :endpoint => '/sc2', :region => :us }
|
19
15
|
end
|
20
16
|
|
21
17
|
end
|
@@ -16,18 +16,14 @@ require 'battlenet/modules/wow/data'
|
|
16
16
|
|
17
17
|
module Battlenet
|
18
18
|
|
19
|
-
|
19
|
+
class WOWClient < Client
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
def initialize(api_key = nil, region = :us)
|
24
|
-
super(api_key, region)
|
25
|
-
end
|
26
|
-
|
27
|
-
def endpoint
|
28
|
-
@endpoint = '/wow'
|
29
|
-
end
|
21
|
+
include Battlenet::WOW
|
30
22
|
|
23
|
+
def client_defaults
|
24
|
+
{ :endpoint => '/wow', :region => :us }
|
31
25
|
end
|
32
26
|
|
27
|
+
end
|
28
|
+
|
33
29
|
end
|
data/spec/battlenetapi_spec.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
require 'battlenet/api'
|
2
2
|
|
3
3
|
describe Battlenet::Client do
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
before(:all) do
|
5
|
+
Battlenet.configure do |config|
|
6
|
+
config.api_key = 'test-api'
|
7
|
+
config.region = :us
|
8
|
+
end
|
7
9
|
end
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
end
|
11
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'battlenet/api'
|
2
|
+
|
3
|
+
describe Battlenet::D3Client do
|
4
|
+
before(:all) do
|
5
|
+
Battlenet.configure do |config|
|
6
|
+
config.api_key = 'test-d3client-api'
|
7
|
+
config.region = :us
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should pass the api key to the d3 client" do
|
12
|
+
c = Battlenet.D3Client
|
13
|
+
expect(c.api_key).to eq('test-d3client-api')
|
14
|
+
end
|
15
|
+
|
16
|
+
it { should respond_to(:data_item) }
|
17
|
+
it { should respond_to(:data_follower) }
|
18
|
+
it { should respond_to(:data_artisan) }
|
19
|
+
|
20
|
+
it { should respond_to(:career_profile) }
|
21
|
+
it { should respond_to(:hero_profile) }
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'battlenet/api'
|
2
|
+
|
3
|
+
describe Battlenet::SC2Client do
|
4
|
+
before(:all) do
|
5
|
+
Battlenet.configure do |config|
|
6
|
+
config.api_key = 'test-sc2client-api'
|
7
|
+
config.region = :us
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should pass the api key to the SC2 client" do
|
12
|
+
c = Battlenet.SC2Client
|
13
|
+
expect(c.api_key).to eq('test-sc2client-api')
|
14
|
+
end
|
15
|
+
|
16
|
+
it { should respond_to(:achievements) }
|
17
|
+
it { should respond_to(:rewards) }
|
18
|
+
|
19
|
+
it { should respond_to(:ladder) }
|
20
|
+
|
21
|
+
it { should respond_to(:profile) }
|
22
|
+
it { should respond_to(:profile_ladders) }
|
23
|
+
it { should respond_to(:profile_match_history) }
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'battlenet/api'
|
2
|
+
|
3
|
+
describe Battlenet::WOWClient do
|
4
|
+
before(:all) do
|
5
|
+
Battlenet.configure do |config|
|
6
|
+
config.api_key = 'test-wow-api-key'
|
7
|
+
config.region = :us
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should pass the api key to the wow client" do
|
12
|
+
c = Battlenet.WOWClient
|
13
|
+
expect(c.api_key).to eq('test-wow-api-key')
|
14
|
+
end
|
15
|
+
|
16
|
+
it { should respond_to(:achievement) }
|
17
|
+
it { should respond_to(:auction_data_status) }
|
18
|
+
|
19
|
+
it { should respond_to(:battlepet_ability) }
|
20
|
+
it { should respond_to(:battlepet_species) }
|
21
|
+
it { should respond_to(:battlepet_stats) }
|
22
|
+
|
23
|
+
it { should respond_to(:challengemode_realm_leaderboard) }
|
24
|
+
it { should respond_to(:challengemode_region_leaderboard) }
|
25
|
+
|
26
|
+
it { should respond_to(:character_profile) }
|
27
|
+
it { should respond_to(:character_achievements) }
|
28
|
+
it { should respond_to(:character_appearance) }
|
29
|
+
it { should respond_to(:character_feed) }
|
30
|
+
it { should respond_to(:character_guild) }
|
31
|
+
it { should respond_to(:character_hunter_pets) }
|
32
|
+
it { should respond_to(:character_items) }
|
33
|
+
it { should respond_to(:character_mounts) }
|
34
|
+
it { should respond_to(:character_pets) }
|
35
|
+
it { should respond_to(:character_pet_slots) }
|
36
|
+
it { should respond_to(:character_progression) }
|
37
|
+
it { should respond_to(:character_pvp) }
|
38
|
+
it { should respond_to(:character_quests) }
|
39
|
+
it { should respond_to(:character_reputation) }
|
40
|
+
it { should respond_to(:character_stats) }
|
41
|
+
it { should respond_to(:character_talents) }
|
42
|
+
it { should respond_to(:character_titles) }
|
43
|
+
it { should respond_to(:character_audit) }
|
44
|
+
|
45
|
+
it { should respond_to(:data_battlegroups) }
|
46
|
+
it { should respond_to(:data_character_races) }
|
47
|
+
it { should respond_to(:data_character_classes) }
|
48
|
+
it { should respond_to(:data_character_achievements) }
|
49
|
+
it { should respond_to(:data_guild_rewards) }
|
50
|
+
it { should respond_to(:data_guild_perks) }
|
51
|
+
it { should respond_to(:data_guild_achievements) }
|
52
|
+
it { should respond_to(:data_item_classes) }
|
53
|
+
it { should respond_to(:data_talents) }
|
54
|
+
it { should respond_to(:data_pet_types) }
|
55
|
+
|
56
|
+
it { should respond_to(:guild_profile) }
|
57
|
+
it { should respond_to(:guild_members) }
|
58
|
+
it { should respond_to(:guild_achievements) }
|
59
|
+
it { should respond_to(:guild_news) }
|
60
|
+
it { should respond_to(:guild_challenge) }
|
61
|
+
|
62
|
+
it { should respond_to(:item) }
|
63
|
+
it { should respond_to(:item_set) }
|
64
|
+
|
65
|
+
it { should respond_to(:pvp_leaderboards)}
|
66
|
+
|
67
|
+
it { should respond_to(:quest) }
|
68
|
+
|
69
|
+
it { should respond_to(:realm_status) }
|
70
|
+
|
71
|
+
it { should respond_to(:recipe) }
|
72
|
+
|
73
|
+
it { should respond_to(:spell) }
|
74
|
+
|
75
|
+
end
|
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: battlenet-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- goodcodeguy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
19
|
+
version: '0.13'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
26
|
+
version: '0.13'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: oauth2
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
33
|
+
version: '1.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
40
|
+
version: '1.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -70,16 +70,16 @@ dependencies:
|
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '3.1'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '3.1'
|
83
83
|
description: API Wrapper for the Battlenet API
|
84
84
|
email:
|
85
85
|
- goodcodeguy@gmail.com
|
@@ -96,6 +96,7 @@ files:
|
|
96
96
|
- examples/example_oauth.rb
|
97
97
|
- lib/battlenet/api.rb
|
98
98
|
- lib/battlenet/api/client.rb
|
99
|
+
- lib/battlenet/api/configuration.rb
|
99
100
|
- lib/battlenet/api/d3_client.rb
|
100
101
|
- lib/battlenet/api/sc2_client.rb
|
101
102
|
- lib/battlenet/api/version.rb
|
@@ -119,6 +120,9 @@ files:
|
|
119
120
|
- lib/battlenet/modules/wow/recipe.rb
|
120
121
|
- lib/battlenet/modules/wow/spell.rb
|
121
122
|
- spec/battlenetapi_spec.rb
|
123
|
+
- spec/d3client_spec.rb
|
124
|
+
- spec/sc2client_spec.rb
|
125
|
+
- spec/wowclient_spec.rb
|
122
126
|
homepage: https://github.com/goodcodeguy/battlenet-api
|
123
127
|
licenses:
|
124
128
|
- MIT
|
@@ -145,3 +149,6 @@ specification_version: 4
|
|
145
149
|
summary: Battlenet Client API
|
146
150
|
test_files:
|
147
151
|
- spec/battlenetapi_spec.rb
|
152
|
+
- spec/d3client_spec.rb
|
153
|
+
- spec/sc2client_spec.rb
|
154
|
+
- spec/wowclient_spec.rb
|