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.
- 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
|
+
|