firblitz-edgeville 0.1.0

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.
File without changes
@@ -0,0 +1,7 @@
1
+ CHANGELOG
2
+ edgeville.gemspec
3
+ init.rb
4
+ lib/edgeville.rb
5
+ Manifest
6
+ Rakefile
7
+ README.rdoc
@@ -0,0 +1,20 @@
1
+ = Edgeville
2
+
3
+ Gem for accessing player and GE info from the popular MMORPG, Runescape.
4
+
5
+ == Install
6
+
7
+ As a gem:
8
+
9
+ gem install firblitz-edgeville --source http://gems.github.com
10
+
11
+ Or as a Rails plugin:
12
+
13
+ script/plugin install git://github.com/firblitz/edgeville.git
14
+
15
+ == Usage
16
+
17
+ >> foo = Edgeville::Player.new("Firblitz")
18
+ => #<Edgeville::Player:0x50cb98 @name="Firblitz">
19
+ >> foo.skills.inspect
20
+ => "{:thieving=>{:level=>71, :rank=>66301, :xp=>817484}, :magic=>{:level=>85, :rank=>142689, :xp=>3345947}, :summoning=>{:level=>83, :rank=>15101, :xp=>2690399}, :crafting=>{:level=>81, :rank=>28919, :xp=>2393278}, :defence=>{:level=>93, :rank=>64039, :xp=>7198169}, :slayer=>{:level=>91, :rank=>14526, :xp=>6122641}, :cooking=>{:level=>83, :rank=>182315, :xp=>2697387}, :smithing=>{:level=>76, :rank=>46631, :xp=>1351496}, :strength=>{:level=>93, :rank=>130382, :xp=>7324521}, :farming=>{:level=>70, :rank=>55435, :xp=>763172}, :woodcutting=>{:level=>83, :rank=>222709, :xp=>2772152}, :mining=>{:level=>73, :rank=>167671, :xp=>1061676}, :hitpoints=>{:level=>96, :rank=>74512, :xp=>9922679}, :runecraft=>{:level=>71, :rank=>38540, :xp=>872314}, :fletching=>{:level=>84, :rank=>210337, :xp=>3017905}, :herblore=>{:level=>70, :rank=>55115, :xp=>789781}, :ranged=>{:level=>89, :rank=>86743, :xp=>5127740}, :construction=>{:level=>69, :rank=>112540, :xp=>713899}, :fishing=>{:level=>80, :rank=>179070, :xp=>1987764}, :overall=>{:level=>1929, :rank=>37481, :xp=>77300706}, :agility=>{:level=>72, :rank=>39583, :xp=>940457}, :prayer=>{:level=>74, :rank=>56816, :xp=>1106485}, :hunter=>{:level=>64, :rank=>80994, :xp=>417286}, :firemaking=>{:level=>80, :rank=>101712, :xp=>2023101}, :attack=>{:level=>98, :rank=>65713, :xp=>11842973}}"
@@ -0,0 +1,14 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'echoe'
4
+
5
+ Echoe.new('edgeville', '0.1.0') do |p|
6
+ p.description = "Gem for accessing player and GE info from the popular MMORPG, Runescape."
7
+ p.url = "http://github.com/firblitz/edgeville"
8
+ p.author = "Tamal White"
9
+ p.email = "tamal@firblitz.com"
10
+ p.ignore_pattern = ["tmp/*", "script/*"]
11
+ p.development_dependencies = []
12
+ end
13
+
14
+ Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
@@ -0,0 +1,31 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{edgeville}
5
+ s.version = "0.1.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Tamal White"]
9
+ s.date = %q{2009-06-09}
10
+ s.description = %q{Gem for accessing player and GE info from the popular MMORPG, Runescape.}
11
+ s.email = %q{tamal@firblitz.com}
12
+ s.extra_rdoc_files = ["CHANGELOG", "lib/edgeville.rb", "README.rdoc"]
13
+ s.files = ["CHANGELOG", "edgeville.gemspec", "init.rb", "lib/edgeville.rb", "Manifest", "Rakefile", "README.rdoc"]
14
+ s.has_rdoc = true
15
+ s.homepage = %q{http://github.com/firblitz/edgeville}
16
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Edgeville", "--main", "README.rdoc"]
17
+ s.require_paths = ["lib"]
18
+ s.rubyforge_project = %q{edgeville}
19
+ s.rubygems_version = %q{1.3.1}
20
+ s.summary = %q{Gem for accessing player and GE info from the popular MMORPG, Runescape.}
21
+
22
+ if s.respond_to? :specification_version then
23
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
24
+ s.specification_version = 2
25
+
26
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
27
+ else
28
+ end
29
+ else
30
+ end
31
+ end
data/init.rb ADDED
@@ -0,0 +1 @@
1
+ require 'edgeville'
@@ -0,0 +1,79 @@
1
+ require 'open-uri'
2
+ require 'hpricot'
3
+
4
+ module Edgeville
5
+ class Player
6
+ attr_reader :name
7
+ SKILL_LIST = %w(Overall Attack Defence Strength Hitpoints Ranged Prayer Magic Cooking Woodcutting Fletching Fishing Firemaking Crafting Smithing Mining Herblore Agility Thieving Slayer Farming Runecraft Construction Hunter Summoning)
8
+
9
+ def initialize(name)
10
+ @name = name
11
+ end
12
+
13
+ def clean_name
14
+ @name.gsub(/[^\w]/,"_").downcase
15
+ end
16
+
17
+ def skills
18
+ stats = {}
19
+ SKILL_LIST.each_with_index do |skill,i|
20
+ line = highscores[i].split(",")
21
+ stats[skill.downcase.to_sym] = { :rank => line[0].to_i, :level => line[1].to_i, :xp => line[2].to_i }
22
+ end
23
+ stats
24
+ end
25
+
26
+ private
27
+
28
+ def highscores
29
+ @highscores ||= open("http://hiscore.runescape.com/index_lite.ws?player=#{clean_name}").collect { |a| a.strip }
30
+ end
31
+
32
+ end
33
+
34
+ class GEItem
35
+ attr_reader :obj
36
+
37
+ def initialize(obj)
38
+ @obj = obj
39
+ end
40
+
41
+ def name
42
+ doc.at(".main_ge_page .subsectionHeader").inner_text.strip
43
+ end
44
+
45
+ def examine
46
+ additional[/^.*\.$/]
47
+ end
48
+
49
+ def min
50
+ additional[/^Minimum price: (.*)$/, 1].delete(',').to_i
51
+ end
52
+
53
+ def market
54
+ additional[/^Market price: (.*)$/, 1].delete(',').to_i
55
+ end
56
+
57
+ def max
58
+ additional[/^Maximum price: (.*)$/, 1].delete(',').to_i
59
+ end
60
+
61
+ def seven_day_change
62
+ additional[/^7 Days: (.*)$/, 1]
63
+ end
64
+
65
+ def thirty_day_change
66
+ additional[/^30 Days: (.*)$/, 1]
67
+ end
68
+
69
+ private
70
+
71
+ def doc
72
+ @doc ||= Hpricot(open("http://itemdb-rs.runescape.com/viewitem.ws?obj=#{obj}"))
73
+ end
74
+
75
+ def additional
76
+ @additional ||= doc.at("#item_additional").inner_text.strip
77
+ end
78
+ end
79
+ end
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: firblitz-edgeville
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Tamal White
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-06-09 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Gem for accessing player and GE info from the popular MMORPG, Runescape.
17
+ email: tamal@firblitz.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - CHANGELOG
24
+ - lib/edgeville.rb
25
+ - README.rdoc
26
+ files:
27
+ - CHANGELOG
28
+ - edgeville.gemspec
29
+ - init.rb
30
+ - lib/edgeville.rb
31
+ - Manifest
32
+ - Rakefile
33
+ - README.rdoc
34
+ has_rdoc: true
35
+ homepage: http://github.com/firblitz/edgeville
36
+ post_install_message:
37
+ rdoc_options:
38
+ - --line-numbers
39
+ - --inline-source
40
+ - --title
41
+ - Edgeville
42
+ - --main
43
+ - README.rdoc
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: "0"
51
+ version:
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: "1.2"
57
+ version:
58
+ requirements: []
59
+
60
+ rubyforge_project: edgeville
61
+ rubygems_version: 1.2.0
62
+ signing_key:
63
+ specification_version: 2
64
+ summary: Gem for accessing player and GE info from the popular MMORPG, Runescape.
65
+ test_files: []
66
+