wow_community_api 0.0.5 → 0.0.6

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.
@@ -8,7 +8,7 @@ module WowCommunityApi
8
8
  base_uri region(Regions::US)
9
9
 
10
10
  def self.get(path, options = {})
11
- super(URI.encode(path), options)
11
+ super(URI.encode(path), options).to_ostruct
12
12
  end
13
13
 
14
14
  end
@@ -1,7 +1,8 @@
1
1
  module WowCommunityApi
2
2
  class Character < BattleNet
3
- def self.find_by_realm_and_name(realm, name)
4
- get("/character/#{realm}/#{name}").to_ostruct
3
+ def self.find_by_realm_and_name(realm, name, *field)
4
+ fields = { :fields => field.join(",") } if field.size > 0
5
+ get("/character/#{realm}/#{name}", :query => fields)
5
6
  end
6
7
  end
7
8
  end
@@ -1,7 +1,8 @@
1
1
  module WowCommunityApi
2
2
  class Guild < BattleNet
3
- def self.find_by_realm_and_name(realm, name)
4
- get("/guild/#{realm}/#{name}").to_ostruct
3
+ def self.find_by_realm_and_name(realm, name, *field)
4
+ fields = { :fields => field.join(",") } if field.size > 0
5
+ get("/guild/#{realm}/#{name}", :query => fields)
5
6
  end
6
7
  end
7
8
  end
@@ -2,9 +2,8 @@ module WowCommunityApi
2
2
  class Realm < BattleNet
3
3
  def self.find_by_name(*name)
4
4
  names = { :realms => name.join(",") } if name.size > 0
5
- results = get("/realm/status", :query => names).to_ostruct
6
- realms = results.realms
7
- (name.size == 1) ? realms.first : realms
5
+ results = get("/realm/status", :query => names)
6
+ (name.size == 1) ? results.realms.first : results.realms
8
7
  end
9
8
 
10
9
  def self.find_all()
@@ -1,3 +1,3 @@
1
1
  module WowCommunityApi
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -16,5 +16,22 @@ describe Character do
16
16
  character.realm.should == 'Altar of Storms'
17
17
  character.name.should == 'Johndoe'
18
18
  end
19
+
20
+ it 'gets a character with optional field guild' do
21
+ stub_json 'http://us.battle.net/api/wow/character/uther/malkyth?fields=guild', 'character-guild.json'
22
+
23
+ character = Character.find_by_realm_and_name('uther', 'malkyth', :guild)
24
+ character.guild.name.should == "Havok"
25
+ character.guild.emblem.icon.should == 106
26
+ end
27
+
28
+ it 'gets a character with multiple optional fields' do
29
+ stub_json 'http://us.battle.net/api/wow/character/uther/malkyth?fields=guild,titles', 'character-all-fields.json'
30
+
31
+ character = Character.find_by_realm_and_name('uther', 'malkyth', :guild, :titles)
32
+ character.guild.name.should == "Havok"
33
+ character.titles.size.should == 3
34
+ character.titles[0].name.should == "Centurion %s"
35
+ end
19
36
  end
20
37
  end
@@ -0,0 +1,39 @@
1
+ {
2
+ "lastModified":1311111102000,
3
+ "name":"Malkyth",
4
+ "realm":"Uther",
5
+ "class":9,
6
+ "race":5,
7
+ "gender":0,
8
+ "level":85,
9
+ "achievementPoints":11030,
10
+ "thumbnail":"uther/243/6004211-avatar.jpg",
11
+ "guild":{
12
+ "name":"Havok",
13
+ "realm":"Uther",
14
+ "level":25,
15
+ "members":525,
16
+ "achievementPoints":1425,
17
+ "emblem":{
18
+ "icon":106,
19
+ "iconColor":"ffffff00",
20
+ "border":0,
21
+ "borderColor":"ffffffff",
22
+ "backgroundColor":"ffffff91"
23
+ }
24
+ },
25
+ "titles":[
26
+ {
27
+ "id":23,
28
+ "name":"Centurion %s"
29
+ },
30
+ {
31
+ "id":47,
32
+ "name":"Conqueror %s"
33
+ },
34
+ {
35
+ "id":81,
36
+ "name":"%s the Seeker"
37
+ }
38
+ ]
39
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "lastModified":1311111102000,
3
+ "name":"Malkyth",
4
+ "realm":"Uther",
5
+ "class":9,
6
+ "race":5,
7
+ "gender":0,
8
+ "level":85,
9
+ "achievementPoints":11030,
10
+ "thumbnail":"uther/243/6004211-avatar.jpg",
11
+ "guild":{
12
+ "name":"Havok",
13
+ "realm":"Uther",
14
+ "level":25,
15
+ "members":525,
16
+ "achievementPoints":1425,
17
+ "emblem":{
18
+ "icon":106,
19
+ "iconColor":"ffffff00",
20
+ "border":0,
21
+ "borderColor":"ffffffff",
22
+ "backgroundColor":"ffffff91"
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,58 @@
1
+
2
+ {
3
+ "lastModified":1311117979000,
4
+ "name":"is epic",
5
+ "realm":"Arygos",
6
+ "level":25,
7
+ "side":0,
8
+ "achievementPoints":1510,
9
+ "achievements":{
10
+ "achievementsCompleted":[4860,4861,4912],
11
+ "achievementsCompletedTimestamp":[1293347365000,1301697662000,1302416261000],
12
+ "criteria":[13756,13757,13829],
13
+ "criteriaQuantity":[25,501107873,1],
14
+ "criteriaTimestamp":[1302416261000,1299962276000,1301697662000],
15
+ "criteriaCreated":[1291709573000,1292727089000,1301697662000]
16
+ },
17
+ "members":[
18
+ {
19
+ "character":{
20
+ "name":"Myrlidaren",
21
+ "realm":"Arygos",
22
+ "class":1,
23
+ "race":4,
24
+ "gender":0,
25
+ "level":75,
26
+ "achievementPoints":0,
27
+ "thumbnail":"arygos/86/7232086-avatar.jpg"
28
+ },
29
+ "rank":9
30
+ },
31
+ {
32
+ "character":{
33
+ "name":"Dragonhuntr",
34
+ "realm":"Arygos",
35
+ "class":3,
36
+ "race":4,
37
+ "gender":1,
38
+ "level":85,
39
+ "achievementPoints":0,
40
+ "thumbnail":"arygos/146/7238034-avatar.jpg"
41
+ },
42
+ "rank":8
43
+ },
44
+ {
45
+ "character":{
46
+ "name":"Jlarry",
47
+ "realm":"Arygos",
48
+ "class":1,
49
+ "race":1,
50
+ "gender":0,
51
+ "level":80,
52
+ "achievementPoints":0,
53
+ "thumbnail":"arygos/93/7243101-avatar.jpg"
54
+ },
55
+ "rank":8
56
+ }
57
+ ]
58
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "lastModified":1311117979000,
3
+ "name":"is epic",
4
+ "realm":"Arygos",
5
+ "level":25,
6
+ "side":0,
7
+ "achievementPoints":1510,
8
+ "members":[
9
+ {
10
+ "character":{
11
+ "name":"Myrlidaren",
12
+ "realm":"Arygos",
13
+ "class":1,
14
+ "race":4,
15
+ "gender":0,
16
+ "level":75,
17
+ "achievementPoints":0,
18
+ "thumbnail":"arygos/86/7232086-avatar.jpg"
19
+ },
20
+ "rank":9
21
+ },
22
+ {
23
+ "character":{
24
+ "name":"Dragonhuntr",
25
+ "realm":"Arygos",
26
+ "class":3,
27
+ "race":4,
28
+ "gender":1,
29
+ "level":85,
30
+ "achievementPoints":0,
31
+ "thumbnail":"arygos/146/7238034-avatar.jpg"
32
+ },
33
+ "rank":8
34
+ },
35
+ {
36
+ "character":{
37
+ "name":"Jlarry",
38
+ "realm":"Arygos",
39
+ "class":1,
40
+ "race":1,
41
+ "gender":0,
42
+ "level":80,
43
+ "achievementPoints":0,
44
+ "thumbnail":"arygos/93/7243101-avatar.jpg"
45
+ },
46
+ "rank":8
47
+ }
48
+ ]
49
+ }
data/spec/guild_spec.rb CHANGED
@@ -16,5 +16,22 @@ describe Guild do
16
16
  guild.realm.should == 'Altar of Storms'
17
17
  guild.name.should == 'Devilsaur May Cry'
18
18
  end
19
+
20
+ it 'gets a guild with optional field members' do
21
+ stub_json 'http://us.battle.net/api/wow/guild/arygos/is%20epic?fields=members', 'guild-members.json'
22
+
23
+ guild = Guild.find_by_realm_and_name('arygos', 'is epic', :members)
24
+ guild.members.size.should == 3
25
+ guild.members[0].character.name.should == "Myrlidaren"
26
+ end
27
+
28
+ it 'gets a guild with multiple optional fields' do
29
+ stub_json 'http://us.battle.net/api/wow/guild/arygos/is%20epic?fields=members,achievements', 'guild-all-fields.json'
30
+
31
+ guild = Guild.find_by_realm_and_name('arygos', 'is epic', :members, :achievements)
32
+ guild.members.size.should == 3
33
+ guild.members[0].character.name.should == "Myrlidaren"
34
+ guild.achievements.achievementsCompleted.size.should == 3
35
+ end
19
36
  end
20
37
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: wow_community_api
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.5
5
+ version: 0.0.6
6
6
  platform: ruby
7
7
  authors:
8
8
  - eddie cianci
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-07-19 00:00:00 Z
13
+ date: 2011-07-20 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
@@ -82,9 +82,13 @@ files:
82
82
  - lib/wow_community_api/version.rb
83
83
  - spec/battle_net_spec.rb
84
84
  - spec/character_spec.rb
85
+ - spec/fixtures/character-all-fields.json
85
86
  - spec/fixtures/character-doe.json
87
+ - spec/fixtures/character-guild.json
86
88
  - spec/fixtures/character.json
89
+ - spec/fixtures/guild-all-fields.json
87
90
  - spec/fixtures/guild-dmc.json
91
+ - spec/fixtures/guild-members.json
88
92
  - spec/fixtures/guild.json
89
93
  - spec/fixtures/realms-all.json
90
94
  - spec/fixtures/realms-aos.json
@@ -124,9 +128,13 @@ summary: World of Warcraft Community Platform API
124
128
  test_files:
125
129
  - spec/battle_net_spec.rb
126
130
  - spec/character_spec.rb
131
+ - spec/fixtures/character-all-fields.json
127
132
  - spec/fixtures/character-doe.json
133
+ - spec/fixtures/character-guild.json
128
134
  - spec/fixtures/character.json
135
+ - spec/fixtures/guild-all-fields.json
129
136
  - spec/fixtures/guild-dmc.json
137
+ - spec/fixtures/guild-members.json
130
138
  - spec/fixtures/guild.json
131
139
  - spec/fixtures/realms-all.json
132
140
  - spec/fixtures/realms-aos.json