bnet 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 83441fb0f7b201fd909da8e13e1a16a60e8ccd31
4
- data.tar.gz: 6db7f0ed49edcf0151f65a1f22e4d0e6fcc60b9c
3
+ metadata.gz: 6579c6af8e90cabd36c994dada112e6ea966ea3e
4
+ data.tar.gz: 4cb4347e3015db6adfa60214fb6ab0d3fcf01257
5
5
  SHA512:
6
- metadata.gz: 4243c63304e6b2613d8fd9db052646e1dac73219794304f2a0deb0c5d6dc44522bbfefa9a479d5b2887bde67360b12c28fa67ad2c2328e6a8735340c93949fac
7
- data.tar.gz: c675bcc2dd54da3aad5af621cc5245ca6805a2be31657fb50774464b2923a61d5c06b7621d80cd64558903d6520d29ac50ecdc5f01d8512e5763f05e69500787
6
+ metadata.gz: a472e1e583b1719d1016b2be5b73f9b0720ecda1073fbdd3afbad37a65a4839ab9f752ae08dc59a66237a3bd99d0216d94676e3ef8b8c986ed2d04044037b2c4
7
+ data.tar.gz: 69767dabae0858fac67bcda254f9482af8f873dfa8352b55a25ab1b9489a58808ed5d34d12ccb5778d344dada87738ec1b81bac9f39dc669a8a0f6898087a6d7
data/README.md CHANGED
@@ -14,7 +14,7 @@ This is a work in progress : [TODO-LIST](https://github.com/keikun17/bnet-masher
14
14
 
15
15
  ## Configuration
16
16
 
17
- # initializer file (cnonfig/initializer/bnet_initializer.rb)
17
+ # initializer file (config/initializer/bnet_initializer.rb)
18
18
  Bnet.configuration.api_key = 'your_api_key'
19
19
 
20
20
  ## Diablo
@@ -60,9 +60,20 @@ This is a work in progress : [TODO-LIST](https://github.com/keikun17/bnet-masher
60
60
  #
61
61
  # Returns a Hero object with the following attributes
62
62
  #
63
- # :paragon_level, :seasonal, :name, :hero_id,
64
- # :level, :hardcore, :gender, :dead, :hero_class, :last_update,
65
- # :active_skills, :passive_skills, :region, :battle_tag, :career
63
+ # :life, :damage, :attack_speed, :armor, :strength, :dexterity, :vitality,
64
+ # :intelligence, :physical_resist, :fire_resist, :cold_resist,
65
+ # :lightning_resist, :poison_resist, :arcane_resist, :crit_damage,
66
+ # :block_chance, :block_amount_min, :block_amount_max, :damage_increase,
67
+ # :crit_chance, :damage_reduction, :thorns, :life_steal, :life_per_kill,
68
+ # :gold_find, :magic_find, :life_on_Hit, :primary_resource,
69
+ # :secondary_resource
70
+ #
71
+ # and the following misc attributes
72
+ #
73
+ # :paragon_level, :seasonal, :name, :hero_id,
74
+ # :level, :hardcore, :gender, :dead, :hero_class, :last_update,
75
+ # :active_skills, :passive_skills, :region, :battle_tag, :career,
76
+ # :items
66
77
 
67
78
  Bnet::Diablo3::Hero.find(battle_tag: 'PlayerOne-1309', region: 'us', hero_id: 1304986)
68
79
 
data/TODO.md CHANGED
@@ -5,7 +5,7 @@
5
5
  - [ ] Bnet::Community [ ] doc
6
6
  - [ ] Bnet::Diablo3 [ ] doc
7
7
  - [ ] Bnet::Starcraft2 [ ] doc
8
- - [ ] Bnet::Wow [ ] doc
8
+ - [ ] Bnet::WOW [ ] doc
9
9
  - [ ] Bnet::Rails [ ] doc
10
10
 
11
11
  ### Diablo
@@ -13,7 +13,7 @@
13
13
  - [x] Bnet::Diabo3::Career [x] doc
14
14
  - [x] Heroes (as `Hero`) [x] doc
15
15
  - [x] Bnet::Diabo3::Hero [x] doc
16
- - [x] Bnet::Diablo3::Skill [ ] doc
16
+ - [x] Bnet::Diablo3::Skill
17
17
  - [ ] Bnet::Diablo3::Data [ ] doc
18
18
  - [ ] Items [ ] doc
19
19
  - [ ] Followers [ ] doc
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.add_development_dependency "bundler", "~> 1.6"
22
22
  spec.add_development_dependency "rake", "~> 10.0"
23
23
 
24
- spec.add_development_dependency "rspec"
24
+ spec.add_development_dependency "rspec", "~> 3.1"
25
25
  spec.add_development_dependency "rspec-nc"
26
26
  spec.add_development_dependency "guard"
27
27
  spec.add_development_dependency "guard-rspec"
@@ -19,6 +19,7 @@ require "bnet/bnet_resource"
19
19
  require 'bnet/account'
20
20
  require 'bnet/diablo3'
21
21
  require 'bnet/diablo3/career'
22
+ require 'bnet/diablo3/item'
22
23
  require 'bnet/diablo3/hero'
23
24
  require 'bnet/diablo3/skill'
24
25
  # require 'bnet/community'
@@ -2,7 +2,17 @@ class Bnet::Diablo3::Hero < Bnet::BnetResource
2
2
 
3
3
  attr_accessor :paragon_level, :seasonal, :name, :hero_id,
4
4
  :level, :hardcore, :gender, :dead, :hero_class, :last_update,
5
- :active_skills, :passive_skills, :region, :battle_tag, :career
5
+ :active_skills, :passive_skills, :region, :battle_tag, :career,
6
+ :items,
7
+
8
+ # stats
9
+ :life, :damage, :attack_speed, :armor, :strength, :dexterity, :vitality,
10
+ :intelligence, :physical_resist, :fire_resist, :cold_resist,
11
+ :lightning_resist, :poison_resist, :arcane_resist, :crit_damage,
12
+ :block_chance, :block_amount_min, :block_amount_max, :damage_increase,
13
+ :crit_chance, :damage_reduction, :thorns, :life_steal, :life_per_kill,
14
+ :gold_find, :magic_find, :life_on_Hit, :primary_resource,
15
+ :secondary_resource
6
16
 
7
17
  PARAMS_MAPPING = {
8
18
  "paragonLevel" => :paragon_level,
@@ -14,7 +24,7 @@ class Bnet::Diablo3::Hero < Bnet::BnetResource
14
24
  "gender" => :gender,
15
25
  "dead" => :dead,
16
26
  "class" => :hero_class,
17
- "last-updated" => :last_updated
27
+ "last-updated" => :last_updated,
18
28
  }
19
29
 
20
30
 
@@ -99,33 +109,87 @@ class Bnet::Diablo3::Hero < Bnet::BnetResource
99
109
 
100
110
  # Create an instance by passing in the args from the response
101
111
  def self.from_api(response)
102
- bnet_resource = super(response)
112
+ hero = super(response)
103
113
 
104
- if bnet_resource && response["skills"]
105
- bnet_resource.active_skills = response["skills"]["active"].collect do |active|
114
+ if hero
115
+ assign_skills_from_raw_skills(hero, response["skills"]) if response["skills"]
116
+ assign_stats_from_raw_stats(hero, response["stats"]) if response["stats"]
117
+ assign_items_from_raw_items(hero, response["items"]) if response["items"]
118
+ end
119
+
120
+ return hero
121
+ end
106
122
 
107
- skill = Bnet::Diablo3::Skill.new
108
- if active["skill"]
109
- skill.name = active["skill"]["name"]
110
- end
111
- if active["rune"]
112
- skill.rune = active["rune"]["name"]
113
- end
123
+ private
114
124
 
115
- skill
125
+ def self.assign_items_from_raw_items(hero, raw_items)
126
+ hero.items = raw_items.collect do |location, item_props|
127
+ item = Bnet::Diablo3::Item.new
128
+ item.location = location
129
+ item.item_id = item_props["id"]
130
+ item.name = item_props["name"]
131
+ item
132
+ end
133
+
134
+ return hero
135
+ end
116
136
 
137
+ def self.assign_skills_from_raw_skills(hero, raw_skills)
138
+ hero.active_skills = raw_skills["active"].collect do |active|
139
+ skill = Bnet::Diablo3::Skill.new
140
+ if active["skill"]
141
+ skill.name = active["skill"]["name"]
117
142
  end
143
+ if active["rune"]
144
+ skill.rune = active["rune"]["name"]
145
+ end
146
+
147
+ skill
148
+ end
118
149
 
119
- bnet_resource.passive_skills = response["skills"]["passive"].collect do |passive|
120
- skill = Bnet::Diablo3::Skill.new
121
- if passive["skill"]
122
- skill.name = passive["skill"]["name"]
123
- end
124
- skill
150
+ hero.passive_skills = raw_skills["passive"].collect do |passive|
151
+ skill = Bnet::Diablo3::Skill.new
152
+ if passive["skill"]
153
+ skill.name = passive["skill"]["name"]
125
154
  end
155
+ skill
126
156
  end
127
157
 
128
- bnet_resource
158
+ return hero
159
+ end
160
+
161
+ def self.assign_stats_from_raw_stats(hero, raw_stats)
162
+ hero.life = raw_stats["life"]
163
+ hero.damage = raw_stats["damage"]
164
+ hero.attack_speed = raw_stats["attackSpeed"]
165
+ hero.armor = raw_stats["armor"]
166
+ hero.strength = raw_stats["strength"]
167
+ hero.dexterity = raw_stats["dexterity"]
168
+ hero.vitality = raw_stats["vitality"]
169
+ hero.intelligence = raw_stats["intelligence"]
170
+ hero.physical_resist = raw_stats["physicalResist"]
171
+ hero.fire_resist = raw_stats["fireResist"]
172
+ hero.cold_resist = raw_stats["coldResist"]
173
+ hero.lightning_resist = raw_stats["lightningResist"]
174
+ hero.poison_resist = raw_stats["poisonResist"]
175
+ hero.arcane_resist = raw_stats["arcaneResist"]
176
+ hero.crit_damage = raw_stats["critDamage"]
177
+ hero.block_chance = raw_stats["blockChance"]
178
+ hero.block_amount_min = raw_stats["blockAmountMin"]
179
+ hero.block_amount_max = raw_stats["blockAmountMax"]
180
+ hero.damage_increase = raw_stats["damageIncrease"]
181
+ hero.crit_chance = raw_stats["critChance"]
182
+ hero.damage_reduction = raw_stats["damageReduction"]
183
+ hero.thorns = raw_stats["thorns"]
184
+ hero.life_steal = raw_stats["lifeSteal"]
185
+ hero.life_per_kill = raw_stats["lifePerKill"]
186
+ hero.gold_find = raw_stats["goldFind"]
187
+ hero.magic_find = raw_stats["magicFind"]
188
+ hero.life_on_Hit = raw_stats["lifeOnHit"]
189
+ hero.primary_resource = raw_stats["primaryResource"]
190
+ hero.secondary_resource = raw_stats["secondaryResource"]
191
+
192
+ return hero
129
193
  end
130
194
 
131
195
  end
@@ -0,0 +1,3 @@
1
+ class Bnet::Diablo3::Item
2
+ attr_accessor :item_id, :location, :name
3
+ end
@@ -1,3 +1,3 @@
1
1
  module Bnet
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -20,17 +20,69 @@ describe Bnet::Diablo3::Hero do
20
20
  expect(subject.hero_class).to eq('wizard')
21
21
  end
22
22
 
23
+ it "assigns items" do
24
+ expect(subject.items).to match([
25
+ an_object_having_attributes(location: "head", name: "Leoric's Crown", item_id: "Unique_Helm_002_x1" ),
26
+ an_object_having_attributes(location: "torso"),
27
+ an_object_having_attributes(location: "feet"),
28
+ an_object_having_attributes(location: "hands"),
29
+ an_object_having_attributes(location: "shoulders"),
30
+ an_object_having_attributes(location: "legs"),
31
+ an_object_having_attributes(location: "bracers"),
32
+ an_object_having_attributes(location: "mainHand"),
33
+ an_object_having_attributes(location: "offHand"),
34
+ an_object_having_attributes(location: "waist"),
35
+ an_object_having_attributes(location: "rightFinger"),
36
+ an_object_having_attributes(location: "leftFinger"),
37
+ an_object_having_attributes(location: "neck")
38
+ ])
39
+ end
40
+
41
+ it "assigns stats" do
42
+ expect(subject).to have_attributes({
43
+ life: 266712,
44
+ damage: 412878.0,
45
+ attack_speed: 1.284000051021576,
46
+ armor: 5327,
47
+ strength: 77,
48
+ dexterity: 77,
49
+ vitality: 3089,
50
+ intelligence: 7189,
51
+ physical_resist: 1021,
52
+ fire_resist: 1152,
53
+ cold_resist: 897,
54
+ lightning_resist: 1190,
55
+ poison_resist: 897,
56
+ arcane_resist: 1040,
57
+ crit_damage: 3.18,
58
+ block_chance: 0.0,
59
+ block_amount_min: 0,
60
+ block_amount_max: 0,
61
+ damage_increase: 0.0,
62
+ crit_chance: 0.38500000075,
63
+ damage_reduction: 0.0,
64
+ thorns: 0.0,
65
+ life_steal: 0.0,
66
+ life_per_kill: 6701.0,
67
+ gold_find: 2.03,
68
+ magic_find: 0.0,
69
+ life_on_Hit: 6542.0,
70
+ primary_resource: 133,
71
+ secondary_resource: 0
72
+ })
73
+ end
74
+
23
75
  it "assigns skills" do
24
76
  expect(subject.active_skills.map(&:name)).
25
77
  to match_array([ "Magic Missile", "Arcane Orb",
26
78
  "Hydra", "Familiar", "Magic Weapon",
27
79
  "Teleport" ])
28
80
 
29
- expect(subject.active_skills.map(&:rune)).
30
- to match_array([ "Seeker", "Frozen Orb", "Frost Hydra", "Sparkflint",
31
- "Force Weapon", "Fracture"])
81
+ expect(subject.active_skills.map(&:rune)).
82
+ to match_array([ "Seeker", "Frozen Orb", "Frost Hydra", "Sparkflint",
83
+ "Force Weapon", "Fracture"])
32
84
 
33
- expect(subject.passive_skills.map(&:name)).
85
+ expect(subject.passive_skills.map(&:name)).
34
86
  to match_array([ "Elemental Exposure", "Prodigy", "Astral Presence",
35
87
  "Cold Blooded" ])
36
88
  end
@@ -0,0 +1,4 @@
1
+ require 'spec_helper'
2
+
3
+ describe Bnet::Diablo3::Item do
4
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bnet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Buddy Magsipoc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-05 00:00:00.000000000 Z
11
+ date: 2014-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '3.1'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '3.1'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec-nc
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -216,6 +216,7 @@ files:
216
216
  - lib/bnet/diablo3.rb
217
217
  - lib/bnet/diablo3/career.rb
218
218
  - lib/bnet/diablo3/hero.rb
219
+ - lib/bnet/diablo3/item.rb
219
220
  - lib/bnet/diablo3/skill.rb
220
221
  - lib/bnet/starcraft2.rb
221
222
  - lib/bnet/starcraft2/profile.rb
@@ -230,6 +231,7 @@ files:
230
231
  - spec/bnet/api_spec.rb
231
232
  - spec/bnet/diablo3/career_spec.rb
232
233
  - spec/bnet/diablo3/hero_spec.rb
234
+ - spec/bnet/diablo3/item_spec.rb
233
235
  - spec/bnet/diablo3/skill_spec.rb
234
236
  - spec/bnet/diablo3_spec.rb
235
237
  - spec/bnet/starcraft2/profile_spec.rb
@@ -271,6 +273,7 @@ test_files:
271
273
  - spec/bnet/api_spec.rb
272
274
  - spec/bnet/diablo3/career_spec.rb
273
275
  - spec/bnet/diablo3/hero_spec.rb
276
+ - spec/bnet/diablo3/item_spec.rb
274
277
  - spec/bnet/diablo3/skill_spec.rb
275
278
  - spec/bnet/diablo3_spec.rb
276
279
  - spec/bnet/starcraft2/profile_spec.rb