firblitz-edgeville 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +0 -0
- data/Manifest +7 -0
- data/README.rdoc +20 -0
- data/Rakefile +14 -0
- data/edgeville.gemspec +31 -0
- data/init.rb +1 -0
- data/lib/edgeville.rb +79 -0
- metadata +66 -0
data/CHANGELOG
ADDED
File without changes
|
data/Manifest
ADDED
data/README.rdoc
ADDED
@@ -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}}"
|
data/Rakefile
ADDED
@@ -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 }
|
data/edgeville.gemspec
ADDED
@@ -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'
|
data/lib/edgeville.rb
ADDED
@@ -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
|
+
|