dota 0.0.17 → 0.0.18

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9bb2a2f7599143b39705e01b777eac16e1302794
4
- data.tar.gz: e0e5795180747cf1a482b3c9e8092a45450dc150
3
+ metadata.gz: 2ff7c49731de8c4814a4135dff2de240853f733f
4
+ data.tar.gz: 90c8a81064bde49c0e540f9b001ab1c571fbd126
5
5
  SHA512:
6
- metadata.gz: 41a5d35f2da35d9064292f96d0de878162ad86f82eb66078e0869fafd06423001f0138012487b5f08854ee9d5c38c7f9506f632eac72e04d8be68262ca3caa3a
7
- data.tar.gz: cc6f57b2e1b7c1f355e711cf99f3cd9ce3e1fa58111b39b60eb62543f91b88c3762f1b5bf393f4371ca1fd4e251585b198d3bb5d66953b6062a994047eb86385
6
+ metadata.gz: ba9aa6924b85bd9bcca501f3b9c2ab7140a4f5c3cf12ac5a9bed7c802c061f4bd569311b66cfbc1387a139b2a8e9b9718b63fa6a9ae05ec12db980325e38e861
7
+ data.tar.gz: 1d307e7401ac6b70b3ddf1f1f1d7d7d04742148fa7d40beec0475f557c97d422747090a4f35615f5d2c929ab2575163eac8b5cd0b33e9e75d3611d7ba7457b79
@@ -8,3 +8,7 @@ rvm:
8
8
  - rbx
9
9
 
10
10
  install: bundle install --retry=3
11
+
12
+ addons:
13
+ code_climate:
14
+ repo_token: 5e3e0f72f98a8345473dac4f2a2e2c980509d57ed1fa87725f3dcc299da0f795
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Dota [![Gem Version](https://badge.fury.io/rb/dota.svg)](http://badge.fury.io/rb/dota) [![Build Status](https://travis-ci.org/vinnicc/dota.svg?branch=master)](https://travis-ci.org/vinnicc/dota)
1
+ # Dota [![Gem Version](https://badge.fury.io/rb/dota.svg)](http://badge.fury.io/rb/dota) [![Build Status](https://travis-ci.org/vinnicc/dota.svg?branch=master)](https://travis-ci.org/vinnicc/dota) [![Code Climate](https://codeclimate.com/github/vinnicc/dota/badges/gpa.svg)](https://codeclimate.com/github/vinnicc/dota) [![Test Coverage](https://codeclimate.com/github/vinnicc/dota/badges/coverage.svg)](https://codeclimate.com/github/vinnicc/dota/coverage)
2
2
 
3
3
  `dota` is a Ruby client for the [Dota 2 WebAPI](https://wiki.teamfortress.com/wiki/WebAPI#Dota_2).
4
4
 
@@ -219,14 +219,16 @@ scheduled_match.final? # Boolean, true if the game is the last of the serie
219
219
  #### Sides - Radiant/Dire
220
220
 
221
221
  ```ruby
222
- radiant.id # Integer, Team's ID
223
- radiant.logo_id # Integer, Team logo's UGC ID
224
- radiant.name # String, Team's name
225
- radiant.complete? # Boolean, true if the team's roster is complete
226
- radiant.players # Array[Dota::API::Match::Player|Dota::API::LiveMatch::Player], Players in the match
222
+ radiant.id # Integer, Team's ID
223
+ radiant.logo_id # Integer, Team logo's UGC ID
224
+ radiant.name # String, Team's name
225
+ radiant.complete? # Boolean, true if the team's roster is complete
226
+ radiant.players # Array[Dota::API::Match::Player|Dota::API::LiveMatch::Player], Players in the match
227
+ radiant.tower_status # Hash, Status of team's towers (`true` - tower is standing, `false` - tower is destroyed)
228
+ radiant.barracks_status # Hash, Status of team's barracks (`true` - barrack is standing, `false` - barrack is destroyed)
227
229
 
228
230
  # Additional methods in Match::Side
229
- radiant.captain_id # Integer, Team captain's 32-bit Steam ID
231
+ radiant.captain_id # Integer, Team captain's 32-bit Steam ID
230
232
 
231
233
  # Additional methods in LiveMatch::Side
232
234
  radiant.score # Integer, The team's current score
@@ -1874,6 +1874,10 @@
1874
1874
  - wisp_tether_break
1875
1875
  - Tether Break
1876
1876
  - Wisp Tether Break
1877
+ 5490:
1878
+ - wisp_spirits_in
1879
+ - Spirits In
1880
+ - Wisp Spirits In
1877
1881
  5491:
1878
1882
  - forest_troll_high_priest_mana_aura
1879
1883
  - Troll High Priest Mana Aura
@@ -1882,6 +1886,10 @@
1882
1886
  - courier_go_to_secretshop
1883
1887
  - Go To Secret Shop
1884
1888
  - Courier Go To Secret Shop
1889
+ 5493:
1890
+ - wisp_spirits_out
1891
+ - Spirits Out
1892
+ - Wisp Spirits Out
1885
1893
  5494:
1886
1894
  - slark_dark_pact
1887
1895
  - Dark Pact
@@ -2222,6 +2230,10 @@
2222
2230
  - oracle_false_promise
2223
2231
  - False Promise
2224
2232
  - Oracle False Promise
2233
+ 5641:
2234
+ - tusk_launch_snowball
2235
+ - Launch Showball
2236
+ - Tusk Launch Showball
2225
2237
  5651:
2226
2238
  - winter_wyvern_arctic_burn
2227
2239
  - Arctic Burn
@@ -2237,4 +2249,32 @@
2237
2249
  5654:
2238
2250
  - winter_wyvern_winters_curse
2239
2251
  - Winters Curse
2240
- - Winter Wyvern Winters Curse
2252
+ - Winter Wyvern Winters Curse
2253
+ 5655:
2254
+ - life_stealer_control
2255
+ - Control
2256
+ - Life Stealer Control
2257
+ 5666:
2258
+ - nyx_assassin_burrow
2259
+ - Burrow
2260
+ - Nyx Assassin Burrow
2261
+ 5671:
2262
+ - life_stealer_assimilate
2263
+ - Assimilate
2264
+ - Life Stealer Assimilate
2265
+ 5672:
2266
+ - tusk_walrus_kick
2267
+ - Walrus Kick
2268
+ - Tusk Walrus Kick
2269
+ 5673:
2270
+ - nyx_assassin_unburrow
2271
+ - Unburrow
2272
+ - Nyx Assassin Unburrow
2273
+ 5674:
2274
+ - morphling_hybrid
2275
+ - Hybrid
2276
+ - Morphling Hybrid
2277
+ 5675:
2278
+ - life_stealer_assimilate_eject
2279
+ - Eject
2280
+ - Life Stealer Eject
@@ -641,74 +641,131 @@
641
641
  - shadow_amulet
642
642
  - Shadow Amulet
643
643
  216:
644
+ - enchanted_mango
645
+ - Enchanted Mango
646
+ 217:
647
+ - recipe_ward_dispenser
648
+ - Recipe: Ward Dispenser
649
+ 218:
650
+ - ward_dispenser
651
+ - Ward Dispenser
652
+ 219:
653
+ - recipe_travel_boots_2
654
+ - Recipe: Upgraded Boots of Travel
655
+ 220:
656
+ - travel_boots_2
657
+ - Upgraded Boots of Travel
658
+ 221:
659
+ - recipe_lotus_orb
660
+ - Recipe: Lotus Orb
661
+ 226:
662
+ - lotus_orb
663
+ - Lotus Orb
664
+ 227:
665
+ - recipe_solar_crest
666
+ - Recipe: Solar Crest
667
+ 228:
668
+ - recipe_octarine_core
669
+ - Recipe: Octarine Core
670
+ 229:
671
+ - solar_crest
672
+ - Solar Crest
673
+ 230:
674
+ - recipe_guardian_greaves
675
+ - Recipe: Guardian Greaves
676
+ 231:
677
+ - guardian_greaves
678
+ - Guardian Greaves
679
+ 235:
680
+ - octarine_core
681
+ - Octarine Core
682
+ 241:
683
+ - tango_single
684
+ - Tango (Shared)
685
+ 242:
686
+ - crimson_guard
687
+ - Crimson Guard
688
+ 243:
689
+ - recipe_crimson_guard
690
+ - Recipe: Crimson Guard
691
+ 246:
692
+ - recipe_moon_shard
693
+ - Recipe: Moon Shard
694
+ 247:
695
+ - moon_shard
696
+ - Moon Shard
697
+ 248:
698
+ - recipe_silver_edge
699
+ - Recipe: Silver Edge
700
+ 249:
701
+ - silver_edge
702
+ - Silver Edge
703
+ 253:
704
+ - recipe_glimmer_cape
705
+ - Recipe: Glimmer Cape
706
+ 254:
707
+ - glimmer_cape
708
+ - Glimmer Cape
709
+ 1000:
644
710
  - halloween_candy_corn
645
711
  - Greevil Taffy
646
- 217:
712
+ 1001:
647
713
  - mystery_hook
648
714
  - DOTA_Tooltip_Ability_item_mystery_hook
649
- 218:
715
+ 1002:
650
716
  - mystery_arrow
651
717
  - DOTA_Tooltip_Ability_item_mystery_arrow
652
- 219:
718
+ 1003:
653
719
  - mystery_missile
654
720
  - DOTA_Tooltip_Ability_item_mystery_missile
655
- 220:
721
+ 1004:
656
722
  - mystery_toss
657
723
  - DOTA_Tooltip_Ability_item_mystery_toss
658
- 221:
724
+ 1005:
659
725
  - mystery_vacuum
660
726
  - DOTA_Tooltip_Ability_item_mystery_vacuum
661
- 226:
727
+ 1006:
662
728
  - halloween_rapier
663
729
  - DOTA_Tooltip_Ability_item_halloween_rapier
664
- 227:
665
- - present
666
- - A Gift!
667
- 228:
730
+ 1007:
668
731
  - greevil_whistle
669
732
  - Greevil Whistle
670
- 229:
733
+ 1008:
734
+ - greevil_whistle_toggle
735
+ - Greevil Whistle
736
+ 1009:
737
+ - present
738
+ - A Gift!
739
+ 1010:
671
740
  - winter_stocking
672
741
  - Xmas Stocking
673
- 230:
742
+ 1011:
674
743
  - winter_skates
675
744
  - Speed Skates
676
- 231:
745
+ 1012:
677
746
  - winter_cake
678
747
  - Fruit-bit Cake
679
- 232:
748
+ 1013:
680
749
  - winter_cookie
681
750
  - Wizard Cookie
682
- 233:
751
+ 1014:
683
752
  - winter_coco
684
753
  - Cocoa with Marshmallows
685
- 234:
754
+ 1015:
686
755
  - winter_ham
687
756
  - Clove Studded Ham
688
- 235:
689
- - greevil_whistle_toggle
690
- - Greevil Whistle
691
- 236:
757
+ 1016:
692
758
  - winter_kringle
693
759
  - Kringle
694
- 237:
760
+ 1017:
695
761
  - winter_mushroom
696
762
  - Snow Mushroom
697
- 238:
763
+ 1018:
698
764
  - winter_greevil_treat
699
765
  - Greevil Treat
700
- 239:
766
+ 1019:
701
767
  - winter_greevil_garbage
702
768
  - Greevil Chow
703
- 240:
769
+ 1020:
704
770
  - winter_greevil_chewy
705
- - Greevil Blink Bone
706
- 241:
707
- - tango_single
708
- - Tango (Shared)
709
- 242:
710
- - crimson_guard
711
- - Crimson Guard
712
- 243:
713
- - recipe_crimson_guard
714
- - Recipe: Crimson Guard
771
+ - Greevil Blink Bone
@@ -29,4 +29,5 @@ Gem::Specification.new do |spec|
29
29
  spec.add_development_dependency "dotenv"
30
30
  spec.add_development_dependency "vcr"
31
31
  spec.add_development_dependency "webmock"
32
+ spec.add_development_dependency "codeclimate-test-reporter"
32
33
  end
@@ -11,6 +11,7 @@ require 'dota/api/entity'
11
11
 
12
12
  require 'dota/api/basic_match'
13
13
  require 'dota/api/basic_player'
14
+ require 'dota/api/basic_side'
14
15
  require 'dota/api/client'
15
16
  require 'dota/api/cosmetic/rarity'
16
17
  require 'dota/api/friend'
@@ -0,0 +1,47 @@
1
+ module Dota
2
+ module API
3
+ class BasicSide < Entity
4
+ TOWERS = [
5
+ :ancient_top,
6
+ :ancient_bottom,
7
+ :bottom_tier_3,
8
+ :bottom_tier_2,
9
+ :bottom_tier_1,
10
+ :middle_tier_3,
11
+ :middle_tier_2,
12
+ :middle_tier_1,
13
+ :top_tier_3,
14
+ :top_tier_2,
15
+ :top_tier_1
16
+ ].freeze
17
+
18
+ BARRACKS = [
19
+ :bottom_ranged,
20
+ :bottom_melee,
21
+ :middle_ranged,
22
+ :middle_melee,
23
+ :top_ranged,
24
+ :top_melee
25
+ ].freeze
26
+
27
+ def id
28
+ raw["team_id"]
29
+ end
30
+
31
+ private
32
+
33
+ def format_status(obj, type)
34
+ target = (type == :barracks ? BARRACKS : TOWERS)
35
+ # Convert to binary
36
+ # Leading zeros are stripped, so add them manually
37
+ obj = obj.to_s(2).rjust(target.length, '0')
38
+
39
+ status = {}
40
+ target.each_with_index do |position, i|
41
+ status[position] = (obj[i] == '1')
42
+ end
43
+ status
44
+ end
45
+ end
46
+ end
47
+ end
@@ -15,8 +15,11 @@ module Dota
15
15
  # Possible values for type:
16
16
  # :lg - 85x64 PNG image
17
17
  # :eg - 27x20 PNG image
18
-
19
- "http://cdn.dota2.com/apps/dota2/images/items/#{internal_name}_#{type}.png"
18
+ if internal_name =~ /\Arecipe/
19
+ "http://cdn.dota2.com/apps/dota2/images/items/recipe_#{type}.png"
20
+ else
21
+ "http://cdn.dota2.com/apps/dota2/images/items/#{internal_name}_#{type}.png"
22
+ end
20
23
  end
21
24
 
22
25
  private
@@ -1,11 +1,7 @@
1
1
  module Dota
2
2
  module API
3
3
  class LiveMatch
4
- class Side < Entity
5
- def id
6
- raw["team_id"]
7
- end
8
-
4
+ class Side < BasicSide
9
5
  def name
10
6
  raw["team_name"]
11
7
  end
@@ -19,26 +15,26 @@ module Dota
19
15
  end
20
16
 
21
17
  def tower_status
22
- raw["tower_state"]
18
+ format_status raw["tower_state"], :towers
23
19
  end
24
20
 
25
21
  def barracks_status
26
- raw["barracks_state"]
22
+ format_status raw["barracks_state"], :barracks
27
23
  end
28
24
 
29
25
  def series_wins
30
26
  raw["series_wins"]
31
27
  end
32
28
 
29
+ def score
30
+ raw["score"]
31
+ end
32
+
33
33
  def players
34
34
  raw["players"].map do |raw_player|
35
35
  Player.new(raw_player)
36
36
  end
37
37
  end
38
-
39
- def score
40
- raw["score"]
41
- end
42
38
  end
43
39
  end
44
40
  end
@@ -1,11 +1,7 @@
1
1
  module Dota
2
2
  module API
3
3
  class Match
4
- class Side < Entity
5
- def id
6
- raw["team_id"]
7
- end
8
-
4
+ class Side < BasicSide
9
5
  def name
10
6
  raw["name"]
11
7
  end
@@ -19,11 +15,15 @@ module Dota
19
15
  end
20
16
 
21
17
  def tower_status
22
- raw["tower_status"]
18
+ format_status raw["tower_status"], :towers
23
19
  end
24
20
 
25
21
  def barracks_status
26
- raw["barracks_status"]
22
+ format_status raw["barracks_status"], :barracks
23
+ end
24
+
25
+ def captain_id
26
+ raw["captain"]
27
27
  end
28
28
 
29
29
  def players
@@ -31,11 +31,7 @@ module Dota
31
31
  Player.new(raw_player)
32
32
  end
33
33
  end
34
-
35
- def captain_id
36
- raw["captain"]
37
- end
38
34
  end
39
35
  end
40
36
  end
41
- end
37
+ end