wow_community_api 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -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