rbattlenet 2.0.0 → 2.1.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 +7 -3
- data/lib/rbattlenet/endpoints/wow/character.rb +41 -1
- data/lib/rbattlenet/endpoints/wow/character/{pvp_bracket_statistics.rb → achievement_statistics.rb} +2 -2
- data/lib/rbattlenet/endpoints/wow/character/active_quests.rb +9 -0
- data/lib/rbattlenet/endpoints/wow/character/completed_dungeons.rb +9 -0
- data/lib/rbattlenet/endpoints/wow/character/completed_quests.rb +9 -0
- data/lib/rbattlenet/endpoints/wow/character/completed_raids.rb +9 -0
- data/lib/rbattlenet/endpoints/wow/character/legacy.rb +27 -0
- data/lib/rbattlenet/endpoints/wow/character/professions.rb +9 -0
- data/lib/rbattlenet/endpoints/wow/character/pvp_bracket_2v2.rb +9 -0
- data/lib/rbattlenet/endpoints/wow/character/pvp_bracket_3v3.rb +9 -0
- data/lib/rbattlenet/endpoints/wow/character/pvp_bracket_rbg.rb +9 -0
- data/lib/rbattlenet/rbattlenet.rb +11 -10
- data/lib/rbattlenet/result_collection.rb +19 -19
- data/lib/rbattlenet/version.rb +1 -1
- data/rbattlenet.gemspec +1 -0
- data/spec/lib/wow/character/achievement_statistics_spec.rb +28 -0
- data/spec/lib/wow/character/active_quests_spec.rb +28 -0
- data/spec/lib/wow/character/completed_dungeons_spec.rb +28 -0
- data/spec/lib/wow/character/completed_quests_spec.rb +28 -0
- data/spec/lib/wow/character/completed_raids_spec.rb +28 -0
- data/spec/lib/wow/character/legacy_spec.rb +37 -0
- data/spec/lib/wow/character/professions_spec.rb +16 -0
- data/spec/lib/wow/character/pvp_bracket_2v2_spec.rb +16 -0
- data/spec/lib/wow/character/pvp_bracket_3v3_spec.rb +16 -0
- data/spec/lib/wow/character/pvp_bracket_rbg_spec.rb +16 -0
- data/spec/lib/wow/title_spec.rb +12 -0
- data/spec/vcr_cassettes/wow_character_achievement_statistics.yml +1144 -0
- data/spec/vcr_cassettes/wow_character_achievement_statistics_multiple.yml +1200 -0
- data/spec/vcr_cassettes/wow_character_active_quests.yml +63 -0
- data/spec/vcr_cassettes/wow_character_active_quests_multiple.yml +119 -0
- data/spec/vcr_cassettes/wow_character_completed_dungeons.yml +228 -0
- data/spec/vcr_cassettes/wow_character_completed_dungeons_multiple.yml +393 -0
- data/spec/vcr_cassettes/wow_character_completed_quests.yml +7916 -0
- data/spec/vcr_cassettes/wow_character_completed_quests_multiple.yml +7972 -0
- data/spec/vcr_cassettes/wow_character_completed_raids.yml +559 -0
- data/spec/vcr_cassettes/wow_character_completed_raids_multiple.yml +615 -0
- data/spec/vcr_cassettes/wow_character_professions.yml +721 -0
- data/spec/vcr_cassettes/{wow_character_pvp_bracket_statistics.yml → wow_character_pvp_bracket_2v2_statistics.yml} +10 -10
- data/spec/vcr_cassettes/wow_character_pvp_bracket_3v3_statistics.yml +58 -0
- data/spec/vcr_cassettes/wow_character_pvp_bracket_rbg_statistics.yml +58 -0
- data/spec/vcr_cassettes/wow_legacy_characters.yml +3104 -0
- data/spec/vcr_cassettes/wow_legacy_characters_multiple.yml +6678 -0
- metadata +78 -7
- data/spec/lib/wow/character/pvp_bracket_statistics_spec.rb +0 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 46f0a0e9ac24c1ddb686d226fe8f484236c7a9d2c380d70f817b424f6d8c271b
|
|
4
|
+
data.tar.gz: 66641411e1896c5d3d33e94a9e57bf4b1c330ffde0cc21f6dcdd42d7a88730de
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: db1341a52e0881b9eeb0e45d5817f99834351c38b0e7a54081671be6f2486f53c1c823469a2087916f08cd65aa9132f8d1c76b86d579f0baddf4013d72577e24
|
|
7
|
+
data.tar.gz: cdd928eb7410dcebd8b736ced90fc8372f9aa744d4e5c13fa27bc9cff6a52528bfbca7b9b6660b5b55a28dd6ec3466f454eb8835fed11757f8810d329b89291c
|
data/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
A Ruby gem that wraps Blizzard's Game Data and Profile APIs.
|
|
4
4
|
|
|
5
|
+
### Please note, this project is not actively maintained, but PRs are always welcome!
|
|
6
|
+
|
|
5
7
|
## Installation
|
|
6
8
|
|
|
7
9
|
Add this line to your application's Gemfile:
|
|
@@ -32,11 +34,13 @@ RBattlenet.set_options(region: "us", locale: "en_US")
|
|
|
32
34
|
```
|
|
33
35
|
|
|
34
36
|
Singular requests will be returned as a `RBattlenet::Result` object. Requests with an array passed in will
|
|
35
|
-
be returned as a `RBattlenet::ResultCollection` object. If you want to simply receive the raw HTTP response
|
|
36
|
-
set that like so:
|
|
37
|
+
be returned as a `RBattlenet::ResultCollection` object by default. If you want to simply receive the raw HTTP response
|
|
38
|
+
or the response as a Hash you can set that like so:
|
|
37
39
|
|
|
38
40
|
```ruby
|
|
39
|
-
RBattlenet.set_options(
|
|
41
|
+
RBattlenet.set_options(response_type: :struct) # Default
|
|
42
|
+
RBattlenet.set_options(response_type: :hash)
|
|
43
|
+
RBattlenet.set_options(response_type: :raw)
|
|
40
44
|
```
|
|
41
45
|
|
|
42
46
|
#### Step 3. Call the API methods to request data
|
|
@@ -3,7 +3,7 @@ module RBattlenet
|
|
|
3
3
|
class Character < RBattlenet::Endpoints::Base
|
|
4
4
|
SUPPORTED_FIELDS = [:itself, :achievements, :appearance, :equipment, :hunter_pets, :keystones, :media,
|
|
5
5
|
:mounts, :pets, :pvp_summary, :reputations, :specializations, :statistics, :status,
|
|
6
|
-
:titles]
|
|
6
|
+
:titles, :legacy]
|
|
7
7
|
|
|
8
8
|
class << self
|
|
9
9
|
def path(character)
|
|
@@ -14,10 +14,30 @@ module RBattlenet
|
|
|
14
14
|
RBattlenet::Wow::Character::Achievements
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
+
def achievement_statistics
|
|
18
|
+
RBattlenet::Wow::Character::AchievementStatistics
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def active_quests
|
|
22
|
+
RBattlenet::Wow::Character::ActiveQuests
|
|
23
|
+
end
|
|
24
|
+
|
|
17
25
|
def appearance
|
|
18
26
|
RBattlenet::Wow::Character::Appearance
|
|
19
27
|
end
|
|
20
28
|
|
|
29
|
+
def completed_dungeons
|
|
30
|
+
RBattlenet::Wow::Character::CompletedDungeons
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def completed_quests
|
|
34
|
+
RBattlenet::Wow::Character::CompletedQuests
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def completed_raids
|
|
38
|
+
RBattlenet::Wow::Character::CompletedRaids
|
|
39
|
+
end
|
|
40
|
+
|
|
21
41
|
def equipment
|
|
22
42
|
RBattlenet::Wow::Character::Equipment
|
|
23
43
|
end
|
|
@@ -42,6 +62,22 @@ module RBattlenet
|
|
|
42
62
|
RBattlenet::Wow::Character::Pets
|
|
43
63
|
end
|
|
44
64
|
|
|
65
|
+
def professions
|
|
66
|
+
RBattlenet::Wow::Character::Professions
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def pvp_bracket_2v2
|
|
70
|
+
RBattlenet::Wow::Character::PvpBracket2v2
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def pvp_bracket_3v3
|
|
74
|
+
RBattlenet::Wow::Character::PvpBracket3v3
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def pvp_bracket_rbg
|
|
78
|
+
RBattlenet::Wow::Character::PvpBracketRbg
|
|
79
|
+
end
|
|
80
|
+
|
|
45
81
|
def pvp_summary
|
|
46
82
|
RBattlenet::Wow::Character::PvpSummary
|
|
47
83
|
end
|
|
@@ -65,6 +101,10 @@ module RBattlenet
|
|
|
65
101
|
def titles
|
|
66
102
|
RBattlenet::Wow::Character::Titles
|
|
67
103
|
end
|
|
104
|
+
|
|
105
|
+
def legacy
|
|
106
|
+
RBattlenet::Wow::Character::Legacy
|
|
107
|
+
end
|
|
68
108
|
end
|
|
69
109
|
end
|
|
70
110
|
end
|
data/lib/rbattlenet/endpoints/wow/character/{pvp_bracket_statistics.rb → achievement_statistics.rb}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
module RBattlenet
|
|
2
2
|
module Wow
|
|
3
|
-
class Character::
|
|
3
|
+
class Character::AchievementStatistics < RBattlenet::Endpoints::Base
|
|
4
4
|
def self.path(character)
|
|
5
|
-
RBattlenet.uri("profile/wow/character/#{character[:realm]}/#{character[:name]}/
|
|
5
|
+
RBattlenet.uri("profile/wow/character/#{character[:realm]}/#{character[:name]}/achievements/statistics?namespace=profile-")
|
|
6
6
|
end
|
|
7
7
|
end
|
|
8
8
|
end
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
module RBattlenet
|
|
2
|
+
module Wow
|
|
3
|
+
class Character::CompletedDungeons < RBattlenet::Endpoints::Base
|
|
4
|
+
def self.path(character)
|
|
5
|
+
RBattlenet.uri("profile/wow/character/#{character[:realm]}/#{character[:name]}/encounters/dungeons?namespace=profile-")
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
end
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
module RBattlenet
|
|
2
|
+
module Wow
|
|
3
|
+
class Character::CompletedQuests < RBattlenet::Endpoints::Base
|
|
4
|
+
def self.path(character)
|
|
5
|
+
RBattlenet.uri("profile/wow/character/#{character[:realm]}/#{character[:name]}/quests/completed?namespace=profile-")
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
end
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
module RBattlenet
|
|
2
|
+
module Wow
|
|
3
|
+
class Character::CompletedRaids < RBattlenet::Endpoints::Base
|
|
4
|
+
def self.path(character)
|
|
5
|
+
RBattlenet.uri("profile/wow/character/#{character[:realm]}/#{character[:name]}/encounters/raids?namespace=profile-")
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module RBattlenet
|
|
2
|
+
module Wow
|
|
3
|
+
class Character::Legacy < RBattlenet::Endpoints::Base
|
|
4
|
+
FIELDS = [
|
|
5
|
+
"items",
|
|
6
|
+
"reputation",
|
|
7
|
+
"audit",
|
|
8
|
+
"statistics",
|
|
9
|
+
"achievements",
|
|
10
|
+
"pets",
|
|
11
|
+
"pvp",
|
|
12
|
+
"professions",
|
|
13
|
+
"quests",
|
|
14
|
+
"mounts",
|
|
15
|
+
"titles",
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
def self.path(character)
|
|
19
|
+
RBattlenet.uri("wow/character/#{character[:realm]}/#{character[:name]}?#{self.endpoints}")
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def self.endpoints
|
|
23
|
+
"fields=#{FIELDS.join("&fields=")}"
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
module RBattlenet
|
|
2
2
|
@@region = "eu"
|
|
3
3
|
@@locale = "en_gb"
|
|
4
|
-
@@
|
|
4
|
+
@@response_type = :struct
|
|
5
|
+
@@concurrency = 20
|
|
6
|
+
@@timeout = 120
|
|
5
7
|
|
|
6
8
|
#Set Access Token for requests. Required
|
|
7
9
|
def self.authenticate(client_id:, client_secret:)
|
|
8
|
-
|
|
10
|
+
oauth_region = ["kr", "tw"].include?(@@region.downcase) ? "apac" : @@region
|
|
11
|
+
response = Typhoeus.post("https://#{oauth_region}.battle.net/oauth/token",
|
|
9
12
|
body: { grant_type: :client_credentials },
|
|
10
13
|
userpwd: "#{client_id}:#{client_secret}",
|
|
11
14
|
)
|
|
@@ -14,8 +17,8 @@ module RBattlenet
|
|
|
14
17
|
true
|
|
15
18
|
end
|
|
16
19
|
|
|
17
|
-
def self.set_options(region: @@region, locale: @@locale,
|
|
18
|
-
@@region, @@locale, @@
|
|
20
|
+
def self.set_options(region: @@region, locale: @@locale, response_type: @@response_type, concurrency: @@concurrency, timeout: @@timeout)
|
|
21
|
+
@@region, @@locale, @@response_type, @@concurrency, @@timeout = region, locale, response_type, concurrency, timeout
|
|
19
22
|
true
|
|
20
23
|
end
|
|
21
24
|
|
|
@@ -23,19 +26,19 @@ module RBattlenet
|
|
|
23
26
|
|
|
24
27
|
class << self
|
|
25
28
|
def get(subjects)
|
|
26
|
-
store = @@raw ? [] : RBattlenet::ResultCollection.new
|
|
29
|
+
store = @@response_type == :raw ? [] : RBattlenet::ResultCollection.new(@@response_type)
|
|
27
30
|
|
|
28
31
|
headers = {}
|
|
29
32
|
headers['Authorization'] = "Bearer #{@@token}" if @@token
|
|
30
33
|
|
|
31
34
|
# Limit concurrency to prevent hitting the API request per-second cap.
|
|
32
|
-
hydra = Typhoeus::Hydra.new(max_concurrency:
|
|
35
|
+
hydra = Typhoeus::Hydra.new(max_concurrency: @@concurrency)
|
|
33
36
|
subjects.each do |uris, subject|
|
|
34
37
|
uris.each do |field, uri|
|
|
35
|
-
request = Typhoeus::Request.new(URI.encode(uri), headers: headers)
|
|
38
|
+
request = Typhoeus::Request.new(URI.encode(uri), headers: headers, timeout: @@timeout)
|
|
36
39
|
|
|
37
40
|
request.on_complete do |response|
|
|
38
|
-
if @@raw
|
|
41
|
+
if @@response_type == :raw
|
|
39
42
|
store << response
|
|
40
43
|
else
|
|
41
44
|
store.add(subject, field, response)
|
|
@@ -52,8 +55,6 @@ module RBattlenet
|
|
|
52
55
|
|
|
53
56
|
hydra.run
|
|
54
57
|
store.size == 1 ? store.first : store
|
|
55
|
-
rescue => err
|
|
56
|
-
raise RBattlenet::Errors::ConnectionError.new
|
|
57
58
|
end
|
|
58
59
|
|
|
59
60
|
def uri(path)
|
|
@@ -6,42 +6,35 @@ module RBattlenet
|
|
|
6
6
|
|
|
7
7
|
attr_reader :results
|
|
8
8
|
|
|
9
|
-
def initialize
|
|
9
|
+
def initialize(response_type)
|
|
10
|
+
@response_object = response_type == :hash ? HashResult : Result
|
|
11
|
+
@empty_response_object = response_type == :hash ? EmptyHashResult : EmptyResult
|
|
10
12
|
@results = []
|
|
11
13
|
end
|
|
12
14
|
|
|
13
15
|
def add(subject, field, response)
|
|
14
16
|
data = if response.code == 200
|
|
15
|
-
result = JSON.parse(response.body, object_class:
|
|
16
|
-
result.is_a?(Array) ?
|
|
17
|
-
|
|
18
|
-
EmptyResult.new(status_code: response.code, response: response)
|
|
19
|
-
end
|
|
17
|
+
result = JSON.parse(response.body, object_class: @response_object) rescue nil
|
|
18
|
+
result && (result.is_a?(Array) ? @response_object.new(data: result.size == 1 ? result.first : result) : result)
|
|
19
|
+
end || @empty_response_object.new(status_code: response.code)
|
|
20
20
|
|
|
21
|
-
data
|
|
22
|
-
data
|
|
21
|
+
data[:status_code] ||= 200
|
|
22
|
+
data[:source], data[:field] = subject, field
|
|
23
23
|
@results << data
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def complete(subject, results_needed)
|
|
27
|
-
subject_results = @results.group_by
|
|
27
|
+
subject_results = @results.group_by{ |result| result[:source] }[subject]
|
|
28
28
|
if subject_results.size == results_needed
|
|
29
|
-
@results.reject!{ |result| result
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
base_result = subject_results.select{ |result| result.field == :itself }.first
|
|
33
|
-
(subject_results - [base_result]).each{ |result| base_result << result }
|
|
34
|
-
end
|
|
29
|
+
@results.reject!{ |result| result[:source] == subject }
|
|
30
|
+
base_result = subject_results.select{ |result| result[:field] == :itself }.first
|
|
31
|
+
(subject_results - [base_result]).each{ |result| base_result << result }
|
|
35
32
|
|
|
36
33
|
@results << base_result
|
|
37
34
|
base_result
|
|
38
35
|
end
|
|
39
36
|
end
|
|
40
37
|
|
|
41
|
-
def has_errors?
|
|
42
|
-
@results.map(&:class).include? EmptyResult
|
|
43
|
-
end
|
|
44
|
-
|
|
45
38
|
def_delegators :results, :first, :last, :size
|
|
46
39
|
end
|
|
47
40
|
|
|
@@ -51,5 +44,12 @@ module RBattlenet
|
|
|
51
44
|
end
|
|
52
45
|
end
|
|
53
46
|
|
|
47
|
+
class HashResult < Hash
|
|
48
|
+
def <<(result)
|
|
49
|
+
self[result[:field]] = result[result[:field]] || result
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
54
53
|
class EmptyResult < Result; end
|
|
54
|
+
class EmptyHashResult < HashResult; end
|
|
55
55
|
end
|
data/lib/rbattlenet/version.rb
CHANGED
data/rbattlenet.gemspec
CHANGED
|
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
|
|
|
24
24
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
25
25
|
spec.add_development_dependency 'vcr', '~> 2.9.3'
|
|
26
26
|
spec.add_development_dependency "webmock"
|
|
27
|
+
spec.add_development_dependency "byebug"
|
|
27
28
|
|
|
28
29
|
spec.add_runtime_dependency "typhoeus", "~> 1.1"
|
|
29
30
|
spec.add_runtime_dependency "require_all" # convenience
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe RBattlenet::Wow::Character::AchievementStatistics do
|
|
4
|
+
before do
|
|
5
|
+
RBattlenet.authenticate(client_id: ENV["CLIENT_ID"], client_secret: ENV["CLIENT_SECRET"])
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
describe "#find_character_achievement_statistics" do
|
|
9
|
+
it "fetches character data" do
|
|
10
|
+
with_connection("wow_character_achievement_statistics") do
|
|
11
|
+
result = RBattlenet::Wow::Character::AchievementStatistics.find(realm: "stormrage", name: "sheday")
|
|
12
|
+
expect(result.statistics.class).to eq Array
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
describe "#find_multiple_character_achievement_statisticss" do
|
|
18
|
+
it "fetches character data" do
|
|
19
|
+
with_connection("wow_character_achievement_statistics_multiple") do
|
|
20
|
+
collection = RBattlenet::Wow::Character::AchievementStatistics.find([
|
|
21
|
+
{ realm: "stormrage", name: "sheday" },
|
|
22
|
+
{ realm: "howling-fjord", name: "альвеоняша" },
|
|
23
|
+
])
|
|
24
|
+
expect(collection.results.map(&:statistics).map(&:class)).to eq [Array, Array]
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe RBattlenet::Wow::Character::ActiveQuests do
|
|
4
|
+
before do
|
|
5
|
+
RBattlenet.authenticate(client_id: ENV["CLIENT_ID"], client_secret: ENV["CLIENT_SECRET"])
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
describe "#find_character_active_quests" do
|
|
9
|
+
it "fetches character data" do
|
|
10
|
+
with_connection("wow_character_active_quests") do
|
|
11
|
+
result = RBattlenet::Wow::Character::ActiveQuests.find(realm: "stormrage", name: "sheday")
|
|
12
|
+
expect(result.in_progress.class).to eq Array
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
describe "#find_multiple_character_active_questss" do
|
|
18
|
+
it "fetches character data" do
|
|
19
|
+
with_connection("wow_character_active_quests_multiple") do
|
|
20
|
+
collection = RBattlenet::Wow::Character::ActiveQuests.find([
|
|
21
|
+
{ realm: "stormrage", name: "sheday" },
|
|
22
|
+
{ realm: "howling-fjord", name: "альвеоняша" },
|
|
23
|
+
])
|
|
24
|
+
expect(collection.results.map(&:in_progress).map(&:class)).to eq [Array, Array]
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe RBattlenet::Wow::Character::CompletedDungeons do
|
|
4
|
+
before do
|
|
5
|
+
RBattlenet.authenticate(client_id: ENV["CLIENT_ID"], client_secret: ENV["CLIENT_SECRET"])
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
describe "#find_character_completed_dungeons" do
|
|
9
|
+
it "fetches character data" do
|
|
10
|
+
with_connection("wow_character_completed_dungeons") do
|
|
11
|
+
result = RBattlenet::Wow::Character::CompletedDungeons.find(realm: "stormrage", name: "sheday")
|
|
12
|
+
expect(result.expansions.class).to eq Array
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
describe "#find_multiple_character_completed_dungeonss" do
|
|
18
|
+
it "fetches character data" do
|
|
19
|
+
with_connection("wow_character_completed_dungeons_multiple") do
|
|
20
|
+
collection = RBattlenet::Wow::Character::CompletedDungeons.find([
|
|
21
|
+
{ realm: "stormrage", name: "sheday" },
|
|
22
|
+
{ realm: "howling-fjord", name: "альвеоняша" },
|
|
23
|
+
])
|
|
24
|
+
expect(collection.results.map(&:expansions).map(&:class)).to eq [Array, Array]
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|