ariejan-warcraft_armory 1.0.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 ADDED
@@ -0,0 +1,2 @@
1
+ 2008-08-14
2
+ * [1.0.0] ariejan - Initial release
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2008 Ariejan de Vroom
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.textile ADDED
@@ -0,0 +1,49 @@
1
+ h1. Warcraft Armory
2
+
3
+ Warcraft Armory allows you to easily query the World of Warcraft Armory site to retrieve information about your character.
4
+
5
+ Both US and EU servers are supported.
6
+
7
+ Written by "Ariejan de Vroom":mailto:ariejan@ariejan.net
8
+
9
+ Copyright 2008 Ariejan de Vroom
10
+
11
+ h2. Disclaimer
12
+
13
+ This is the usual dislaimer. I'm not liable when you use this gem. Using it may be against the current (or future) terms of service from Blizzard or WoWarmory.com.
14
+
15
+ h2. Dependencies
16
+
17
+ WarcraftArmory depends on the hpricot gem version >= 0.6.
18
+
19
+ <pre>gem install hpricot</pre>
20
+
21
+ h2. Download and installation
22
+
23
+ Simply install the RubyGem and require it in your project. If you're on rails, require it in your config/environment.rb.
24
+
25
+ <pre>gem install ariejan-warcraft-armory --source http://gems.github.com</pre>
26
+
27
+ And require it when you need it:
28
+
29
+ <pre><code>require 'warcraft-armory'</code></pre>
30
+
31
+ Add the following to your environment.rb if you want to use Rails 2.1's dependency manager (which is highly recommended):
32
+
33
+ <pre><code>config.gem "ariejan-warcraft-armory",
34
+ :lib => "warcraft-armory",
35
+ :source => "http://gems.github.com"</code></pre>
36
+
37
+ h2. Usage
38
+
39
+ <pre><code>character = WarcraftAmory.find(:eu, 'Aszune', 'Nosius')</code></pre>
40
+
41
+ This will either return a WarcraftCharacter object or nil when not character information was found.
42
+
43
+ h2. More Information
44
+
45
+ "Ariejan.net":http://ariejan.net
46
+
47
+ "Blizzard":http://www.blizzard.com
48
+ "WoW Armory US":http://www.wowarmory.com
49
+ "WoW Armory EU":http://eu.wowarmory.com
data/Rakefile ADDED
@@ -0,0 +1,22 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+ require 'rake/rdoctask'
4
+
5
+ desc 'Default: run unit tests.'
6
+ task :default => :test
7
+
8
+ desc 'Test the acts_as_gold plugin.'
9
+ Rake::TestTask.new(:test) do |t|
10
+ t.libs << 'lib'
11
+ t.pattern = 'test/**/*_test.rb'
12
+ t.verbose = true
13
+ end
14
+
15
+ desc 'Generate documentation for the acts_as_gold plugin.'
16
+ Rake::RDocTask.new(:rdoc) do |rdoc|
17
+ rdoc.rdoc_dir = 'rdoc'
18
+ rdoc.title = 'ActsAsGold'
19
+ rdoc.options << '--line-numbers' << '--inline-source'
20
+ rdoc.rdoc_files.include('README')
21
+ rdoc.rdoc_files.include('lib/**/*.rb')
22
+ end
@@ -0,0 +1,34 @@
1
+ require 'hpricot'
2
+ require 'open-uri'
3
+
4
+ class WarcraftCharacter
5
+ attr_accessor :name, :level, :guild, :race, :class_name
6
+ end
7
+
8
+ class WarcraftArmory
9
+ # Find a WoW character
10
+ #
11
+ # +location+ defines the server location, valid (tested) options are :eu or :us
12
+ # +realm+ the realm where your character is. E.g. "Aszune"
13
+ # +character_name+ the name of your character. E.g. "Adries"
14
+ def self.find(location, realm, character_name)
15
+ self.parse_html(Hpricot(open("http://#{location.to_s}.wowarmory.com/character-sheet.xml?r=#{realm}&n=#{character_name}")))
16
+ end
17
+
18
+ protected
19
+
20
+ def self.parse_html(html)
21
+ char = WarcraftCharacter.new
22
+
23
+ details = (html/"div.character-outer").inner_text.strip.split("\n")
24
+ small_details = details[4].split('?')
25
+
26
+ char.name = details[0]
27
+ char.guild = details[2]
28
+ char.level = small_details[1]
29
+ char.race = small_details[2]
30
+ char.class_name = small_details[3]
31
+
32
+ char
33
+ end
34
+ end
@@ -0,0 +1,38 @@
1
+ require 'test/unit'
2
+
3
+ require 'rubygems'
4
+ gem 'activerecord', '>= 1.15.4.7794'
5
+ require 'active_record'
6
+
7
+ require "#{File.dirname(__FILE__)}/../init"
8
+
9
+ class WarcraftArmoryTest < Test::Unit::TestCase
10
+
11
+ def setup
12
+ @scraped_content = File.read(File.expand_path(File.dirname(__FILE__)) + '/assets/character.html').to_s
13
+ @html = Hpricot.parse(@scraped_content)
14
+ end
15
+
16
+ def teardown
17
+ # Nothing
18
+ end
19
+
20
+ def test_asset_loading
21
+ puts @scraped_content.class
22
+ assert_equal String, @scraped_content.class
23
+ assert_equal Hpricot::Doc, @html.class
24
+ end
25
+
26
+ def test_character_loading
27
+ character = WarcraftArmory.parse_html(@html)
28
+
29
+ assert_equal 'Adries', character.name
30
+ assert_equal '13', character.level
31
+ assert_equal 'Human', character.race
32
+ assert_equal 'Warrior', character.class_name
33
+
34
+ assert_equal 'The Justice League', character.guild
35
+
36
+ assert_equal WarcraftCharacter, character.class
37
+ end
38
+ end
metadata ADDED
@@ -0,0 +1,69 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ariejan-warcraft_armory
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Ariejan de Vroom
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-08-14 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: hpricot
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0.6"
23
+ version:
24
+ description: Retrieve character information from the World of Warcraft Armory
25
+ email: ariejan@ariejan.net
26
+ executables: []
27
+
28
+ extensions: []
29
+
30
+ extra_rdoc_files:
31
+ - README.textile
32
+ files:
33
+ - Changelog
34
+ - LICENSE
35
+ - Rakefile
36
+ - README.textile
37
+ - lib/warcraft_armory.rb
38
+ - test/warcraft_armory_test.rb
39
+ has_rdoc: true
40
+ homepage: http://ariejan.net
41
+ post_install_message:
42
+ rdoc_options:
43
+ - --line-numbers
44
+ - --inline-source
45
+ - --main
46
+ - README.textile
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
54
+ version:
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: "0"
60
+ version:
61
+ requirements: []
62
+
63
+ rubyforge_project:
64
+ rubygems_version: 1.2.0
65
+ signing_key:
66
+ specification_version: 2
67
+ summary: Retrieve character information from the World of Warcraft Armory
68
+ test_files:
69
+ - test/warcraft_armory_test.rb