honclient 0.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,7 +10,7 @@ module HoN
10
10
  begin
11
11
  url = "http://xml.heroesofnewerth.com/xml_requester.php?f=match_stats&opt=mid&mid[]=#{@match_id}"
12
12
  xml_data = Net::HTTP.get_response(URI.parse(url)).body
13
- data = Nokogiri::XML.new(xml_data)
13
+ data = Nokogiri::XML.parse(xml_data)
14
14
  data.xpath('//xmlRequest/stats/match/summ/stat').each do |stat|
15
15
  @summary_stats[stat["name"]] = stat.content
16
16
  end
@@ -1,12 +1,13 @@
1
1
  module HoN
2
2
  class PlayerHeroStats < Stats
3
+ attr_accessor :heroes, :nickname
3
4
  def initialize(nickname)
4
5
  @nickname = nickname
5
6
  @heroes = {}
6
7
  begin
7
8
  url = "http://xml.heroesofnewerth.com/xml_requester.php?f=player_hero_stats&opt=nick&nick[]=#{@nickname}"
8
9
  xml_data = Net::HTTP.get_response(URI.parse(url)).body
9
- data = Nokogiri::XML.new(xml_data)
10
+ data = Nokogiri::XML.parse(xml_data)
10
11
  data.xpath("//xmlRequest/stats/player_hero_stats/hero").each do |hero|
11
12
  temp = {}
12
13
  hero.children.each do |stat|
@@ -19,12 +20,8 @@ module HoN
19
20
  end
20
21
  end
21
22
 
22
- def nickname
23
- @nickname
24
- end
25
-
26
- def heroes
27
- @heroes
23
+ def hero(name)
24
+ @heroes["Hero_#{name.capitalize}"]
28
25
  end
29
26
 
30
27
  def stats(hero,key)
@@ -24,7 +24,38 @@ module HoN
24
24
  end
25
25
 
26
26
  def kdr
27
- "#{(kills.to_f / deaths.to_f * 100).round / 100.0}:1"
27
+ (acc_herokills / acc_deaths).round(2)
28
+ rescue ZeroDivisionError
29
+ 0
30
+ end
31
+
32
+ def ranked_kdr
33
+ (rnk_herokills / rnk_deaths).round(2)
34
+ rescue ZeroDivisionError
35
+ 0
36
+ end
37
+
38
+ def mmr
39
+ rnk_amm_team_rating.to_f.round
40
+ end
41
+
42
+ def tsr
43
+ puts (rnk_herokills / rnk_deaths / 1.1 / 1.15) * 0.65
44
+ tsr_value = ((rnk_herokills/rnk_deaths/1.1/1.15)*0.65)+
45
+ ((rnk_heroassists/rnk_deaths/1.55)*1.20)+
46
+ (((rnk_wins/(rnk_wins+rnk_losses))/0.55)*0.9)+
47
+ (((rnk_gold/rnk_secs*60)/230) * (1-((230/195)*((rnk_em_played/rnk_games_played))))*0.35)+
48
+ ((((rnk_exp/rnk_time_earning_exp*60)/380)*(1-((380/565)*(rnk_em_played/rnk_games_played))))*0.40)+
49
+ (( ((((rnk_denies/rnk_games_played)/12)*(1-((4.5/8.5)*(rnk_em_played/rnk_games_played))))*0.70)+
50
+ ((((rnk_teamcreepkills/rnk_games_played)/93)*(1-((63/81)*(rnk_em_played/rnk_games_played))))*0.50)+
51
+ ((rnk_wards/rnk_games_played)/1.45*0.30))*(37.5/(rnk_secs/rnk_games_played/60)))
52
+ if tsr_value > 10
53
+ 10
54
+ elsif tsr_value < 0
55
+ 0
56
+ else
57
+ tsr_value
58
+ end.round(2)
28
59
  end
29
60
 
30
61
  def assists_per_game
@@ -35,7 +35,11 @@ module HoN
35
35
 
36
36
  def method_missing(meth, *args, &block)
37
37
  if @stats.has_key?(meth.to_s)
38
- @stats[meth.to_s]
38
+ value = @stats[meth.to_s]
39
+ case value
40
+ when /^\d+/ then value.to_f
41
+ else value
42
+ end
39
43
  else
40
44
  super(meth, *args, &block)
41
45
  end
metadata CHANGED
@@ -1,11 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honclient
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- version: "0.1"
4
+ prerelease:
5
+ version: "0.2"
9
6
  platform: ruby
10
7
  authors:
11
8
  - Chris Gillis
@@ -14,7 +11,7 @@ autorequire:
14
11
  bindir: bin
15
12
  cert_chain: []
16
13
 
17
- date: 2010-10-25 00:00:00 -04:00
14
+ date: 2011-03-30 00:00:00 -04:00
18
15
  default_executable:
19
16
  dependencies:
20
17
  - !ruby/object:Gem::Dependency
@@ -25,10 +22,6 @@ dependencies:
25
22
  requirements:
26
23
  - - ">="
27
24
  - !ruby/object:Gem::Version
28
- segments:
29
- - 1
30
- - 4
31
- - 3
32
25
  version: 1.4.3
33
26
  type: :runtime
34
27
  version_requirements: *id001
@@ -42,9 +35,8 @@ extensions: []
42
35
  extra_rdoc_files: []
43
36
 
44
37
  files:
45
- - README
46
- - lib/honclient/player_hero_stats.rb
47
38
  - lib/honclient/match_stats.rb
39
+ - lib/honclient/player_hero_stats.rb
48
40
  - lib/honclient/player_stats.rb
49
41
  - lib/honclient/stats.rb
50
42
  - lib/honclient.rb
@@ -62,25 +54,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
62
54
  requirements:
63
55
  - - ">="
64
56
  - !ruby/object:Gem::Version
65
- segments:
66
- - 1
67
- - 8
68
- - 7
69
57
  version: 1.8.7
70
58
  required_rubygems_version: !ruby/object:Gem::Requirement
71
59
  none: false
72
60
  requirements:
73
61
  - - ">="
74
62
  - !ruby/object:Gem::Version
75
- segments:
76
- - 1
77
- - 3
78
- - 6
79
63
  version: 1.3.6
80
64
  requirements: []
81
65
 
82
66
  rubyforge_project:
83
- rubygems_version: 1.3.7
67
+ rubygems_version: 1.5.2
84
68
  signing_key:
85
69
  specification_version: 3
86
70
  summary: Heroes of Newerth api client
data/README DELETED
@@ -1,21 +0,0 @@
1
- # A wrapper for the Heroes of Newerth XML API
2
- # -------------------------------------------
3
- # Author: Chris Gillis
4
- # -------------------------------------------
5
- #
6
- # A list of variables for stat() can be found on the xml.heroesofnewerth.com
7
- # website by running the relevant example query
8
- #
9
- # DEPENDENCIES
10
- # Requires rubygems
11
- # rexml
12
- #
13
- # USAGE:
14
- # require 'hon'
15
- # @my_stats = HoN::PlayerStats.new("account_name")
16
- # puts @my_stats.stat("acc_games_played")
17
- # @match = HoN::MatchStats.new("match_id")
18
- # puts @match.team_one
19
- # puts @match.team_two
20
- # puts @match.summary_stats("time_played")
21
- # puts @match.team_one_stats("tm_losses")