firblitz-edgeville 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
+