battlenet-api 0.2.1 → 0.3.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 +31 -59
- data/examples/sandbox.rb +14 -0
- data/lib/battlenet/api/api_response.rb +4 -10
- data/lib/battlenet/api/version.rb +1 -1
- data/lib/battlenet/api/wow_client.rb +68 -8
- data/lib/battlenet/api.rb +1 -1
- data/lib/battlenet/modules/wow/achievement.rb +13 -5
- data/lib/battlenet/modules/wow/auction.rb +19 -0
- data/lib/battlenet/modules/wow/character_profile.rb +65 -93
- data/lib/battlenet/modules/wow/data.rb +47 -32
- data/lib/battlenet/modules/wow/guild_profile.rb +35 -0
- data/lib/battlenet/modules/wow/item.rb +12 -10
- data/lib/battlenet/modules/wow/item_set.rb +19 -0
- data/lib/battlenet/modules/wow/pvp_leaderboard.rb +19 -0
- data/lib/battlenet/modules/wow/quest.rb +15 -7
- data/lib/battlenet/modules/wow/realm.rb +13 -6
- data/lib/battlenet/modules/wow/recipe.rb +14 -6
- data/lib/battlenet/modules/wow/spell.rb +14 -6
- data/spec/wow/characterprofile_spec.rb +24 -0
- data/spec/wow/guildprofile_spec.rb +11 -0
- data/spec/wowclient_spec.rb +7 -53
- metadata +11 -8
- data/lib/battlenet/modules/wow/auction_data_status.rb +0 -11
- data/lib/battlenet/modules/wow/battlepet.rb +0 -21
- data/lib/battlenet/modules/wow/challenge_mode.rb +0 -14
- data/lib/battlenet/modules/wow/character/character_profile.rb +0 -18
- data/lib/battlenet/modules/wow/guild.rb +0 -55
- data/lib/battlenet/modules/wow/pvp.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a316e32b012140e2b53da8b7e7608cf794d08ed
|
4
|
+
data.tar.gz: dc4ecf71a16d9c6c7c9553f9b2d0814aff508656
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b65070319198a863fd5e8110f42d6ca1e9de6d6b73f8c06cb3d9391eb7a791fc61bd752a69bf638073593fd68bdacf006b338576f1ca4b9df866a40c9a426331
|
7
|
+
data.tar.gz: 5029706a8cbab86b241a855100f96032b8c19a1146bd1fc0b8c10b73e6a29cf3b3505d9b4824151b6fac2471f22c2063f3d8537f4fc7f7b684d755a8d482e918
|
data/README.md
CHANGED
@@ -21,65 +21,37 @@ end
|
|
21
21
|
````ruby
|
22
22
|
client = Battlenet.WOWClient
|
23
23
|
|
24
|
-
|
25
|
-
client.
|
26
|
-
client.
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
client.
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
client.
|
39
|
-
|
40
|
-
|
41
|
-
client.
|
42
|
-
|
43
|
-
|
44
|
-
client.
|
45
|
-
|
46
|
-
|
47
|
-
client.
|
48
|
-
|
49
|
-
|
50
|
-
client.
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
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)
|
24
|
+
achievement = client.achievement({:achievement => 'achievement_id'})
|
25
|
+
auction_data = client.auction({:realm => 'realm'})
|
26
|
+
character = client.character_profile({:realm => 'realm', :character_name => 'character_name'})
|
27
|
+
|
28
|
+
# TODO: character methods
|
29
|
+
|
30
|
+
guild = client.guild_profile({:realm => 'realm', :guild_name => 'guild_name'})
|
31
|
+
|
32
|
+
# TODO: guild methods
|
33
|
+
|
34
|
+
data = client.data
|
35
|
+
|
36
|
+
# TODO: data methods
|
37
|
+
|
38
|
+
item = client.item({:item => 'item_id'})
|
39
|
+
puts item.details
|
40
|
+
|
41
|
+
item = client.item_set({:item_set => 'item_set_id'})
|
42
|
+
puts item.details
|
43
|
+
|
44
|
+
pvp_leaderboards = client.pvp_leaderboards({:bracket => 'bracket'})
|
45
|
+
puts pvp_leaderboards.details
|
46
|
+
|
47
|
+
quest = client.quest({:quest => 'quest_id'})
|
48
|
+
puts quest.details
|
49
|
+
|
50
|
+
recipe = client.recipe({:recipe => 'recipe_id'})
|
51
|
+
puts recipe.details
|
52
|
+
|
53
|
+
spell = client.spell({:spell => 'spell_id'})
|
54
|
+
puts spell.details
|
83
55
|
|
84
56
|
````
|
85
57
|
|
data/examples/sandbox.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'battlenet/api'
|
2
|
+
|
3
|
+
Battlenet.configure do |config|
|
4
|
+
config.api_key = '5g856v32mx5bwx3rwxzkt9z9yrehtuq2'
|
5
|
+
config.region = :us
|
6
|
+
end
|
7
|
+
|
8
|
+
wow_client = Battlenet.WOWClient
|
9
|
+
|
10
|
+
guild = wow_client.guild_profile({:realm => "sargeras", :guild_name => "midwinter"})
|
11
|
+
puts guild.profile
|
12
|
+
|
13
|
+
character = wow_client.character_profile({:realm => 'sargeras', :character_name => 'Silverwinter'})
|
14
|
+
puts character.profile
|
@@ -1,22 +1,16 @@
|
|
1
1
|
module Battlenet
|
2
2
|
class APIResponse
|
3
3
|
|
4
|
+
attr_accessor :data
|
5
|
+
|
4
6
|
def initialize(options={})
|
5
7
|
@data = []
|
6
8
|
@client = options[:client]
|
7
9
|
end
|
8
10
|
|
9
|
-
def get_data
|
11
|
+
def get_data(path, options)
|
10
12
|
unless @client.nil?
|
11
|
-
@data = @client.get
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
def method_missing *args
|
16
|
-
if @data.has_key? args[0].to_s
|
17
|
-
@data[args[0].to_s]
|
18
|
-
else
|
19
|
-
super
|
13
|
+
@data = @client.get(path, options)
|
20
14
|
end
|
21
15
|
end
|
22
16
|
|
@@ -1,31 +1,91 @@
|
|
1
1
|
require 'battlenet/api/client'
|
2
2
|
|
3
|
-
require 'battlenet/modules/wow/achievement'
|
4
|
-
require 'battlenet/modules/wow/auction_data_status'
|
5
|
-
require 'battlenet/modules/wow/battlepet'
|
6
|
-
require 'battlenet/modules/wow/challenge_mode'
|
7
3
|
require 'battlenet/modules/wow/character_profile'
|
8
|
-
require 'battlenet/modules/wow/
|
4
|
+
require 'battlenet/modules/wow/guild_profile'
|
9
5
|
require 'battlenet/modules/wow/item'
|
10
|
-
require 'battlenet/modules/wow/
|
6
|
+
require 'battlenet/modules/wow/item_set'
|
7
|
+
require 'battlenet/modules/wow/achievement'
|
8
|
+
require 'battlenet/modules/wow/auction'
|
9
|
+
require 'battlenet/modules/wow/pvp_leaderboard'
|
11
10
|
require 'battlenet/modules/wow/quest'
|
12
11
|
require 'battlenet/modules/wow/realm'
|
13
12
|
require 'battlenet/modules/wow/recipe'
|
14
13
|
require 'battlenet/modules/wow/spell'
|
15
14
|
require 'battlenet/modules/wow/data'
|
16
15
|
|
16
|
+
#Dir[File.expand_path('../modules/wow/*.rb', __FILE__)].each{|f| require f}
|
17
|
+
|
17
18
|
module Battlenet
|
18
19
|
|
19
20
|
class WOWClient < Client
|
20
|
-
include Battlenet::WOW
|
21
21
|
|
22
22
|
def initialize(options = {})
|
23
23
|
client_settings = { :endpoint => '/wow' }
|
24
24
|
client_settings = client_settings.merge(options)
|
25
|
-
|
25
|
+
|
26
26
|
super(client_settings)
|
27
27
|
end
|
28
28
|
|
29
|
+
def character_profile(options = {})
|
30
|
+
opts = options.merge({:client => self})
|
31
|
+
Battlenet::WOW::CharacterProfile.new(opts)
|
32
|
+
end
|
33
|
+
|
34
|
+
def guild_profile(options = {})
|
35
|
+
opts = options.merge({:client => self})
|
36
|
+
Battlenet::WOW::GuildProfile.new(opts)
|
37
|
+
end
|
38
|
+
|
39
|
+
def item(options = {})
|
40
|
+
opts = options.merge({:client => self})
|
41
|
+
Battlenet::WOW::Item.new(opts)
|
42
|
+
end
|
43
|
+
|
44
|
+
def item_set(options = {})
|
45
|
+
opts = options.merge({:client => self})
|
46
|
+
Battlenet::WOW::ItemSet.new(opts)
|
47
|
+
end
|
48
|
+
|
49
|
+
def achievement(options = {})
|
50
|
+
opts = options.merge({:client => self})
|
51
|
+
Battlenet::WOW::Achievement.new(opts)
|
52
|
+
end
|
53
|
+
|
54
|
+
def auction(options = {})
|
55
|
+
opts = options.merge({:client => self})
|
56
|
+
Battlenet::WOW::Auction.new(opts)
|
57
|
+
end
|
58
|
+
|
59
|
+
def pvp_leaderboard(options = {})
|
60
|
+
opts = options.merge({:client => self})
|
61
|
+
Battlenet::WOW::PVPLeaderboard.new(opts)
|
62
|
+
end
|
63
|
+
|
64
|
+
def quest(options = {})
|
65
|
+
opts = options.merge({:client => self})
|
66
|
+
Battlenet::WOW::Quest.new(opts)
|
67
|
+
end
|
68
|
+
|
69
|
+
def realm(options = {})
|
70
|
+
opts = options.merge({:client => self})
|
71
|
+
Battlenet::WOW::Realm.new(opts)
|
72
|
+
end
|
73
|
+
|
74
|
+
def recipe(options = {})
|
75
|
+
opts = options.merge({:client => self})
|
76
|
+
Battlenet::WOW::Recipe.new(opts)
|
77
|
+
end
|
78
|
+
|
79
|
+
def spell(options = {})
|
80
|
+
opts = options.merge({:client => self})
|
81
|
+
Battlenet::WOW::Spell.new(opts)
|
82
|
+
end
|
83
|
+
|
84
|
+
def data(options = {})
|
85
|
+
opts = options.merge({:client => self})
|
86
|
+
Battlenet::WOW::Data.new(opts)
|
87
|
+
end
|
88
|
+
|
29
89
|
end
|
30
90
|
|
31
91
|
end
|
data/lib/battlenet/api.rb
CHANGED
@@ -1,11 +1,19 @@
|
|
1
|
-
require 'uri'
|
2
|
-
|
3
1
|
module Battlenet
|
4
2
|
module WOW
|
5
|
-
|
6
|
-
|
3
|
+
class Achievement < Battlenet::APIResponse
|
4
|
+
|
5
|
+
def initialize(options={})
|
6
|
+
@realm = options.delete(:achievement)
|
7
|
+
|
8
|
+
@endpoint = "/achievement/#{@achievement}"
|
9
|
+
|
10
|
+
super(options)
|
11
|
+
end
|
12
|
+
|
13
|
+
def details
|
14
|
+
get_data(@endpoint, {})
|
15
|
+
end
|
7
16
|
|
8
|
-
get "/achievement/#{id}", options
|
9
17
|
end
|
10
18
|
end
|
11
19
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Battlenet
|
2
|
+
module WOW
|
3
|
+
class Auction < Battlenet::APIResponse
|
4
|
+
|
5
|
+
def initialize(options={})
|
6
|
+
@realm = options.delete(:realm)
|
7
|
+
|
8
|
+
@endpoint = "/auction/data/#{@realm}"
|
9
|
+
|
10
|
+
super(options)
|
11
|
+
end
|
12
|
+
|
13
|
+
def details
|
14
|
+
get_data(@endpoint, {})
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -1,116 +1,88 @@
|
|
1
|
-
require 'uri'
|
2
|
-
|
3
|
-
Dir[File.expand_path('../character/*.rb', __FILE__)].each{|f| require f}
|
4
|
-
|
5
1
|
module Battlenet
|
6
2
|
module WOW
|
7
|
-
|
8
|
-
realm = URI.escape realm
|
9
|
-
character_name = URI.escape character_name
|
3
|
+
class CharacterProfile < Battlenet::APIResponse
|
10
4
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
options[:query] ||= {}
|
15
|
-
options[:query].merge!({ :fields => 'achievements' })
|
5
|
+
def initialize(options={})
|
6
|
+
@realm = options.delete(:realm)
|
7
|
+
@character_name = options.delete(:character_name)
|
16
8
|
|
17
|
-
|
18
|
-
end
|
19
|
-
def character_appearance(realm, character_name, options = {})
|
20
|
-
options[:query] ||= {}
|
21
|
-
options[:query].merge!({ :fields => 'appearance' })
|
9
|
+
@endpoint = "/character/#{@realm}/#{@character_name}"
|
22
10
|
|
23
|
-
|
24
|
-
|
25
|
-
def character_feed(realm, character_name, options = {})
|
26
|
-
options[:query] ||= {}
|
27
|
-
options[:query].merge!({ :fields => 'feed' })
|
11
|
+
super(options)
|
12
|
+
end
|
28
13
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
options[:query] ||= {}
|
33
|
-
options[:query].merge!({ :fields => 'guild' })
|
14
|
+
def profile
|
15
|
+
get_data(@endpoint, {})
|
16
|
+
end
|
34
17
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
options[:query] ||= {}
|
39
|
-
options[:query].merge!({ :fields => 'hunter_pets' })
|
18
|
+
def achievements
|
19
|
+
get_data(@endpoint, {:fields => 'achievements'})
|
20
|
+
end
|
40
21
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
options[:query] ||= {}
|
45
|
-
options[:query].merge!({ :fields => 'items' })
|
22
|
+
def appearance
|
23
|
+
get_data(@endpoint, {:fields => 'appearance'})
|
24
|
+
end
|
46
25
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
options[:query] ||= {}
|
51
|
-
options[:query].merge!({ :fields => 'mounts' })
|
26
|
+
def feed
|
27
|
+
get_data(@endpoint, {:fields => 'feed'})
|
28
|
+
end
|
52
29
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
options[:query] ||= {}
|
57
|
-
options[:query].merge!({ :fields => 'pets' })
|
30
|
+
def guild
|
31
|
+
get_data(@endpoint, {:fields => 'guild'})
|
32
|
+
end
|
58
33
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
options[:query] ||= {}
|
63
|
-
options[:query].merge!({ :fields => 'pet_slots' })
|
34
|
+
def hunter_pets
|
35
|
+
get_data(@endpoint, {:fields => 'hunterPets'})
|
36
|
+
end
|
64
37
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
options[:query] ||= {}
|
69
|
-
options[:query].merge!({ :fields => 'progression' })
|
38
|
+
def pets
|
39
|
+
get_data(@endpoint, {:fields => 'pets'})
|
40
|
+
end
|
70
41
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
options[:query] ||= {}
|
75
|
-
options[:query].merge!({ :fields => 'pvp' })
|
42
|
+
def items
|
43
|
+
get_data(@endpoint, {:fields => 'items'})
|
44
|
+
end
|
76
45
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
options[:query] ||= {}
|
81
|
-
options[:query].merge!({ :fields => 'quests' })
|
46
|
+
def mounts
|
47
|
+
get_data(@endpoint, {:fields => 'mounts'})
|
48
|
+
end
|
82
49
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
options[:query] ||= {}
|
87
|
-
options[:query].merge!({ :fields => 'reputation' })
|
50
|
+
def pet_slots
|
51
|
+
get_data(@endpoint, {:fields => 'petSlots'})
|
52
|
+
end
|
88
53
|
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
options[:query] ||= {}
|
93
|
-
options[:query].merge!({ :fields => 'stats' })
|
54
|
+
def progression
|
55
|
+
get_data(@endpoint, {:fields => 'progression'})
|
56
|
+
end
|
94
57
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
options[:query] ||= {}
|
99
|
-
options[:query].merge!({ :fields => 'talents' })
|
58
|
+
def pvp
|
59
|
+
get_data(@endpoint, {:fields => 'pvp'})
|
60
|
+
end
|
100
61
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
options[:query] ||= {}
|
105
|
-
options[:query].merge!({ :fields => 'titles' })
|
62
|
+
def quests
|
63
|
+
get_data(@endpoint, {:fields => 'quests'})
|
64
|
+
end
|
106
65
|
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
66
|
+
def reputation
|
67
|
+
get_data(@endpoint, {:fields => 'reputation'})
|
68
|
+
end
|
69
|
+
|
70
|
+
def stats
|
71
|
+
get_data(@endpoint, {:fields => 'stats'})
|
72
|
+
end
|
73
|
+
|
74
|
+
def talents
|
75
|
+
get_data(@endpoint, {:fields => 'talents'})
|
76
|
+
end
|
77
|
+
|
78
|
+
def titles
|
79
|
+
get_data(@endpoint, {:fields => 'titles'})
|
80
|
+
end
|
81
|
+
|
82
|
+
def audit
|
83
|
+
get_data(@endpoint, {:fields => 'audit'})
|
84
|
+
end
|
112
85
|
|
113
|
-
character_profile(realm, character_name, options)
|
114
86
|
end
|
115
87
|
end
|
116
88
|
end
|
@@ -1,36 +1,51 @@
|
|
1
|
-
require 'uri'
|
2
|
-
|
3
1
|
module Battlenet
|
4
2
|
module WOW
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
3
|
+
class Data < Battlenet::APIResponse
|
4
|
+
|
5
|
+
def initialize(options={})
|
6
|
+
super(options)
|
7
|
+
end
|
8
|
+
|
9
|
+
def battlegroups
|
10
|
+
get_data("/data/battlegroups", {})
|
11
|
+
end
|
12
|
+
|
13
|
+
def character_races
|
14
|
+
get_data("/data/character/races", {})
|
15
|
+
end
|
16
|
+
|
17
|
+
def character_classes
|
18
|
+
get_data("/data/character/classes", {})
|
19
|
+
end
|
20
|
+
|
21
|
+
def character_achievements
|
22
|
+
get_data("/data/character/achievements", {})
|
23
|
+
end
|
24
|
+
|
25
|
+
def guild_rewards
|
26
|
+
get_data("/data/guild/rewards", {})
|
27
|
+
end
|
28
|
+
|
29
|
+
def guild_perks
|
30
|
+
get_data("/data/guild/perks", {})
|
31
|
+
end
|
32
|
+
|
33
|
+
def guild_achievements
|
34
|
+
get_data("/data/guild/achievements", {})
|
35
|
+
end
|
36
|
+
|
37
|
+
def item_classes
|
38
|
+
get_data("/data/item/clases", {})
|
39
|
+
end
|
40
|
+
|
41
|
+
def talents
|
42
|
+
get_data("/dava/talents", {})
|
43
|
+
end
|
44
|
+
|
45
|
+
def pet_types
|
46
|
+
get_data("/data/pet/types", {})
|
47
|
+
end
|
48
|
+
|
34
49
|
end
|
35
50
|
end
|
36
|
-
end
|
51
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Battlenet
|
2
|
+
module WOW
|
3
|
+
class GuildProfile < Battlenet::APIResponse
|
4
|
+
|
5
|
+
def initialize(options={})
|
6
|
+
@realm = options.delete(:realm)
|
7
|
+
@guild_name = options.delete(:guild_name)
|
8
|
+
|
9
|
+
@endpoint = "/guild/#{@realm}/#{@guild_name}"
|
10
|
+
|
11
|
+
super(options)
|
12
|
+
end
|
13
|
+
|
14
|
+
def profile
|
15
|
+
get_data(@endpoint, {})
|
16
|
+
end
|
17
|
+
|
18
|
+
def members
|
19
|
+
get_data(@endpoint, {:fields => 'members'})
|
20
|
+
end
|
21
|
+
|
22
|
+
def achievements
|
23
|
+
get_data(@endpoint, {:fields => 'achievements'})
|
24
|
+
end
|
25
|
+
|
26
|
+
def news
|
27
|
+
get_data(@endpoint, {:fields => 'news'})
|
28
|
+
end
|
29
|
+
|
30
|
+
def challenge
|
31
|
+
get_data(@endpoint, {:fields => 'challenge'})
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -1,17 +1,19 @@
|
|
1
|
-
require 'uri'
|
2
|
-
|
3
1
|
module Battlenet
|
4
2
|
module WOW
|
5
|
-
|
6
|
-
item_id = URI.escape item_id
|
3
|
+
class Item < Battlenet::APIResponse
|
7
4
|
|
8
|
-
|
9
|
-
|
5
|
+
def initialize(options={})
|
6
|
+
@realm = options.delete(:item)
|
7
|
+
|
8
|
+
@endpoint = "/item/#{@item}"
|
9
|
+
|
10
|
+
super(options)
|
11
|
+
end
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
+
def details
|
14
|
+
get_data(@endpoint, {})
|
15
|
+
end
|
13
16
|
|
14
|
-
get "/item/set/#{set_id}", options
|
15
17
|
end
|
16
18
|
end
|
17
|
-
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Battlenet
|
2
|
+
module WOW
|
3
|
+
class ItemSet < Battlenet::APIResponse
|
4
|
+
|
5
|
+
def initialize(options={})
|
6
|
+
@realm = options.delete(:item_set)
|
7
|
+
|
8
|
+
@endpoint = "/item/set/#{@item_set}"
|
9
|
+
|
10
|
+
super(options)
|
11
|
+
end
|
12
|
+
|
13
|
+
def details
|
14
|
+
get_data(@endpoint, {})
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Battlenet
|
2
|
+
module WOW
|
3
|
+
class PVPLeaderboard < Battlenet::APIResponse
|
4
|
+
|
5
|
+
def initialize(options={})
|
6
|
+
@realm = options.delete(:bracket)
|
7
|
+
|
8
|
+
@endpoint = "/leaderboard/#{@bracket}"
|
9
|
+
|
10
|
+
super(options)
|
11
|
+
end
|
12
|
+
|
13
|
+
def details
|
14
|
+
get_data(@endpoint, {})
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -1,11 +1,19 @@
|
|
1
|
-
require 'uri'
|
2
|
-
|
3
1
|
module Battlenet
|
4
2
|
module WOW
|
5
|
-
|
6
|
-
|
3
|
+
class Quest < Battlenet::APIResponse
|
4
|
+
|
5
|
+
def initialize(options={})
|
6
|
+
@realm = options.delete(:quest)
|
7
|
+
|
8
|
+
@endpoint = "/quest/#{@quest}"
|
9
|
+
|
10
|
+
super(options)
|
11
|
+
end
|
12
|
+
|
13
|
+
def details
|
14
|
+
get_data(@endpoint, {})
|
15
|
+
end
|
7
16
|
|
8
|
-
|
9
|
-
end
|
17
|
+
end
|
10
18
|
end
|
11
|
-
end
|
19
|
+
end
|
@@ -1,10 +1,17 @@
|
|
1
|
-
require 'uri'
|
2
|
-
|
3
1
|
module Battlenet
|
4
2
|
module WOW
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
class Realm < Battlenet::APIResponse
|
4
|
+
|
5
|
+
def initialize(options={})
|
6
|
+
@endpoint = "/realm/status"
|
7
|
+
|
8
|
+
super(options)
|
9
|
+
end
|
10
|
+
|
11
|
+
def details
|
12
|
+
get_data(@endpoint, {})
|
13
|
+
end
|
14
|
+
|
8
15
|
end
|
9
16
|
end
|
10
|
-
end
|
17
|
+
end
|
@@ -1,11 +1,19 @@
|
|
1
|
-
require 'uri'
|
2
|
-
|
3
1
|
module Battlenet
|
4
2
|
module WOW
|
5
|
-
|
6
|
-
|
3
|
+
class Recipe < Battlenet::APIResponse
|
4
|
+
|
5
|
+
def initialize(options={})
|
6
|
+
@realm = options.delete(:recipe)
|
7
|
+
|
8
|
+
@endpoint = "/recipe/#{@recipe}"
|
9
|
+
|
10
|
+
super(options)
|
11
|
+
end
|
12
|
+
|
13
|
+
def details
|
14
|
+
get_data(@endpoint, {})
|
15
|
+
end
|
7
16
|
|
8
|
-
get "/recipe/#{recipe_id}", options
|
9
17
|
end
|
10
18
|
end
|
11
|
-
end
|
19
|
+
end
|
@@ -1,11 +1,19 @@
|
|
1
|
-
require 'uri'
|
2
|
-
|
3
1
|
module Battlenet
|
4
2
|
module WOW
|
5
|
-
|
6
|
-
|
3
|
+
class Spell < Battlenet::APIResponse
|
4
|
+
|
5
|
+
def initialize(options={})
|
6
|
+
@realm = options.delete(:spell)
|
7
|
+
|
8
|
+
@endpoint = "/item/#{@spell}"
|
9
|
+
|
10
|
+
super(options)
|
11
|
+
end
|
12
|
+
|
13
|
+
def details
|
14
|
+
get_data(@endpoint, {})
|
15
|
+
end
|
7
16
|
|
8
|
-
get "/spell/#{spell_id}", options
|
9
17
|
end
|
10
18
|
end
|
11
|
-
end
|
19
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'battlenet/api'
|
2
|
+
|
3
|
+
describe Battlenet::WOW::CharacterProfile do
|
4
|
+
|
5
|
+
it { should respond_to(:profile) }
|
6
|
+
it { should respond_to(:achievements) }
|
7
|
+
it { should respond_to(:feed) }
|
8
|
+
it { should respond_to(:appearance) }
|
9
|
+
it { should respond_to(:guild) }
|
10
|
+
it { should respond_to(:hunter_pets) }
|
11
|
+
it { should respond_to(:pets) }
|
12
|
+
it { should respond_to(:items) }
|
13
|
+
it { should respond_to(:mounts) }
|
14
|
+
it { should respond_to(:pet_slots) }
|
15
|
+
it { should respond_to(:progression) }
|
16
|
+
it { should respond_to(:pvp) }
|
17
|
+
it { should respond_to(:quests) }
|
18
|
+
it { should respond_to(:reputation) }
|
19
|
+
it { should respond_to(:stats) }
|
20
|
+
it { should respond_to(:talents) }
|
21
|
+
it { should respond_to(:titles) }
|
22
|
+
it { should respond_to(:audit) }
|
23
|
+
|
24
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'battlenet/api'
|
2
|
+
|
3
|
+
describe Battlenet::WOW::GuildProfile do
|
4
|
+
|
5
|
+
it { should respond_to(:profile) }
|
6
|
+
it { should respond_to(:achievements) }
|
7
|
+
it { should respond_to(:members) }
|
8
|
+
it { should respond_to(:news) }
|
9
|
+
it { should respond_to(:challenge) }
|
10
|
+
|
11
|
+
end
|
data/spec/wowclient_spec.rb
CHANGED
@@ -3,73 +3,27 @@ require 'battlenet/api'
|
|
3
3
|
describe Battlenet::WOWClient do
|
4
4
|
before(:all) do
|
5
5
|
Battlenet.configure do |config|
|
6
|
-
config.api_key = 'test-wow-
|
6
|
+
config.api_key = 'test-wow-client'
|
7
7
|
config.region = :us
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should pass the api key to the wow client" do
|
12
12
|
c = Battlenet.WOWClient
|
13
|
-
expect(c.api_key).to eq('test-wow-
|
13
|
+
expect(c.api_key).to eq('test-wow-client')
|
14
14
|
end
|
15
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
16
|
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
17
|
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
18
|
it { should respond_to(:item) }
|
63
19
|
it { should respond_to(:item_set) }
|
64
|
-
|
65
|
-
it { should respond_to(:
|
66
|
-
|
20
|
+
it { should respond_to(:achievement) }
|
21
|
+
it { should respond_to(:auction) }
|
22
|
+
it { should respond_to(:pvp_leaderboard) }
|
67
23
|
it { should respond_to(:quest) }
|
68
|
-
|
69
|
-
it { should respond_to(:realm_status) }
|
70
|
-
|
24
|
+
it { should respond_to(:realm) }
|
71
25
|
it { should respond_to(:recipe) }
|
72
|
-
|
73
26
|
it { should respond_to(:spell) }
|
27
|
+
it { should respond_to(:data) }
|
74
28
|
|
75
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: battlenet-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.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-12-
|
11
|
+
date: 2014-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -94,6 +94,7 @@ files:
|
|
94
94
|
- Rakefile
|
95
95
|
- battlenet-api.gemspec
|
96
96
|
- examples/example_oauth.rb
|
97
|
+
- examples/sandbox.rb
|
97
98
|
- lib/battlenet/api.rb
|
98
99
|
- lib/battlenet/api/api_response.rb
|
99
100
|
- lib/battlenet/api/client.rb
|
@@ -108,15 +109,13 @@ files:
|
|
108
109
|
- lib/battlenet/modules/sc2/ladder.rb
|
109
110
|
- lib/battlenet/modules/sc2/profile.rb
|
110
111
|
- lib/battlenet/modules/wow/achievement.rb
|
111
|
-
- lib/battlenet/modules/wow/
|
112
|
-
- lib/battlenet/modules/wow/battlepet.rb
|
113
|
-
- lib/battlenet/modules/wow/challenge_mode.rb
|
114
|
-
- lib/battlenet/modules/wow/character/character_profile.rb
|
112
|
+
- lib/battlenet/modules/wow/auction.rb
|
115
113
|
- lib/battlenet/modules/wow/character_profile.rb
|
116
114
|
- lib/battlenet/modules/wow/data.rb
|
117
|
-
- lib/battlenet/modules/wow/
|
115
|
+
- lib/battlenet/modules/wow/guild_profile.rb
|
118
116
|
- lib/battlenet/modules/wow/item.rb
|
119
|
-
- lib/battlenet/modules/wow/
|
117
|
+
- lib/battlenet/modules/wow/item_set.rb
|
118
|
+
- lib/battlenet/modules/wow/pvp_leaderboard.rb
|
120
119
|
- lib/battlenet/modules/wow/quest.rb
|
121
120
|
- lib/battlenet/modules/wow/realm.rb
|
122
121
|
- lib/battlenet/modules/wow/recipe.rb
|
@@ -124,6 +123,8 @@ files:
|
|
124
123
|
- spec/battlenetapi_spec.rb
|
125
124
|
- spec/d3client_spec.rb
|
126
125
|
- spec/sc2client_spec.rb
|
126
|
+
- spec/wow/characterprofile_spec.rb
|
127
|
+
- spec/wow/guildprofile_spec.rb
|
127
128
|
- spec/wowclient_spec.rb
|
128
129
|
homepage: https://github.com/goodcodeguy/battlenet-api
|
129
130
|
licenses:
|
@@ -153,4 +154,6 @@ test_files:
|
|
153
154
|
- spec/battlenetapi_spec.rb
|
154
155
|
- spec/d3client_spec.rb
|
155
156
|
- spec/sc2client_spec.rb
|
157
|
+
- spec/wow/characterprofile_spec.rb
|
158
|
+
- spec/wow/guildprofile_spec.rb
|
156
159
|
- spec/wowclient_spec.rb
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require 'uri'
|
2
|
-
|
3
|
-
module Battlenet
|
4
|
-
module WOW
|
5
|
-
def battlepet_ability(ability_id, options = {})
|
6
|
-
ability_id = URI.escape ability_id
|
7
|
-
|
8
|
-
get "/battlepet/ability/#{ability_id}", options
|
9
|
-
end
|
10
|
-
def battlepet_species(species_id, options = {})
|
11
|
-
species_id = URI.escape species_id
|
12
|
-
|
13
|
-
get "/battlepet/species/#{species_id}"
|
14
|
-
end
|
15
|
-
def battlepet_stats(species_id, options = {})
|
16
|
-
species_id = URI.escape species_id
|
17
|
-
|
18
|
-
get "/battlepet/stats/#{species_id}"
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'uri'
|
2
|
-
|
3
|
-
module Battlenet
|
4
|
-
module WOW
|
5
|
-
def challengemode_realm_leaderboard(realm, options = {})
|
6
|
-
realm = URI.escape realm
|
7
|
-
|
8
|
-
get "/challenge/realm/#{realm}", options
|
9
|
-
end
|
10
|
-
def challengemode_region_leaderboard(options = {})
|
11
|
-
get "/challenge/region", options
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module Battlenet
|
2
|
-
module WOW
|
3
|
-
class CharacterProfile < Battlenet::APIResponse
|
4
|
-
|
5
|
-
attr_accessor :name, :realm, :battlegroup, :klass, :race,
|
6
|
-
:gender, :level, :achievementPoints, :thumbnail,
|
7
|
-
:calcClass, :totalHonorableKills
|
8
|
-
|
9
|
-
def initialize(options={})
|
10
|
-
@realm = options.delete(:realm)
|
11
|
-
@character_name = options.delete(:character_name)
|
12
|
-
|
13
|
-
super(options)
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
require 'uri'
|
2
|
-
|
3
|
-
module Battlenet
|
4
|
-
module WOW
|
5
|
-
|
6
|
-
#TODO: guild_profile needs to be more robust
|
7
|
-
def guild_profile(realm, guild_name, options = {})
|
8
|
-
realm = URI.escape realm
|
9
|
-
guild_name = URI.escape guild_name
|
10
|
-
|
11
|
-
get "/guild/#{realm}/#{guild_name}", options
|
12
|
-
end
|
13
|
-
|
14
|
-
def guild_members(realm, guild_name, options = {})
|
15
|
-
realm = URI.escape realm
|
16
|
-
guild_name = URI.escape guild_name
|
17
|
-
|
18
|
-
options[:query] ||= {}
|
19
|
-
options[:query].merge!({ :fields => 'members' })
|
20
|
-
|
21
|
-
get "/guild/#{realm}/#{guild_name}", options
|
22
|
-
end
|
23
|
-
|
24
|
-
def guild_achievements(realm, guild_name, options = {})
|
25
|
-
realm = URI.escape realm
|
26
|
-
guild_name = URI.escape guild_name
|
27
|
-
|
28
|
-
options[:query] ||= {}
|
29
|
-
options[:query].merge!({ :fields => 'achievements' })
|
30
|
-
|
31
|
-
get "/guild/#{realm}/#{guild_name}", options
|
32
|
-
end
|
33
|
-
|
34
|
-
def guild_news(realm, guild_name, options = {})
|
35
|
-
realm = URI.escape realm
|
36
|
-
guild_name = URI.escape guild_name
|
37
|
-
|
38
|
-
options[:query] ||= {}
|
39
|
-
options[:query].merge!({ :fields => 'news' })
|
40
|
-
|
41
|
-
get "/guild/#{realm}/#{guild_name}", options
|
42
|
-
end
|
43
|
-
|
44
|
-
def guild_challenge(realm, guild_name, options = {})
|
45
|
-
realm = URI.escape realm
|
46
|
-
guild_name = URI.escape guild_name
|
47
|
-
|
48
|
-
options[:query] ||= {}
|
49
|
-
options[:query].merge!({ :fields => 'challenge' })
|
50
|
-
|
51
|
-
get "/guild/#{realm}/#{guild_name}", options
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|
55
|
-
end
|