d3api 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -15,4 +15,5 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
- spec/cassettes/*
18
+ spec/cassettes/*.*
19
+ .DS_Store
data/lib/d3api.rb CHANGED
@@ -7,15 +7,14 @@ module D3api
7
7
  autoload :Career, 'd3api/career'
8
8
 
9
9
  autoload :Hero, 'd3api/hero'
10
- autoload :HeroSet, 'd3api/hero_set'
10
+ autoload :HeroSet, 'd3api/hero/set'
11
+ autoload :HeroSkillSet, 'd3api/hero/skill_set'
12
+ autoload :HeroStats, 'd3api/hero/stats'
13
+ autoload :HeroFollowerSet, 'd3api/hero/follower_set'
14
+ autoload :HeroFollower, 'd3api/hero/follower'
11
15
 
12
- autoload :EquippedItem, 'd3api/equipped_item'
13
- autoload :EquippedItemSet, 'd3api/equipped_item_set'
14
-
15
- autoload :HeroSkills, 'd3api/hero_skills'
16
-
17
- autoload :HeroFollowerSet, 'd3api/hero_follower_set'
18
- autoload :HeroFollower, 'd3api/hero_follower'
16
+ autoload :EquippedItem, 'd3api/item/equipped_item'
17
+ autoload :EquippedItemSet, 'd3api/item/equipped_item_set'
19
18
 
20
19
  autoload :Skill, 'd3api/skill'
21
20
  autoload :Item, 'd3api/item'
@@ -1,6 +1,6 @@
1
1
  module D3api
2
2
  class Follower < BaseModel
3
- attr_accessor :slug, :name, :portrait, :skills
3
+ attr_accessor :slug, :name, :portrait, :active_skills
4
4
 
5
5
  def initialize(region, follower_type)
6
6
  json_response = find(region, follower_type)
@@ -19,7 +19,7 @@ module D3api
19
19
  self.slug = values['slug']
20
20
  self.name = values['name']
21
21
  self.portrait = values['portrait']
22
- self.skills = nil
22
+ self.active_skills = nil
23
23
  end
24
24
  end
25
25
  end
data/lib/d3api/hero.rb CHANGED
@@ -4,7 +4,7 @@ module D3api
4
4
  attr_accessor :id, :name, :hero_class, :gender,
5
5
  :level, :hardcore, :last_updated,
6
6
  :items, :active_skills, :passive_skills,
7
- :followers
7
+ :followers, :stats
8
8
 
9
9
  def initialize(region, battletag_name, battletag_id, hero_id)
10
10
  json_response = find(region, battletag_name, battletag_id, hero_id)
@@ -32,15 +32,18 @@ module D3api
32
32
  self.items ||= D3api::EquippedItemSet
33
33
  .new(values['items'])
34
34
  .item_set
35
- self.active_skills ||= D3api::HeroSkills
35
+ self.active_skills ||= D3api::HeroSkillSet
36
36
  .new('active', values['skills']['active'])
37
37
  .skill_set
38
- self.passive_skills ||= D3api::HeroSkills
38
+ self.passive_skills ||= D3api::HeroSkillSet
39
39
  .new('passive', values['skills']['passive'])
40
40
  .skill_set
41
41
  self.followers ||= D3api::HeroFollowerSet
42
42
  .new(values['followers'])
43
43
  .follower_set
44
+
45
+ self.stats ||= D3api::HeroStats
46
+ .new(values['stats'])
44
47
  end
45
48
 
46
49
  def determine_gender(gender)
File without changes
File without changes
@@ -1,5 +1,5 @@
1
1
  module D3api
2
- class HeroSkills
2
+ class HeroSkillSet
3
3
  attr_accessor :skill_set
4
4
 
5
5
  def initialize(skill_type, *attributes)
@@ -0,0 +1,48 @@
1
+ module D3api
2
+ class HeroStats
3
+ attr_accessor :life, :damage, :attack_speed, :armor, :strength,
4
+ :dexterity, :vitality, :intelligence, :physical_resist,
5
+ :fire_resist, :cold_resist, :lightning_resist, :poison_resist,
6
+ :arcane_resist, :crit_damage, :block_chance, :block_amount_min,
7
+ :block_amount_max, :damage_increase, :crit_chance, :damage_reduction,
8
+ :thorns, :life_steal, :life_per_kill, :gold_find, :magic_find,
9
+ :life_on_hit, :primary_resource, :secondary_resource
10
+
11
+ def initialize(stat_values)
12
+ set_method(stat_values)
13
+ end
14
+
15
+ private
16
+ def set_method(values)
17
+ self.life = values['life']
18
+ self.damage = values['damage']
19
+ self.attack_speed = values['attackSpeed']
20
+ self.armor = values['armor']
21
+ self.strength = values['strength']
22
+ self.dexterity = values['dexterity']
23
+ self.vitality = values['vitality']
24
+ self.intelligence = values['intelligence']
25
+ self.physical_resist = values['physicalResist']
26
+ self.fire_resist = values['fireResist']
27
+ self.cold_resist = values['coldResist']
28
+ self.lightning_resist = values['lightningResist']
29
+ self.poison_resist = values['poisonResist']
30
+ self.arcane_resist = values['arcaneResist']
31
+ self.crit_damage = values['critDamage']
32
+ self.block_chance = values['blockChance']
33
+ self.block_amount_min = values['blockAmountMin']
34
+ self.block_amount_max = values['blockAmountMax']
35
+ self.damage_increase = values['damageIncrease']
36
+ self.crit_chance = values['critChance']
37
+ self.damage_reduction = values['damageReduction']
38
+ self.thorns = values['thorns']
39
+ self.life_steal = values['lifeSteal']
40
+ self.life_per_kill = values['lifePerKill']
41
+ self.gold_find = values['goldFind']
42
+ self.magic_find = values['magicFind']
43
+ self.life_on_hit = values['lifeOnHit']
44
+ self.primary_resource = values['primaryResource']
45
+ self.secondary_resource = values['secondaryResource']
46
+ end
47
+ end
48
+ end
data/lib/d3api/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module D3api
2
- VERSION = '1.0.0'
2
+ VERSION = '1.1.0'
3
3
  end
@@ -1,21 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe D3api::EquippedItemSet do
4
- subject { D3api::EquippedItemSet.new(
5
- {'head' =>
6
- {'id' => 'Helm_104',
7
- 'name' => 'Abyssal Visage',
8
- 'icon' => 'helm_104_barbarian_male',
9
- 'displayColor' => 'yellow',
10
- 'tooltipParams' => 'item/Cj4Ite7E6QkSBwgEFTr1Tl0d0pJdSR0wjxxFHb1b6EgdhgJj6iILCAAVy_4BABgKICAwDTjIA0AASAtQDGD_Axj01PfUC1ACWAA'},
11
- 'torso'=>
12
- {'id' => 'ChestArmor_102',
13
- 'name' => 'Cleansing Mail',
14
- 'icon' => 'chestarmor_102_barbarian_male',
15
- 'displayColor' => 'yellow',
16
- 'tooltipParams' => 'item/CowBCNvS4ewCEgcIBBXqHRlgHRrEUXQdt8Ji6h2eI7xIHQRFP-IiCwgAFcf-AQAYFCAeMAk43AJAAEgGUAxg_QNqJQoMCAAQ5_mb84CAgIA7EhUIm7'}
17
- }
18
- )}
4
+ subject { D3api::EquippedItemSet.new( YAML.load_file( './spec/fixtures/equipped_item_set.yml' )['equippedItemSet'] ) }
19
5
 
20
6
  context '#set_method' do
21
7
  its(:item_set) { should be_kind_of(Array) }
@@ -1,15 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe D3api::EquippedItem do
4
- subject { D3api::EquippedItem.new(
5
- [ 'head', {'id' => 'Helm_104',
6
- 'name' => 'Abyssal Visage',
7
- 'icon' => 'helm_104_barbarian_male',
8
- 'displayColor' => 'yellow',
9
- 'tooltipParams' =>
10
- 'item/Cj4Ite7E6QkSBwgEFTr1Tl0d0pJdSR0wjxxFHb1b6EgdhgJj6iILCAAVy_4BABgKICAwDTjIA0AASAtQDGD_Axj01PfUC1ACWAA' }
11
- ]
12
- ) }
4
+ subject { D3api::EquippedItem.new( YAML.load_file( './spec/fixtures/equipped_item.yml' ) ) }
13
5
 
14
6
  context '#set_method' do
15
7
  its(:location) { should eql 'head' }
@@ -16,6 +16,6 @@ describe D3api::Follower do
16
16
  its(:slug) { should eql 'scoundrel' }
17
17
  its(:name) { should eql 'Scoundrel' }
18
18
  its(:portrait) { should eql 'scoundrel' }
19
- its(:skills) { should be nil }
19
+ its(:active_skills) { should be nil }
20
20
  end
21
21
  end
@@ -1,39 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe D3api::HeroFollowerSet do
4
- subject { D3api::HeroFollowerSet.new(
5
- {'templar'=>
6
- {'slug' => 'templar',
7
- 'level' => 8,
8
- 'items' =>
9
- {'mainHand' =>
10
- {'id' => 'Spear_001',
11
- 'name' => 'Javelin',
12
- 'icon' => 'spear_001_demonhunter_male',
13
- 'displayColor' => 'white',
14
- 'tooltipParams' => 'item/ChkI6MLF7A4SBwgEFQsX9vkwCTiqA0AAYKoDGOmjz2A'},
15
- 'offHand'=>
16
- {'id' => 'Shield_001',
17
- 'name' => 'Buckler',
18
- 'icon' => 'shield_001_demonhunter_male',
19
- 'displayColor' => 'white',
20
- 'tooltipParams' => 'item/ChkIsIumtgkSBwgEFYkDO2wwCTjmBEAAYOYEGJKO2MMN'}},
21
- 'stats' => {'goldFind' => 0, 'magicFind' => 0, 'experienceBonus' => 0},
22
- 'skills'=>
23
- [{'skill'=>
24
- {'slug'=> 'heal',
25
- 'name' => 'Heal',
26
- 'icon' => 'templar_heal_110',
27
- 'level' => 5,
28
- 'tooltipUrl' => 'skill/templar/heal',
29
- 'description' => 'Heals you and the Templar for 4651 Life.\r\n\r\nCooldown: 30 seconds',
30
- 'simpleDescription' => 'Heals you and the Templar.',
31
- 'skillCalcId' => 'a'}},
32
- {},
33
- {},
34
- {}]}}
35
- )
36
- }
4
+ subject { D3api::HeroFollowerSet.new( YAML.load_file( './spec/fixtures/hero_follower_set.yml' ) ) }
37
5
 
38
6
  context '#set_method' do
39
7
  its(:follower_set) { should be_kind_of(Array) }
@@ -1,38 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe D3api::HeroFollower do
4
- subject { D3api::HeroFollower.new('templar',
5
- {'slug' => 'templar',
6
- 'level' => 8,
7
- 'items'=>
8
- {'mainHand' =>
9
- {'id' => 'Spear_001',
10
- 'name' => 'Javelin',
11
- 'icon' => 'spear_001_demonhunter_male',
12
- 'displayColor' => 'white',
13
- 'tooltipParams' => 'item/ChkI6MLF7A4SBwgEFQsX9vkwCTiqA0AAYKoDGOmjz2A'},
14
- 'offHand'=>
15
- {'id' => 'Shield_001',
16
- 'name' => 'Buckler',
17
- 'icon' => 'shield_001_demonhunter_male',
18
- 'displayColor' => 'white',
19
- 'tooltipParams' => 'item/ChkIsIumtgkSBwgEFYkDO2wwCTjmBEAAYOYEGJKO2MMN'}},
20
- 'stats'=>{'goldFind' => 0, 'magicFind' => 0, 'experienceBonus' => 0},
21
- 'skills'=>
22
- [{'skill'=>
23
- {'slug' => 'heal',
24
- 'name' => 'Heal',
25
- 'icon' => 'templar_heal_110',
26
- 'level' => 5,
27
- 'tooltipUrl' => 'skill/templar/heal',
28
- 'description' => 'Heals you and the Templar for 4651 Life.\r\n\r\nCooldown: 30 seconds',
29
- 'simpleDescription' => 'Heals you and the Templar.',
30
- 'skillCalcId' => 'a'}},
31
- {},
32
- {},
33
- {}]}
34
- )
35
- }
4
+ subject { D3api::HeroFollower.new( 'templar', YAML.load_file( './spec/fixtures/hero_follower.yml' ) ) }
36
5
 
37
6
  context '#set_method' do
38
7
  its(:follower_type) { should eql 'templar' }
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe D3api::HeroSkillSet do
4
+ subject { D3api::HeroSkillSet.new('active', YAML.load_file( './spec/fixtures/hero_skill_set.yml' ) ) }
5
+
6
+ context '#set_method' do
7
+ its(:skill_set) { should be_kind_of(Array) }
8
+ end
9
+ end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ describe D3api::HeroStats do
4
+ subject { D3api::HeroStats.new( YAML.load_file( './spec/fixtures/stats.yml')['heroStats'] ) }
5
+
6
+ context '#set_method' do
7
+ its(:life) { should eql 11161 }
8
+ its(:damage) { should eql 577.381 }
9
+ its(:attack_speed) { should eql 1.545 }
10
+ its(:armor) { should eql 2116 }
11
+ its(:strength) { should eql 595 }
12
+ its(:dexterity) { should eql 330 }
13
+ its(:vitality) { should eql 531 }
14
+ its(:intelligence) { should eql 399 }
15
+ its(:physical_resist) { should eql 71 }
16
+ its(:fire_resist) { should eql 51 }
17
+ its(:cold_resist) { should eql 36 }
18
+ its(:lightning_resist) { should eql 51 }
19
+ its(:poison_resist) { should eql 64 }
20
+ its(:arcane_resist) { should eql 49 }
21
+ its(:crit_damage) { should eql 1.63 }
22
+ its(:block_chance) { should eql 0.12 }
23
+ its(:block_amount_min) { should eql 180 }
24
+ its(:block_amount_max) { should eql 297 }
25
+ its(:damage_increase) { should eql 5.949999809265137 }
26
+ its(:crit_chance) { should eql 0.07000000029802322 }
27
+ its(:damage_reduction) { should eql 0.4846540093421936 }
28
+ its(:thorns) { should eql 20.0 }
29
+ its(:life_steal) { should eql 0.0 }
30
+ its(:life_per_kill) { should eql 0.0 }
31
+ its(:gold_find) { should eql 0.0 }
32
+ its(:magic_find) { should eql 0.25 }
33
+ its(:life_on_hit) { should eql 0.0 }
34
+ its(:primary_resource) { should eql 100 }
35
+ its(:secondary_resource) { should eql 0 }
36
+ end
37
+ end
@@ -1,28 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe D3api::Skill do
4
- subject { D3api::Skill.new('active', {'skill' =>
5
- {'slug' => 'cleave',
6
- 'name' => 'Cleave',
7
- 'icon' => 'barbarian_cleave',
8
- 'level' => 3,
9
- 'categorySlug' => 'primary',
10
- 'tooltipUrl' => 'skill/barbarian/cleave',
11
- 'description' => 'Generate: 5 Fury per attack\r\n\r\nSwing your weapon in a wide arc to deal 140% weapon damage to all enemies caught in the swing.',
12
- 'simpleDescription' => 'Generate: 5 Fury per attack\r\n\r\nSwing your weapon in an arc and strike multiple enemies.',
13
- 'skillCalcId' => 'b'},
14
- 'rune'=>
15
- {'slug' => 'cleave-c',
16
- 'type' => 'c',
17
- 'name' => 'Scattering Blast',
18
- 'level' => 30,
19
- 'description' => 'On Critical Hits, knock enemies back 9 yards and inflict 60% weapon damage to enemies where they land.',
20
- 'simpleDescription' => 'Critical Hits cause Knockback, and enemies deal additional damage where they land.',
21
- 'tooltipParams' => 'rune/cleave/c',
22
- 'skillCalcId' => 'b',
23
- 'order' => 2}}
24
- )
25
- }
4
+ subject { D3api::Skill.new('active', YAML.load_file( './spec/fixtures/hero_skill.yml' ) ) }
26
5
 
27
6
  context '#set_method' do
28
7
  its(:skill_type) { should eql 'active' }
@@ -30,13 +9,13 @@ describe D3api::Skill do
30
9
  its(:skill_name) { should eql 'Cleave' }
31
10
  its(:skill_icon) { should eql 'barbarian_cleave' }
32
11
  its(:skill_tooltip_url) { should eql 'skill/barbarian/cleave' }
33
- its(:skill_description) { should eql 'Generate: 5 Fury per attack\r\n\r\nSwing your weapon in a wide arc to deal 140% weapon damage to all enemies caught in the swing.' }
34
- its(:skill_simple_description) { should eql 'Generate: 5 Fury per attack\r\n\r\nSwing your weapon in an arc and strike multiple enemies.' }
12
+ its(:skill_description) { should eql 'Generate: 5 Fury per attack\\\\r\\\\n\\\\r\\\\nSwing your weapon in a wide arc\\n to deal 140% weapon damage to all enemies caught in the swing.' }
13
+ its(:skill_simple_description) { should eql 'Generate: 5 Fury per attack\\\\r\\\\n\\\\r\\\\nSwing your weapon in an\\n arc and strike multiple enemies.' }
35
14
  its(:rune_slug) { should eql 'cleave-c' }
36
15
  its(:rune_type) { should eql 'c' }
37
16
  its(:rune_name) { should eql 'Scattering Blast' }
38
- its(:rune_description) { should eql 'On Critical Hits, knock enemies back 9 yards and inflict 60% weapon damage to enemies where they land.' }
39
- its(:rune_simple_description) { should eql 'Critical Hits cause Knockback, and enemies deal additional damage where they land.' }
17
+ its(:rune_description) { should eql 'On Critical Hits, knock enemies back 9 yards and inflict 60% weapon\\n damage to enemies where they land.' }
18
+ its(:rune_simple_description) { should eql 'Critical Hits cause Knockback, and enemies deal additional damage\\n where they land.' }
40
19
  its(:rune_tooltip_params) { should eql 'rune/cleave/c' }
41
20
  its(:rune_order) { should eql 2 }
42
21
  end
@@ -0,0 +1,7 @@
1
+ ---
2
+ - head
3
+ - id: Helm_104
4
+ name: Abyssal Visage
5
+ icon: helm_104_barbarian_male
6
+ displayColor: yellow
7
+ tooltipParams: item/Cj4Ite7E6QkSBwgEFTr1Tl0d0pJdSR0wjxxFHb1b6EgdhgJj6iILCAAVy_4BABgKICAwDTjIA0AASAtQDGD_Axj01PfUC1ACWAA
@@ -0,0 +1,13 @@
1
+ equippedItemSet:
2
+ head:
3
+ id: 'Helm_104'
4
+ name: 'Abyssal Visage'
5
+ icon: 'helm_104_barbarian_male'
6
+ displayColor: 'yellow'
7
+ tooltipParams: 'item/Cj4Ite7E6QkSBwgEFTr1Tl0d0pJdSR0wjxxFHb1b6EgdhgJj6iILCAAVy_4BABgKICAwDTjIA0AASAtQDGD_Axj01PfUC1ACWAA'
8
+ torso:
9
+ id: 'ChestArmor_102'
10
+ name: 'Cleansing Mail'
11
+ icon: 'chestarmor_102_barbarian_male'
12
+ displayColor: 'yellow'
13
+ tooltipParams: 'item/CowBCNvS4ewCEgcIBBXqHRlgHRrEUXQdt8Ji6h2eI7xIHQRFP-IiCwgAFcf-AQAYFCAeMAk43AJAAEgGUAxg_QNqJQoMCAAQ5_mb84CAgIA7EhUIm7'
@@ -0,0 +1,33 @@
1
+ ---
2
+ slug: templar
3
+ level: 8
4
+ items:
5
+ mainHand:
6
+ id: Spear_001
7
+ name: Javelin
8
+ icon: spear_001_demonhunter_male
9
+ displayColor: white
10
+ tooltipParams: item/ChkI6MLF7A4SBwgEFQsX9vkwCTiqA0AAYKoDGOmjz2A
11
+ offHand:
12
+ id: Shield_001
13
+ name: Buckler
14
+ icon: shield_001_demonhunter_male
15
+ displayColor: white
16
+ tooltipParams: item/ChkIsIumtgkSBwgEFYkDO2wwCTjmBEAAYOYEGJKO2MMN
17
+ stats:
18
+ goldFind: 0
19
+ magicFind: 0
20
+ experienceBonus: 0
21
+ skills:
22
+ - skill:
23
+ slug: heal
24
+ name: Heal
25
+ icon: templar_heal_110
26
+ level: 5
27
+ tooltipUrl: skill/templar/heal
28
+ description: ! 'Heals you and the Templar for 4651 Life.\\r\\n\\r\\nCooldown: 30 seconds'
29
+ simpleDescription: Heals you and the Templar.
30
+ skillCalcId: a
31
+ - {}
32
+ - {}
33
+ - {}
@@ -0,0 +1,34 @@
1
+ ---
2
+ templar:
3
+ slug: templar
4
+ level: 8
5
+ items:
6
+ mainHand:
7
+ id: Spear_001
8
+ name: Javelin
9
+ icon: spear_001_demonhunter_male
10
+ displayColor: white
11
+ tooltipParams: item/ChkI6MLF7A4SBwgEFQsX9vkwCTiqA0AAYKoDGOmjz2A
12
+ offHand:
13
+ id: Shield_001
14
+ name: Buckler
15
+ icon: shield_001_demonhunter_male
16
+ displayColor: white
17
+ tooltipParams: item/ChkIsIumtgkSBwgEFYkDO2wwCTjmBEAAYOYEGJKO2MMN
18
+ stats:
19
+ goldFind: 0
20
+ magicFind: 0
21
+ experienceBonus: 0
22
+ skills:
23
+ - skill:
24
+ slug: heal
25
+ name: Heal
26
+ icon: templar_heal_110
27
+ level: 5
28
+ tooltipUrl: skill/templar/heal
29
+ description: ! 'Heals you and the Templar for 4651 Life.\\r\\n\\r\\nCooldown: 30\n seconds'
30
+ simpleDescription: Heals you and the Templar.
31
+ skillCalcId: a
32
+ - {}
33
+ - {}
34
+ - {}
@@ -0,0 +1,21 @@
1
+ ---
2
+ skill:
3
+ slug: cleave
4
+ name: Cleave
5
+ icon: barbarian_cleave
6
+ level: 3
7
+ categorySlug: primary
8
+ tooltipUrl: skill/barbarian/cleave
9
+ description: ! 'Generate: 5 Fury per attack\\r\\n\\r\\nSwing your weapon in a wide arc\n to deal 140% weapon damage to all enemies caught in the swing.'
10
+ simpleDescription: ! 'Generate: 5 Fury per attack\\r\\n\\r\\nSwing your weapon in an\n arc and strike multiple enemies.'
11
+ skillCalcId: b
12
+ rune:
13
+ slug: cleave-c
14
+ type: c
15
+ name: Scattering Blast
16
+ level: 30
17
+ description: On Critical Hits, knock enemies back 9 yards and inflict 60% weapon\n damage to enemies where they land.
18
+ simpleDescription: Critical Hits cause Knockback, and enemies deal additional damage\n where they land.
19
+ tooltipParams: rune/cleave/c
20
+ skillCalcId: b
21
+ order: 2
@@ -0,0 +1,21 @@
1
+ ---
2
+ - skill:
3
+ slug: cleave
4
+ name: Cleave
5
+ icon: barbarian_cleave
6
+ level: 3
7
+ categorySlug: primary
8
+ tooltipUrl: skill/barbarian/cleave
9
+ description: ! 'Generate: 5 Fury per attack\\r\\n\\r\\nSwing your weapon in a wide\n arc to deal 140% weapon damage to all enemies caught in the swing.'
10
+ simpleDescription: ! 'Generate: 5 Fury per attack\\r\\n\\r\\nSwing your weapon in\n an arc and strike multiple enemies.'
11
+ skillCalcId: b
12
+ rune:
13
+ slug: cleave-c
14
+ type: c
15
+ name: Scattering Blast
16
+ level: 30
17
+ description: 'On Critical Hits, knock enemies back 9 yards and inflict 60% weapon\n damage to enemies where they land.'
18
+ simpleDescription: 'Critical Hits cause Knockback, and enemies deal additional\n damage where they land.'
19
+ tooltipParams: rune/cleave/c
20
+ skillCalcId: b
21
+ order: 2
@@ -0,0 +1,30 @@
1
+ heroStats:
2
+ life: 11161
3
+ damage: 577.381
4
+ attackSpeed: 1.545
5
+ armor: 2116
6
+ strength: 595
7
+ dexterity: 330
8
+ vitality: 531
9
+ intelligence: 399
10
+ physicalResist: 71
11
+ fireResist: 51
12
+ coldResist: 36
13
+ lightningResist: 51
14
+ poisonResist: 64
15
+ arcaneResist: 49
16
+ critDamage: 1.63
17
+ blockChance: 0.12
18
+ blockAmountMin: 180
19
+ blockAmountMax: 297
20
+ damageIncrease: 5.949999809265137
21
+ critChance: 0.07000000029802322
22
+ damageReduction: 0.4846540093421936
23
+ thorns: 20.0
24
+ lifeSteal: 0.0
25
+ lifePerKill: 0.0
26
+ goldFind: 0.0
27
+ magicFind: 0.25
28
+ lifeOnHit: 0.0
29
+ primaryResource: 100
30
+ secondaryResource: 0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: d3api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -137,43 +137,25 @@ files:
137
137
  - README.md
138
138
  - Rakefile
139
139
  - d3api.gemspec
140
- - lib/.DS_Store
141
140
  - lib/d3api.rb
142
- - lib/d3api/.DS_Store
143
141
  - lib/d3api/artisan.rb
144
142
  - lib/d3api/base_model.rb
145
143
  - lib/d3api/career.rb
146
144
  - lib/d3api/configuration.rb
147
145
  - lib/d3api/connection.rb
148
- - lib/d3api/equipped_item.rb
149
- - lib/d3api/equipped_item_set.rb
150
146
  - lib/d3api/follower.rb
151
147
  - lib/d3api/hero.rb
152
- - lib/d3api/hero_follower.rb
153
- - lib/d3api/hero_follower_set.rb
154
- - lib/d3api/hero_set.rb
155
- - lib/d3api/hero_skills.rb
148
+ - lib/d3api/hero/follower.rb
149
+ - lib/d3api/hero/follower_set.rb
150
+ - lib/d3api/hero/set.rb
151
+ - lib/d3api/hero/skill_set.rb
152
+ - lib/d3api/hero/stats.rb
156
153
  - lib/d3api/item.rb
154
+ - lib/d3api/item/equipped_item.rb
155
+ - lib/d3api/item/equipped_item_set.rb
157
156
  - lib/d3api/request.rb
158
157
  - lib/d3api/skill.rb
159
158
  - lib/d3api/version.rb
160
- - spec/.DS_Store
161
- - spec/cassettes/D3api_Artisan.yml
162
- - spec/cassettes/D3api_Artisan_new.yml
163
- - spec/cassettes/D3api_Artisan_top_level_hash_methods_from_BaseModel.yml
164
- - spec/cassettes/D3api_Career.yml
165
- - spec/cassettes/D3api_Career_new.yml
166
- - spec/cassettes/D3api_Career_top_level_hash_methods_from_BaseModel.yml
167
- - spec/cassettes/D3api_Follower.yml
168
- - spec/cassettes/D3api_Follower_new.yml
169
- - spec/cassettes/D3api_Follower_top_level_hash_to_methods.yml
170
- - spec/cassettes/D3api_Hero.yml
171
- - spec/cassettes/D3api_Hero_new.yml
172
- - spec/cassettes/D3api_Hero_top_level_hash_to_methods.yml
173
- - spec/cassettes/D3api_Item.yml
174
- - spec/cassettes/D3api_Item_new.yml
175
- - spec/cassettes/D3api_Item_top_level_hash_to_methods.yml
176
- - spec/d3api/.DS_Store
177
159
  - spec/d3api/artisan_spec.rb
178
160
  - spec/d3api/career_spec.rb
179
161
  - spec/d3api/equipped_item_set_spec.rb
@@ -182,10 +164,18 @@ files:
182
164
  - spec/d3api/hero_follower_set_spec.rb
183
165
  - spec/d3api/hero_follower_spec.rb
184
166
  - spec/d3api/hero_set_spec.rb
185
- - spec/d3api/hero_skills_spec.rb
167
+ - spec/d3api/hero_skill_set_spec.rb
186
168
  - spec/d3api/hero_spec.rb
169
+ - spec/d3api/hero_stats_spec.rb
187
170
  - spec/d3api/item_spec.rb
188
171
  - spec/d3api/skills_spec.rb
172
+ - spec/fixtures/equipped_item.yml
173
+ - spec/fixtures/equipped_item_set.yml
174
+ - spec/fixtures/hero_follower.yml
175
+ - spec/fixtures/hero_follower_set.yml
176
+ - spec/fixtures/hero_skill.yml
177
+ - spec/fixtures/hero_skill_set.yml
178
+ - spec/fixtures/stats.yml
189
179
  - spec/spec_helper.rb
190
180
  homepage: https://github.com/phereford/d3api
191
181
  licenses: []
@@ -201,7 +191,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
201
191
  version: '0'
202
192
  segments:
203
193
  - 0
204
- hash: -1160581402281800813
194
+ hash: -2997824699744414621
205
195
  required_rubygems_version: !ruby/object:Gem::Requirement
206
196
  none: false
207
197
  requirements:
@@ -210,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
210
200
  version: '0'
211
201
  segments:
212
202
  - 0
213
- hash: -1160581402281800813
203
+ hash: -2997824699744414621
214
204
  requirements: []
215
205
  rubyforge_project:
216
206
  rubygems_version: 1.8.24
@@ -218,23 +208,6 @@ signing_key:
218
208
  specification_version: 3
219
209
  summary: Blizzard's Diablo 3 API
220
210
  test_files:
221
- - spec/.DS_Store
222
- - spec/cassettes/D3api_Artisan.yml
223
- - spec/cassettes/D3api_Artisan_new.yml
224
- - spec/cassettes/D3api_Artisan_top_level_hash_methods_from_BaseModel.yml
225
- - spec/cassettes/D3api_Career.yml
226
- - spec/cassettes/D3api_Career_new.yml
227
- - spec/cassettes/D3api_Career_top_level_hash_methods_from_BaseModel.yml
228
- - spec/cassettes/D3api_Follower.yml
229
- - spec/cassettes/D3api_Follower_new.yml
230
- - spec/cassettes/D3api_Follower_top_level_hash_to_methods.yml
231
- - spec/cassettes/D3api_Hero.yml
232
- - spec/cassettes/D3api_Hero_new.yml
233
- - spec/cassettes/D3api_Hero_top_level_hash_to_methods.yml
234
- - spec/cassettes/D3api_Item.yml
235
- - spec/cassettes/D3api_Item_new.yml
236
- - spec/cassettes/D3api_Item_top_level_hash_to_methods.yml
237
- - spec/d3api/.DS_Store
238
211
  - spec/d3api/artisan_spec.rb
239
212
  - spec/d3api/career_spec.rb
240
213
  - spec/d3api/equipped_item_set_spec.rb
@@ -243,8 +216,16 @@ test_files:
243
216
  - spec/d3api/hero_follower_set_spec.rb
244
217
  - spec/d3api/hero_follower_spec.rb
245
218
  - spec/d3api/hero_set_spec.rb
246
- - spec/d3api/hero_skills_spec.rb
219
+ - spec/d3api/hero_skill_set_spec.rb
247
220
  - spec/d3api/hero_spec.rb
221
+ - spec/d3api/hero_stats_spec.rb
248
222
  - spec/d3api/item_spec.rb
249
223
  - spec/d3api/skills_spec.rb
224
+ - spec/fixtures/equipped_item.yml
225
+ - spec/fixtures/equipped_item_set.yml
226
+ - spec/fixtures/hero_follower.yml
227
+ - spec/fixtures/hero_follower_set.yml
228
+ - spec/fixtures/hero_skill.yml
229
+ - spec/fixtures/hero_skill_set.yml
230
+ - spec/fixtures/stats.yml
250
231
  - spec/spec_helper.rb
data/lib/.DS_Store DELETED
Binary file
data/lib/d3api/.DS_Store DELETED
Binary file
data/spec/.DS_Store DELETED
Binary file
data/spec/d3api/.DS_Store DELETED
Binary file
@@ -1,30 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe D3api::HeroSkills do
4
- subject { D3api::HeroSkills.new('active', [{'skill' =>
5
- {'slug' => 'cleave',
6
- 'name' => 'Cleave',
7
- 'icon' => 'barbarian_cleave',
8
- 'level' => 3,
9
- 'categorySlug' => 'primary',
10
- 'tooltipUrl' => 'skill/barbarian/cleave',
11
- 'description' => 'Generate: 5 Fury per attack\r\n\r\nSwing your weapon in a wide arc to deal 140% weapon damage to all enemies caught in the swing.',
12
- 'simpleDescription' => 'Generate: 5 Fury per attack\r\n\r\nSwing your weapon in an arc and strike multiple enemies.',
13
- 'skillCalcId' => 'b'},
14
- 'rune'=>
15
- {'slug' => 'cleave-c',
16
- 'type' => 'c',
17
- 'name' => 'Scattering Blast',
18
- 'level' => 30,
19
- 'description' => 'On Critical Hits, knock enemies back 9 yards and inflict 60% weapon damage to enemies where they land.',
20
- 'simpleDescription' => 'Critical Hits cause Knockback, and enemies deal additional damage where they land.',
21
- 'tooltipParams' => 'rune/cleave/c',
22
- 'skillCalcId' => 'b',
23
- 'order' => 2}}]
24
- )
25
- }
26
-
27
- context '#set_method' do
28
- its(:skill_set) { should be_kind_of(Array) }
29
- end
30
- end