battlenet-api 0.3.1 → 0.3.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a1171469170368aa608c174bbfa4811ae1691f64
4
- data.tar.gz: 294f0a5f031bb452b0f775c4287e5c12946fef67
3
+ metadata.gz: 9abf4010781883ec5d265c7c5afc9800b6d9687c
4
+ data.tar.gz: 774f81c62b4c50d3604553ab75ea8587d5a1d348
5
5
  SHA512:
6
- metadata.gz: cd7db73c41e97aebd1c7acc6dc5148a6bcc10de5ed2076122a86a2bdbbd9cabefc61393041cb99d743dcc3a2b45dcba3401271501cef6a6ea37524f2e75659e5
7
- data.tar.gz: 497adf45736781823b0c623d10ef9ec7dfb2176a902cd8b345e4beecfe588d9d5149d807254555d3775c7231f2d6bd94022dda07e973d8f7c08a021c6c17b9a5
6
+ metadata.gz: f23d179f18eee8a09c681c9adb6a0293d52ef111ef0922306522013f3a9f0f225238376cb5523020c6286e29f8af924b3f026469d2bc215241859727f8e79cf0
7
+ data.tar.gz: 8bd5eaca8a678377abfbc4034b0c8f364c0fc1bb2a5bf4ec41130533b41998e8c9d00805d1a521e8990135b5118dcd8985ad63930494d3fe5df219a11e34e76a
data/.gitignore CHANGED
@@ -7,8 +7,12 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ /fixtures/
10
11
  *.bundle
11
12
  *.so
12
13
  *.o
13
14
  *.a
14
15
  mkmf.log
16
+ *.gem
17
+ .env*
18
+ .ruby-version
data/README.md CHANGED
@@ -23,11 +23,11 @@ client = Battlenet.WOWClient
23
23
 
24
24
  achievement = client.achievement({:achievement => 'achievement_id'})
25
25
  auction_data = client.auction({:realm => 'realm'})
26
- character = client.character_profile({:realm => 'realm', :character_name => 'character_name'})
26
+ character = client.character({:realm => 'realm', :character_name => 'character_name'})
27
27
 
28
28
  # TODO: character methods
29
29
 
30
- guild = client.guild_profile({:realm => 'realm', :guild_name => 'guild_name'})
30
+ guild = client.guild({:realm => 'realm', :guild_name => 'guild_name'})
31
31
 
32
32
  # TODO: guild methods
33
33
 
@@ -25,4 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "bundler", "~> 1.7"
26
26
  spec.add_development_dependency "rake", "~> 10.0"
27
27
  spec.add_development_dependency "rspec", "~> 3.1"
28
+ spec.add_development_dependency "dotenv"
29
+ spec.add_development_dependency "vcr"
30
+ spec.add_development_dependency "webmock"
28
31
  end
data/examples/sandbox.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'battlenet/api'
2
2
 
3
3
  Battlenet.configure do |config|
4
- config.api_key = '5g856v32mx5bwx3rwxzkt9z9yrehtuq2'
4
+ config.api_key = 'api-key'
5
5
  config.region = :us
6
6
  end
7
7
 
@@ -10,7 +10,8 @@ module Battlenet
10
10
 
11
11
  def get_data(path, options)
12
12
  unless @client.nil?
13
- @data = @client.get(path, options)
13
+ response = @client.get(path, options)
14
+ @data = response.parsed_response
14
15
  end
15
16
  end
16
17
 
@@ -16,9 +16,7 @@ module Battlenet
16
16
  Configuration::OPTIONS_KEYS.each do |key|
17
17
  send("#{key}=", options[key])
18
18
  end
19
-
20
19
  self.class.base_uri "https://#{domain}#{endpoint}"
21
-
22
20
  end
23
21
 
24
22
  def domain
@@ -40,7 +38,7 @@ module Battlenet
40
38
 
41
39
  def endpoint
42
40
  raise "Invalid Game Endpoint" if @endpoint == nil
43
- Addressable::URI.encode(@endpoint)
41
+ @endpoint
44
42
  end
45
43
 
46
44
  def get(path, params = {})
@@ -59,7 +57,7 @@ module Battlenet
59
57
  options[:query].merge!({ :apikey => @api_key })
60
58
  end
61
59
 
62
- response = self.class.send(verb, path, options)
60
+ response = self.class.send(verb, Addressable::URI.encode(path), options)
63
61
  end
64
62
 
65
63
  end
@@ -1,5 +1,5 @@
1
1
  module Battlenet
2
2
  module Api
3
- VERSION = "0.3.1"
3
+ VERSION = "0.3.2"
4
4
  end
5
5
  end
@@ -1,7 +1,7 @@
1
1
  require 'battlenet/api/client'
2
2
 
3
- require 'battlenet/modules/wow/character_profile'
4
- require 'battlenet/modules/wow/guild_profile'
3
+ require 'battlenet/modules/wow/character'
4
+ require 'battlenet/modules/wow/guild'
5
5
  require 'battlenet/modules/wow/item'
6
6
  require 'battlenet/modules/wow/item_set'
7
7
  require 'battlenet/modules/wow/achievement'
@@ -24,12 +24,12 @@ module Battlenet
24
24
  super(client_settings)
25
25
  end
26
26
 
27
- def character_profile(options = {})
28
- merge_options_and_return_obj(options, Battlenet::WOW::CharacterProfile)
27
+ def character(options = {})
28
+ merge_options_and_return_obj(options, Battlenet::WOW::Character)
29
29
  end
30
30
 
31
- def guild_profile(options = {})
32
- merge_options_and_return_obj(options, Battlenet::WOW::GuildProfile)
31
+ def guild(options = {})
32
+ merge_options_and_return_obj(options, Battlenet::WOW::Guild)
33
33
  end
34
34
 
35
35
  def item(options = {})
@@ -1,6 +1,6 @@
1
1
  module Battlenet
2
2
  module WOW
3
- class CharacterProfile < Battlenet::APIResponse
3
+ class Character < Battlenet::APIResponse
4
4
 
5
5
  def initialize(options={})
6
6
  @realm = options.delete(:realm)
@@ -1,6 +1,6 @@
1
1
  module Battlenet
2
2
  module WOW
3
- class GuildProfile < Battlenet::APIResponse
3
+ class Guild < Battlenet::APIResponse
4
4
 
5
5
  def initialize(options={})
6
6
  @realm = options.delete(:realm)
@@ -1,17 +1,12 @@
1
- require 'battlenet/api'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Battlenet::Client do
4
4
  context "when special characters are in realm names" do
5
5
  before do
6
6
  Battlenet.configure do |config|
7
- config.api_key = 'test-api'
7
+ config.api_key = ENV['BATTLENET_API_KEY']
8
8
  config.region = :eu
9
9
  end
10
10
  end
11
-
12
- it "should escape spaces in realm names" do
13
- c = Battlenet::Client.new({domain: 'http://www.test.com', endpoint: "/emerald dream/mal'ganis"})
14
- expect(c.endpoint).to eq('/emerald%20dream/mal\'ganis')
15
- end
16
11
  end
17
12
  end
@@ -1,16 +1,16 @@
1
- require 'battlenet/api'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Battlenet::D3Client do
4
4
  before(:all) do
5
5
  Battlenet.configure do |config|
6
- config.api_key = 'test-d3client-api'
6
+ config.api_key = ENV['BATTLENET_API_KEY']
7
7
  config.region = :us
8
8
  end
9
9
  end
10
10
 
11
11
  it "should pass the api key to the d3 client" do
12
12
  c = Battlenet.D3Client
13
- expect(c.api_key).to eq('test-d3client-api')
13
+ expect(c.api_key).to eq(ENV['BATTLENET_API_KEY'])
14
14
  end
15
15
 
16
16
  it { should respond_to(:data_item) }
@@ -1,16 +1,16 @@
1
- require 'battlenet/api'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Battlenet::SC2Client do
4
4
  before(:all) do
5
5
  Battlenet.configure do |config|
6
- config.api_key = 'test-sc2client-api'
6
+ config.api_key = ENV['BATTLENET_API_KEY']
7
7
  config.region = :us
8
8
  end
9
9
  end
10
10
 
11
11
  it "should pass the api key to the SC2 client" do
12
12
  c = Battlenet.SC2Client
13
- expect(c.api_key).to eq('test-sc2client-api')
13
+ expect(c.api_key).to eq(ENV['BATTLENET_API_KEY'])
14
14
  end
15
15
 
16
16
  it { should respond_to(:achievements) }
@@ -0,0 +1,11 @@
1
+ require 'battlenet/api'
2
+ require 'dotenv'
3
+ require 'webmock/rspec'
4
+ require 'vcr'
5
+
6
+ Dotenv.load
7
+
8
+ VCR.configure do |config|
9
+ config.cassette_library_dir = "fixtures/cassettes"
10
+ config.hook_into :webmock
11
+ end
@@ -0,0 +1,63 @@
1
+ require 'spec_helper'
2
+
3
+ describe Battlenet::WOW::Character do
4
+
5
+ context "when looking up a character" do
6
+ before do
7
+ Battlenet.configure do |config|
8
+ config.api_key = ENV['BATTLENET_API_KEY']
9
+ config.region = :us
10
+ end
11
+ @wow_client = Battlenet.WOWClient
12
+ end
13
+
14
+ it "should be able to find 'Silverwinter' on 'Sargeras'" do
15
+ character = @wow_client.character({:realm => 'sargeras', :character_name => 'Silverwinter'})
16
+ VCR.use_cassette('character/profile') do
17
+ expect(character.profile['name']).to eq('Silverwinter')
18
+ end
19
+ end
20
+
21
+ it "should be able to find 'whispä' on 'frostmourne' (handle foreign characters)" do
22
+ character = @wow_client.character({:realm => 'frostmourne', :character_name => 'whispä'})
23
+ VCR.use_cassette('character/profile_whispä') do
24
+ expect(character.profile['name']).to eq('Whispä')
25
+ end
26
+ end
27
+
28
+ it "should be able to find 'pftpft' on 'emerald dream' (handle spaces)" do
29
+ character = @wow_client.character({:realm => 'emerald dream', :character_name => 'pftpft'})
30
+ VCR.use_cassette('character/profile_pft') do
31
+ expect(character.profile['name']).to eq('Pftpft')
32
+ end
33
+ end
34
+
35
+ it "should not be able to find 'ThisCharacterShouldntExist' on 'Sargeras'" do
36
+ character = @wow_client.character({realm: 'sargeras', character_name: 'ThisCharacterShouldntExist'})
37
+ VCR.use_cassette('character/invalid_character') do
38
+ expect(character.profile['reason']).to eq('Character not found.')
39
+ end
40
+ end
41
+
42
+ end
43
+
44
+ it { should respond_to(:profile) }
45
+ it { should respond_to(:achievements) }
46
+ it { should respond_to(:feed) }
47
+ it { should respond_to(:appearance) }
48
+ it { should respond_to(:guild) }
49
+ it { should respond_to(:hunter_pets) }
50
+ it { should respond_to(:pets) }
51
+ it { should respond_to(:items) }
52
+ it { should respond_to(:mounts) }
53
+ it { should respond_to(:pet_slots) }
54
+ it { should respond_to(:progression) }
55
+ it { should respond_to(:pvp) }
56
+ it { should respond_to(:quests) }
57
+ it { should respond_to(:reputation) }
58
+ it { should respond_to(:stats) }
59
+ it { should respond_to(:talents) }
60
+ it { should respond_to(:titles) }
61
+ it { should respond_to(:audit) }
62
+
63
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe Battlenet::WOW::Guild do
4
+
5
+ context "when looking up a guild" do
6
+ before do
7
+ Battlenet.configure do |config|
8
+ config.api_key = ENV['BATTLENET_API_KEY']
9
+ config.region = :us
10
+ end
11
+ @wow_client = Battlenet.WOWClient
12
+ end
13
+
14
+ end
15
+
16
+ it { should respond_to(:profile) }
17
+ it { should respond_to(:achievements) }
18
+ it { should respond_to(:members) }
19
+ it { should respond_to(:news) }
20
+ it { should respond_to(:challenge) }
21
+
22
+ end
@@ -1,20 +1,20 @@
1
- require 'battlenet/api'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Battlenet::WOWClient do
4
4
  before(:all) do
5
5
  Battlenet.configure do |config|
6
- config.api_key = 'test-wow-client'
6
+ config.api_key = ENV['BATTLENET_API_KEY']
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-client')
13
+ expect(c.api_key).to eq(ENV['BATTLENET_API_KEY'])
14
14
  end
15
15
 
16
- it { should respond_to(:character_profile) }
17
- it { should respond_to(:guild_profile) }
16
+ it { should respond_to(:character) }
17
+ it { should respond_to(:guild) }
18
18
  it { should respond_to(:item) }
19
19
  it { should respond_to(:item_set) }
20
20
  it { should respond_to(:achievement) }
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.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - goodcodeguy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-04 00:00:00.000000000 Z
11
+ date: 2015-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -94,6 +94,48 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '3.1'
97
+ - !ruby/object:Gem::Dependency
98
+ name: dotenv
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: vcr
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: webmock
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
97
139
  description: API Wrapper for the Battlenet API
98
140
  email:
99
141
  - goodcodeguy@gmail.com
@@ -124,9 +166,9 @@ files:
124
166
  - lib/battlenet/modules/sc2/profile.rb
125
167
  - lib/battlenet/modules/wow/achievement.rb
126
168
  - lib/battlenet/modules/wow/auction.rb
127
- - lib/battlenet/modules/wow/character_profile.rb
169
+ - lib/battlenet/modules/wow/character.rb
128
170
  - lib/battlenet/modules/wow/data.rb
129
- - lib/battlenet/modules/wow/guild_profile.rb
171
+ - lib/battlenet/modules/wow/guild.rb
130
172
  - lib/battlenet/modules/wow/item.rb
131
173
  - lib/battlenet/modules/wow/item_set.rb
132
174
  - lib/battlenet/modules/wow/pvp_leaderboard.rb
@@ -137,8 +179,9 @@ files:
137
179
  - spec/battlenetapi_spec.rb
138
180
  - spec/d3client_spec.rb
139
181
  - spec/sc2client_spec.rb
140
- - spec/wow/characterprofile_spec.rb
141
- - spec/wow/guildprofile_spec.rb
182
+ - spec/spec_helper.rb
183
+ - spec/wow/character_spec.rb
184
+ - spec/wow/guild_spec.rb
142
185
  - spec/wowclient_spec.rb
143
186
  homepage: https://github.com/goodcodeguy/battlenet-api
144
187
  licenses:
@@ -160,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
203
  version: '0'
161
204
  requirements: []
162
205
  rubyforge_project:
163
- rubygems_version: 2.4.5.1
206
+ rubygems_version: 2.4.5
164
207
  signing_key:
165
208
  specification_version: 4
166
209
  summary: Battlenet Client API
@@ -168,6 +211,7 @@ test_files:
168
211
  - spec/battlenetapi_spec.rb
169
212
  - spec/d3client_spec.rb
170
213
  - spec/sc2client_spec.rb
171
- - spec/wow/characterprofile_spec.rb
172
- - spec/wow/guildprofile_spec.rb
214
+ - spec/spec_helper.rb
215
+ - spec/wow/character_spec.rb
216
+ - spec/wow/guild_spec.rb
173
217
  - spec/wowclient_spec.rb
@@ -1,24 +0,0 @@
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
@@ -1,11 +0,0 @@
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