├── .gitignore ├── lib └── xml_truth.rb ├── bin └── xml_truth ├── test ├── assets │ └── html │ │ ├── 125.html │ │ ├── 16.html │ │ ├── 24.html │ │ ├── 29.html │ │ ├── 4.html │ │ ├── 52.html │ │ ├── 54.html │ │ ├── 58.html │ │ ├── 6.html │ │ ├── 60.html │ │ ├── 62.html │ │ ├── 72.html │ │ ├── 85.html │ │ ├── 94.html │ │ ├── 99.html │ │ ├── 117.html │ │ ├── 128.html │ │ ├── 133.html │ │ ├── 140.html │ │ ├── 147.html │ │ ├── 148.html │ │ ├── 181.html │ │ ├── 184.html │ │ ├── 187.html │ │ ├── 191.html │ │ ├── 193.html │ │ ├── 197.html │ │ ├── 218.html │ │ ├── 220.html │ │ ├── 225.html │ │ ├── 231.html │ │ ├── 234.html │ │ ├── 235.html │ │ ├── 239.html │ │ ├── 241.html │ │ ├── 242.html │ │ ├── 246.html │ │ ├── 252.html │ │ ├── 254.html │ │ ├── 269.html │ │ ├── 270.html │ │ ├── 283.html │ │ ├── 299.html │ │ ├── 311.html │ │ ├── 325.html │ │ ├── 328.html │ │ ├── 339.html │ │ ├── 345.html │ │ ├── 347.html │ │ ├── 362.html │ │ ├── 363.html │ │ ├── 364.html │ │ ├── 371.html │ │ ├── 378.html │ │ ├── 379.html │ │ ├── 425.html │ │ ├── 429.html │ │ ├── 438.html │ │ ├── 445.html │ │ ├── 451.html │ │ ├── 453.html │ │ ├── 454.html │ │ ├── 461.html │ │ ├── 474.html │ │ ├── 475.html │ │ ├── 486.html │ │ ├── 488.html │ │ ├── 422.html │ │ ├── 446.html │ │ ├── 8.html │ │ ├── 423.html │ │ ├── 428.html │ │ ├── 338.html │ │ ├── 228.html │ │ ├── 244.html │ │ ├── 56.html │ │ ├── 21.html │ │ ├── 57.html │ │ ├── 372.html │ │ ├── 173.html │ │ ├── 368.html │ │ ├── 421.html │ │ ├── 256.html │ │ ├── 263.html │ │ ├── 462.html │ │ ├── 329.html │ │ ├── 116.html │ │ ├── 15.html │ │ ├── 150.html │ │ ├── 83.html │ │ ├── 122.html │ │ ├── 313.html │ │ ├── 35.html │ │ ├── 160.html │ │ ├── 71.html │ │ ├── 138.html │ │ ├── 153.html │ │ ├── 449.html │ │ ├── 34.html │ │ ├── 106.html │ │ ├── 458.html │ │ ├── 7.html │ │ ├── 435.html │ │ ├── 359.html │ │ ├── 180.html │ │ ├── 350.html │ │ ├── 352.html │ │ ├── 19.html │ │ ├── 50.html │ │ ├── 443.html │ │ ├── 74.html │ │ ├── 5.html │ │ ├── 53.html │ │ ├── 182.html │ │ ├── 118.html │ │ ├── 198.html │ │ ├── 12.html │ │ ├── 175.html │ │ ├── 305.html │ │ ├── 159.html │ │ ├── 65.html │ │ ├── 375.html │ │ ├── 233.html │ │ ├── 230.html │ │ ├── 295.html │ │ ├── 282.html │ │ ├── 257.html │ │ ├── 481.html │ │ ├── 399.html │ │ ├── 414.html │ │ ├── 480.html │ │ ├── 238.html │ │ ├── 457.html │ │ ├── 196.html │ │ ├── 130.html │ │ └── 404.html ├── helper.rb └── dom │ ├── html │ └── test_document_parsing.rb │ └── xml │ ├── test_xpath_search.rb │ ├── test_document_traversal.rb │ └── test_large_document_parsing.rb ├── CHANGELOG.rdoc ├── Manifest.txt ├── Gemfile ├── Rakefile ├── .autotest ├── README.rdoc └── xml-truth-2014.md /.gitignore: -------------------------------------------------------------------------------- 1 | .*.swp 2 | tags 3 | Gemfile.lock 4 | -------------------------------------------------------------------------------- /lib/xml_truth.rb: -------------------------------------------------------------------------------- 1 | class XmlTruth 2 | VERSION = '1.0.0' 3 | end 4 | -------------------------------------------------------------------------------- /bin/xml_truth: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | abort "you need to write me" 4 | -------------------------------------------------------------------------------- /test/assets/html/125.html: -------------------------------------------------------------------------------- 1 | RubyGarden is offline temporarily due to excessive spam. 2 | -------------------------------------------------------------------------------- /CHANGELOG.rdoc: -------------------------------------------------------------------------------- 1 | === 1.0.0 / 2009-03-13 2 | 3 | * 1 major enhancement 4 | 5 | * Birthday! 6 | 7 | -------------------------------------------------------------------------------- /test/assets/html/16.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/16.html -------------------------------------------------------------------------------- /test/assets/html/24.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/24.html -------------------------------------------------------------------------------- /test/assets/html/29.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/29.html -------------------------------------------------------------------------------- /test/assets/html/4.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/4.html -------------------------------------------------------------------------------- /test/assets/html/52.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/52.html -------------------------------------------------------------------------------- /test/assets/html/54.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/54.html -------------------------------------------------------------------------------- /test/assets/html/58.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/58.html -------------------------------------------------------------------------------- /test/assets/html/6.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/6.html -------------------------------------------------------------------------------- /test/assets/html/60.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/60.html -------------------------------------------------------------------------------- /test/assets/html/62.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/62.html -------------------------------------------------------------------------------- /test/assets/html/72.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/72.html -------------------------------------------------------------------------------- /test/assets/html/85.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/85.html -------------------------------------------------------------------------------- /test/assets/html/94.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/94.html -------------------------------------------------------------------------------- /test/assets/html/99.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/99.html -------------------------------------------------------------------------------- /test/assets/html/117.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/117.html -------------------------------------------------------------------------------- /test/assets/html/128.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/128.html -------------------------------------------------------------------------------- /test/assets/html/133.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/133.html -------------------------------------------------------------------------------- /test/assets/html/140.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/140.html -------------------------------------------------------------------------------- /test/assets/html/147.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/147.html -------------------------------------------------------------------------------- /test/assets/html/148.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/148.html -------------------------------------------------------------------------------- /test/assets/html/181.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/181.html -------------------------------------------------------------------------------- /test/assets/html/184.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/184.html -------------------------------------------------------------------------------- /test/assets/html/187.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/187.html -------------------------------------------------------------------------------- /test/assets/html/191.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/191.html -------------------------------------------------------------------------------- /test/assets/html/193.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/193.html -------------------------------------------------------------------------------- /test/assets/html/197.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/197.html -------------------------------------------------------------------------------- /test/assets/html/218.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/218.html -------------------------------------------------------------------------------- /test/assets/html/220.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/220.html -------------------------------------------------------------------------------- /test/assets/html/225.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/225.html -------------------------------------------------------------------------------- /test/assets/html/231.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/231.html -------------------------------------------------------------------------------- /test/assets/html/234.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/234.html -------------------------------------------------------------------------------- /test/assets/html/235.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/235.html -------------------------------------------------------------------------------- /test/assets/html/239.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/239.html -------------------------------------------------------------------------------- /test/assets/html/241.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/241.html -------------------------------------------------------------------------------- /test/assets/html/242.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/242.html -------------------------------------------------------------------------------- /test/assets/html/246.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/246.html -------------------------------------------------------------------------------- /test/assets/html/252.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/252.html -------------------------------------------------------------------------------- /test/assets/html/254.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/254.html -------------------------------------------------------------------------------- /test/assets/html/269.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/269.html -------------------------------------------------------------------------------- /test/assets/html/270.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/270.html -------------------------------------------------------------------------------- /test/assets/html/283.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/283.html -------------------------------------------------------------------------------- /test/assets/html/299.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/299.html -------------------------------------------------------------------------------- /test/assets/html/311.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/311.html -------------------------------------------------------------------------------- /test/assets/html/325.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/325.html -------------------------------------------------------------------------------- /test/assets/html/328.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/328.html -------------------------------------------------------------------------------- /test/assets/html/339.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/339.html -------------------------------------------------------------------------------- /test/assets/html/345.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/345.html -------------------------------------------------------------------------------- /test/assets/html/347.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/347.html -------------------------------------------------------------------------------- /test/assets/html/362.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/362.html -------------------------------------------------------------------------------- /test/assets/html/363.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/363.html -------------------------------------------------------------------------------- /test/assets/html/364.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/364.html -------------------------------------------------------------------------------- /test/assets/html/371.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/371.html -------------------------------------------------------------------------------- /test/assets/html/378.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/378.html -------------------------------------------------------------------------------- /test/assets/html/379.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/379.html -------------------------------------------------------------------------------- /test/assets/html/425.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/425.html -------------------------------------------------------------------------------- /test/assets/html/429.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/429.html -------------------------------------------------------------------------------- /test/assets/html/438.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/438.html -------------------------------------------------------------------------------- /test/assets/html/445.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/445.html -------------------------------------------------------------------------------- /test/assets/html/451.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/451.html -------------------------------------------------------------------------------- /test/assets/html/453.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/453.html -------------------------------------------------------------------------------- /test/assets/html/454.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/454.html -------------------------------------------------------------------------------- /test/assets/html/461.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/461.html -------------------------------------------------------------------------------- /test/assets/html/474.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/474.html -------------------------------------------------------------------------------- /test/assets/html/475.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/475.html -------------------------------------------------------------------------------- /test/assets/html/486.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/486.html -------------------------------------------------------------------------------- /test/assets/html/488.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ujifgc/xml_truth/master/test/assets/html/488.html -------------------------------------------------------------------------------- /test/assets/html/422.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Manifest.txt: -------------------------------------------------------------------------------- 1 | History.txt 2 | Manifest.txt 3 | README.txt 4 | Rakefile 5 | bin/xml_truth 6 | lib/xml_truth.rb 7 | test/test_xml_truth.rb 8 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'rake' 4 | gem 'hpricot' 5 | gem 'libxml-ruby' 6 | gem 'nokogiri' 7 | gem 'ox' 8 | 9 | gem 'minitest', '~> 4' 10 | -------------------------------------------------------------------------------- /test/assets/html/446.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Redirecting to here 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /test/assets/html/8.html: -------------------------------------------------------------------------------- 1 | 2 |

See you in 2009.

3 |

2008 Videos

4 |

2007 Videos

5 | 6 | -------------------------------------------------------------------------------- /test/assets/html/423.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | The Ruby Door; Fine Custom Jewelry In Boston 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'rake/testtask' 3 | 4 | Rake::TestTask.new(:benchmark) do |test| 5 | test.libs << 'test' 6 | test.test_files = Dir['test/**/test_*.rb'] 7 | test.verbose = true 8 | end 9 | 10 | task :default => :benchmark 11 | -------------------------------------------------------------------------------- /test/assets/html/428.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | MountainWest RubyConf 2009 5 | 6 | 7 | Continue... 8 | 9 | -------------------------------------------------------------------------------- /test/assets/html/338.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ruby Slipper Guide to the Eastside 8 | 9 | 10 |   11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.autotest: -------------------------------------------------------------------------------- 1 | # -*- ruby -*- 2 | 3 | require 'autotest/restart' 4 | 5 | # Autotest.add_hook :initialize do |at| 6 | # at.extra_files << "../some/external/dependency.rb" 7 | # 8 | # at.libs << ":../some/external" 9 | # 10 | # at.add_exception 'vendor' 11 | # 12 | # at.add_mapping(/dependency.rb/) do |f, _| 13 | # at.files_matching(/test_.*rb$/) 14 | # end 15 | # 16 | # %w(TestA TestB).each do |klass| 17 | # at.extra_class_map[klass] = "test/test_misc.rb" 18 | # end 19 | # end 20 | 21 | # Autotest.add_hook :run_command do |at| 22 | # system "rake build" 23 | # end 24 | -------------------------------------------------------------------------------- /test/assets/html/228.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Programming Ruby: The Pragmatic Programmer's Guide 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | <body bgcolor="white"> 14 | Click <a href="html/index.html">here</a> for a non-frames 15 | version of this page. 16 | </body> 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /test/assets/html/244.html: -------------------------------------------------------------------------------- 1 | *The* Subversion Repository: svn - Revision 36802: /trunk/subversion/bindings/swig/ruby 2 | 3 |

*The* Subversion Repository: svn - Revision 36802: /trunk/subversion/bindings/swig/ruby

4 | 10 |
Powered by Subversion version 1.6.0 (Release Candidate 4). 11 | -------------------------------------------------------------------------------- /test/assets/html/56.html: -------------------------------------------------------------------------------- 1 | [ Back To Tiobe Index ]

The Ruby Programming Language

2 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /test/assets/html/21.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | Ruby 1.8.4 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/assets/html/57.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Data Structures and Algorithms with Object-Oriented Design Patterns in Ruby 11 | 12 | 13 | 14 | 15 | 17 | 18 | 19 | 20 | 21 | <!--#include file="body.html"--> 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /test/assets/html/372.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | y Sailing: Charter the Sloop Ruby for a SF Bay Tour! 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Ruby Sailing: Charter the Sloop Ruby for a SF Bay Tour
16 | 17 | 18 | -------------------------------------------------------------------------------- /test/helper.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'minitest/autorun' 3 | require 'minitest/benchmark' 4 | 5 | require 'hpricot' 6 | require 'libxml' 7 | require 'nokogiri' 8 | require 'ox' 9 | require 'rexml/document' 10 | 11 | ASSETS = File.expand_path(File.join(File.dirname(__FILE__), 'assets')) 12 | 13 | puts 14 | puts "Hpricot: #{Gem.loaded_specs["hpricot"].version}" 15 | puts "LibXML: #{LibXML::XML::VERSION}" 16 | puts "Nokogiri: #{Nokogiri::VERSION}" 17 | puts "Ox: #{Ox::VERSION}" 18 | puts "Rexml: #{REXML::VERSION}" 19 | puts 20 | 21 | class ColoredIO 22 | def initialize(io) 23 | @io = io 24 | end 25 | 26 | def print(o) 27 | super unless o == "S" 28 | end 29 | 30 | def puts(*o) 31 | super 32 | end 33 | end 34 | 35 | MiniTest::Unit.output = ColoredIO.new(MiniTest::Unit.output) 36 | -------------------------------------------------------------------------------- /test/assets/html/173.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 13 | RDoc Documentation 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /test/assets/html/368.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 13 | RDoc Documentation 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /test/assets/html/421.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 13 | Starfish - ridiculously easy distributed programming with Ruby 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /README.rdoc: -------------------------------------------------------------------------------- 1 | = XML Truth 2 | 3 | This project is a repository of benchmarks comparing features and speed of 4 | the current XML/HTML parsing players in the Ruby world. 5 | 6 | == Results 7 | 8 | This test is for measuring the difference between parse times in different 9 | XML parsers. The test was conducted with two XML files, one small xml file 10 | at 18k, and one large XML file at 7.0M. N is adjusted in the small document 11 | parse runs to make sure that the amount of xml run through each system was 12 | approximately the same. 13 | 14 | These tests were conducted with: 15 | 16 | * stock ruby 1.8.6 on OS X 10.5 17 | * libxml2 version 2.7.3 18 | * Hpricot version 0.7 (hpricot does not have a VERSION constant) 19 | * N being the number of iterations in each test 20 | 21 | {document_parsing.rdoc}[link:document_parsing.rdoc] 22 | 23 | == Results of actual gems for 2014-02-27 24 | 25 | * Hpricot: 0.8.6 26 | * LibXML: 2.7.0 27 | * Nokogiri: 1.6.1 28 | * Ox: 2.1.1 29 | * Rexml: 3.1.7.3 30 | 31 | {xml-truth-2014.md}[link:xml-truth-2014.md] 32 | -------------------------------------------------------------------------------- /test/assets/html/256.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | :: Choose Bandwidth :: 4 | 5 | 6 | 7 | 8 | 9 | 26 |
10 | 11 | 12 | 14 | 15 | 16 | 17 | 23 | 24 |
18 | ENTER HIGH BANDWIDTH SITE
19 | dsl, cable, lan

20 | ENTER LOW BANDWIDTH SITE
21 | dialup, hamster wheel
22 |
25 |
27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /test/assets/html/263.html: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | Ruby Storm, Author of Erotic Romance, Sensual Romance, Western Historical 8 | Romance 9 | 11 | 12 | 23 | 24 | 25 | 26 | 27 | 28 |
Rollover Image
29 | 30 | 31 | -------------------------------------------------------------------------------- /test/assets/html/462.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Programming Ruby 6 | 7 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /test/assets/html/329.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | DOE! 6 | 35 | 36 | 37 |
38 | 39 | 40 | 41 |
42 | 43 | 44 |
45 |
46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /test/dom/html/test_document_parsing.rb: -------------------------------------------------------------------------------- 1 | require 'helper' 2 | 3 | class C1HTMLParse < MiniTest::Unit::TestCase 4 | def self.bench_range 5 | bench_exp 1, 100 6 | end 7 | 8 | def files 9 | @files ||= Dir[File.join(ASSETS, 'html', '*.html')] 10 | end 11 | 12 | def bench_hpricot 13 | assert_performance_constant do 14 | files.each { |file| Hpricot(File.read(file)) } 15 | end 16 | end 17 | 18 | def bench_nokogiri 19 | assert_performance_constant do 20 | files.each { |file| Nokogiri::HTML(File.read(file)) } 21 | end 22 | end 23 | 24 | def bench_ox 25 | skip 'fails with Ox::ParseError' 26 | assert_performance_constant do 27 | files.each { |file| Ox.parse(File.read(file)) } 28 | end 29 | end 30 | 31 | def bench_libxml 32 | skip 'fails with LibXML::XML::Error' 33 | assert_performance_constant do 34 | files.each { |file| LibXML::XML::HTMLParser.string(File.read(file)).parse } 35 | end 36 | end 37 | 38 | def bench_rexml 39 | skip 'fails with REXML::ParseException' 40 | assert_performance_constant do 41 | files.each { |file| REXML::Document.new(File.open(file)) } 42 | end 43 | end 44 | end 45 | -------------------------------------------------------------------------------- /test/assets/html/116.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ruby Language Reference Manual 6 | 7 | 8 |
9 | 10 |

Ruby Language Reference Manual

11 | 12 |

version 1.4.6

13 |
14 |

15 | Yukihiro Matsumoto
16 | matz@zetabits.com

17 |
18 | 19 |

Table of Contents

20 |

21 |

22 | 48 |
49 | 50 | 51 | Last modified: Mon Feb 23 16:01:41 1998 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /test/assets/html/15.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Laura Ruby 5 | 6 | 7 | 8 | 9 | 10 |
11 | 25 |
26 | 27 |
28 |
29 | 30 | -------------------------------------------------------------------------------- /test/assets/html/150.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Ruby PKI 5 | 6 | 7 | 8 |

Ruby PKI project

9 |

OpenSSL for Ruby

10 | Copyright (C) 2001, 2002, 2003 'OpenSSL for Ruby' team 11 | All rights reserved. 12 | 13 |

[Team members]
14 | GOTOU Yuuzou <gotoyuzo AT notwork DOT org>
15 | NAKAMURA Hiroshi <nahi AT keynauts DOT com>
16 | Technorama team <oss-ruby AT technorama DOT net>
17 | Michal Rokos <m DOT rokos AT sh DOT cvut DOT cz>
18 |

19 | 20 |

[Contributors]
21 | Hynek Rostinsky <Hynek DOT Rostinsky AT foresta DOT cz>
22 |

23 | 24 |

[Licence]
25 | Ruby's licence
26 |

27 | 28 |

[ReadMe]
29 |

30 | 31 |

[ChangeLog]
32 |

33 | 34 |

[Download]
35 |

36 | 37 |

[CVS]
38 |

39 | 	cvs -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/rubypki login
40 | 	cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/rubypki co ossl
41 | 
42 |

43 | 44 |
45 |
$Id: index.html,v 1.7 2003/07/23 17:36:46 majkl Exp $
46 |
47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /test/assets/html/83.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Ruby-throated Hummingbird 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | <BODY> 25 | In order to display this page a browser is needed that displays frames. 26 | </BODY> 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /test/assets/html/122.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Using Ruby 4 | 5 | 6 |
[ next ] 7 | [ prev ] 8 | [ contents ] 9 | [ skip to What is Ruby ] 10 | 11 | Using Ruby

12 |

Using Ruby

13 |

An Introduction to Ruby for Java Programmers

14 | 15 |

Contents

16 | 17 | 30 | 31 |

see also full table of contents 32 | 33 |


34 |
[ next ] 35 | [ prev ] 36 | [ contents ] 37 | [ skip to What is Ruby ] 38 | 39 | Copyright 2003 by Jim Weirich.
Some Rights Reserved
40 | 41 | -------------------------------------------------------------------------------- /test/assets/html/313.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | Ruby Springs Lodge 9 | 25 | 26 | 27 | 28 | 47 | 48 | 49 |
50 | To view this website you need the latest version of Adobe's Flash Player. Please visit Adobe to install the player. 51 |
52 | 53 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /test/assets/html/35.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | myshkin's ruby warblers 5 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | Myshkin's Ruby Warblers, gypsy torch punk music stories art Portland Oregon</p> 18 | <p>Myshkin, named by Folk Roots Magazine UK "one of the best songwriters around", is most known for her rich alto, odd melodies and vividly storied lyrics. Her writing is built of subtle wit and thorny truths; she tackles themes of work and love, war and justice, prison and escape, in a style that draws on a world of influences - from gypsy to punk to jazz. She lets her songs fly on an intoxicating powerhouse voice that travels straight to your hidden places. The haunting intensity of the music finds balance in the dark humor of her songs.</p> 19 | <a href="http://www.myshkinsrubywarblers.com/content.html">Information</a><br> 20 | <a href="http://www.mojono.com/cgi-bin/calendar/calendar.pl?dept=mrw" target="new">Live</a><br> 21 | <a href="http://www.myshkinsrubywarblers.com/rec_content.html">Recordings</a><br> 22 | <a href="http://www.myshkinsrubywarblers.com/pre_content.html">Press Pack</a><br> 23 | <a href="http://www.myshkinsrubywarblers.com/l_content.html">Lyrics</a><br> 24 | <a href="http://www.myshkinsrubywarblers.com/c_content.html">Contact</a><br> 25 | <a href="http://www.myshkinsrubywarblers.com/f_content.html">Free Music MP3's</a><br> 26 | myshkin 503.284.4364<br> 27 | <a href="mailto:rubywarbler@hotmail.com">rubywarbler at hotmail dot com</a><br> 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /test/assets/html/160.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | ruby republic 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 26 | 29 | 38 |
39 | 40 | 41 | -------------------------------------------------------------------------------- /test/assets/html/71.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Ruby River Steakhouse Restaurant : Sizzling Platter Inc. 4 | 5 | 6 | 7 | 8 | 9 | 35 | 36 |
10 |
11 | 20 |
21 | 22 | Get Adobe Flash player 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 | 34 |
37 | 38 | 39 | 41 | 42 |
40 | Sizzling Platter Inc. © 2005 - 2008 • All Rights Reserved • powered by Ground Zero
43 | 44 |
45 |
46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /test/assets/html/138.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MountainWest Ruby, LLC 6 | 7 | 8 | 9 |
10 | 20 |
21 | 24 | 32 |
    33 |
  • Announcements
  • 34 |
  • Who Are We?
  • 35 |
  • What Do We Do?
  • 36 |
37 |
38 | 42 |
43 | 44 | 46 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /test/assets/html/153.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Ruby Ridge 7 | 8 | 9 | 10 |

Ruby Ridge

11 |

In 1992 a federal force of U.S. Marshals, FBI and BATF agents conducted a 12 | murderous assault on the homestead of Randy and Vicki Weaver, resulting in the 13 | deaths of Vicki and their son, Sammy. This incident is highly controversial, 14 | and has raised serious questions about the abusive use of force by federal 15 | agencies against U.S. citizens.

16 | 41 |
42 |

Home | Constitution Society

44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /test/assets/html/449.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | B. Ruby Rich 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
B Ruby Rich, B. Ruby Rich, Ruby Rich, chick flicks, chickflicks, cinefeminism, women's film festivals, women directors, woman directors, women filmmakers, woman filmmakers, feminist film, feminist films
14 | 15 | BRuby Rich
16 |
17 | 18 | 19 | 20 | 22 | 25 |
21 | 23 | B. Ruby Rich 24 | 26 | 27 | 28 |
29 | 30 | 31 | 33 | 37 | 38 |
32 | 34 |
35 | 36 |
39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /test/assets/html/34.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Why's (Poignant) Guide to Ruby 6 | 53 | 61 | 62 | 63 |
64 | 65 |
66 | Ohh! Fresh chapter snuck up! When You Wish Upon a Beard, drawings everywhichway. 67 |
68 |
69 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /test/assets/html/106.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ruby, sapphire, gems, and jade writings from Richard Hughes 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 37 | 38 | 39 | 40 |
41 | 42 | 43 | 60 | 61 |
44 |
45 | 46 | 47 | 48 | 56 | 57 |
49 | 55 |
58 |
59 |
62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /test/assets/html/458.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Ruby Tuesday 9 | 10 | 11 | 12 |

 

13 |
14 |
15 | 16 | 17 | 20 | 23 | 24 | 25 | 30 | 31 |
18 |

Open Daily 5 pm to 2:30 am

19 |
21 |

22 |
26 |

1978 Summit St.
27 | Columbus, OH
28 | (614) 291-8313
29 |

32 |
33 |
34 |
35 |
36 | 37 | 38 | 47 | 48 |
39 |

40 |

history | 41 | entertainment | contact 42 | info | feedback | links 43 | | ruby's blog | post 44 | your comments 45 |

VIEW 46 | US LIVE

49 |
50 |
51 |

 

52 |

 

53 |

 

54 |

 

55 |

 

56 |

This site designed and 57 | maintained by American 58 | Antiquities Web Development

59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /test/assets/html/7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Welcome To Ruby's Roadhouse 6 | 7 | 8 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 |
      
 HomeCalendarMusicContact Us  
      
71 |
© Ruby's Roadhouse 2008
72 | Website Created By: Star Work Webdesign, LLC
73 | 74 | 75 | -------------------------------------------------------------------------------- /xml-truth-2014.md: -------------------------------------------------------------------------------- 1 | ``` 2 | Hpricot: 0.8.6 3 | LibXML: 2.7.0 4 | Nokogiri: 1.6.1 5 | Ox: 2.1.1 6 | Rexml: 3.1.7.3 7 | ``` 8 | 9 | C1HTMLParse | 1 | 10 | 100 10 | ---|---:|---|--- 11 | bench_hpricot | 0.880711 | 0.813474 | 0.755089 12 | bench_libxml | LibXML::XML::Error 13 | bench_nokogiri | 0.903748 | 0.894876 | 0.891747 14 | bench_ox | Ox::ParseError 15 | bench_rexml | REXML::ParseException 16 | 17 | C2XMLWalk | 1 | 10 | 100 | 1000 18 | ---|---|---|---|--- 19 | bench_hpricot | 0.001133 | 0.004284 | 0.038072 | 0.417325 20 | bench_libxml | 0.001349 | 0.008029 | 0.098654 | 0.977217 21 | bench_nokogiri | 0.003474 | 0.021565 | 0.324287 | 4.016511 22 | bench_ox | 0.001182 | 0.005570 | 0.031353 | 0.338625 23 | bench_rexml | 0.009829 | 0.005914 | 0.059412 | 0.686192 24 | 25 | C3BasicPath | 1 | 2 | 4 26 | ---|---|---|--- 27 | bench_hpricot | 0.346507 | 0.693111 | 1.388281 28 | bench_libxml | 0.013190 | 0.026392 | 0.052454 29 | bench_nokogiri | 0.013439 | 0.026879 | 0.053598 30 | bench_ox | 0.982684 | 1.906481 | 3.996535 31 | bench_rexml | ∞ | ∞ | ∞ 32 | 33 | C4MediumPath | 1 | 2 | 4 34 | ---|---|---|--- 35 | bench_hpricot | 1.058497 | 1.925272 | 4.062154 36 | bench_libxml | 0.194188 | 0.387647 | 0.772557 37 | bench_nokogiri | 0.197076 | 0.393112 | 0.775489 38 | bench_ox | ? | ? | ? 39 | bench_rexml | ∞ | ∞ | ∞ 40 | 41 | C6StringXML | 1 | 3 42 | ---|---|--- 43 | bench_a_split | 0.097751 | 0.451297 44 | bench_hpricot | 0.701013 | 2.724648 45 | bench_libxml | 0.796666 | 1.621833 46 | bench_nokogiri | 0.484603 | 1.833424 47 | bench_ox | 0.137312 | 0.283570 48 | 49 | C7IOXML | 1 | 3 50 | ---|---|--- 51 | bench_a_line | 0.037397 | 0.114000 52 | bench_hpricot | 0.719102 | 2.834480 53 | bench_libxml | 0.675402 | 2.074367 54 | bench_nokogiri | 0.596686 | 2.193641 55 | bench_ox | 0.133154 | 0.285065 56 | 57 | C8StringSmallXML | 1 | 10 | 100 | 1000 58 | ---|---|---|---|--- 59 | bench_a_split | 0.000878 | 0.002814 | 0.026803 | 0.409461 60 | bench_hpricot | 0.001567 | 0.006740 | 0.051562 | 1.106719 61 | bench_libxml | 0.021295 | 0.003561 | 0.031119 | 1.287018 62 | bench_nokogiri | 0.006637 | 0.003659 | 0.031806 | 1.276726 63 | bench_ox | 0.013644 | 0.001792 | 0.016385 | 0.317601 64 | bench_rexml | 0.021558 | 0.209177 | 2.332435 | ~23 65 | 66 | C9IOSmallXML | 1 | 10 | 100 | 1000 67 | ---|---|---|---|--- 68 | bench_a_line | 0.000392 | 0.001177 | 0.010412 | 0.275760 69 | bench_hpricot | 0.001327 | 0.006719 | 0.052040 | 1.489341 70 | bench_libxml | 0.008684 | 0.003718 | 0.032028 | 1.157042 71 | bench_nokogiri | 0.011865 | 0.003994 | 0.033384 | 1.153226 72 | bench_ox | 0.016081 | 0.001765 | 0.016099 | 0.156216 73 | bench_rexml | 0.031584 | 0.207514 | 2.536789 | ~25 74 | -------------------------------------------------------------------------------- /test/dom/xml/test_xpath_search.rb: -------------------------------------------------------------------------------- 1 | require 'helper' 2 | 3 | class XMLPath < MiniTest::Unit::TestCase 4 | def self.bench_range 5 | [1,2,4] 6 | end 7 | 8 | def setup 9 | data 10 | hdoc 11 | ndoc 12 | ldoc 13 | odoc 14 | end 15 | 16 | def data 17 | @@data ||= begin 18 | puts 'Parsing...' 19 | File.read(File.join(ASSETS, 'itunes.xml')) 20 | end 21 | @@number_of_integers ||= @@data.scan('').count 22 | @@number_of_rated ||= @@data.scan('Rating').count 23 | @@data 24 | end 25 | 26 | def hdoc 27 | @@hdoc ||= Hpricot.XML(data) 28 | end 29 | 30 | def ldoc 31 | @@ldoc ||= LibXML::XML::Parser.string(data).parse 32 | end 33 | 34 | def ndoc 35 | @@ndoc ||= Nokogiri::XML(data) 36 | end 37 | 38 | def odoc 39 | @@odoc ||= Ox.parse(data) 40 | end 41 | 42 | def rdoc 43 | @@rdoc ||= REXML::Document.new(data) 44 | end 45 | end 46 | 47 | class C3BasicPath < XMLPath 48 | def path 49 | '//integer' 50 | end 51 | 52 | def opath 53 | '*/integer' 54 | end 55 | 56 | def actual_sum 57 | self.class.bench_range.inject(0){ |all,n| all += n*@@number_of_integers } 58 | end 59 | 60 | def bench_nokogiri 61 | sum = 0 62 | assert_performance_linear do |n| 63 | n.times do 64 | sum += ndoc.xpath(path).length 65 | end 66 | end 67 | assert_equal actual_sum, sum 68 | end 69 | 70 | def bench_libxml 71 | sum = 0 72 | assert_performance_linear do |n| 73 | n.times do 74 | sum += ldoc.find(path).length 75 | end 76 | end 77 | assert_equal actual_sum, sum 78 | end 79 | 80 | def bench_ox 81 | sum = 0 82 | assert_performance_linear do |n| 83 | n.times do 84 | sum += odoc.locate(opath).length 85 | end 86 | end 87 | assert_equal actual_sum, sum 88 | end 89 | 90 | def bench_hpricot 91 | sum = 0 92 | assert_performance_linear do |n| 93 | n.times do 94 | sum += hdoc.search(path).length 95 | end 96 | end 97 | assert_equal actual_sum, sum 98 | end 99 | 100 | def bench_rexml 101 | skip 'Rexml xpath speed is inadequate' 102 | sum = 0 103 | assert_performance_linear do |n| 104 | n.times do 105 | sum += REXML::XPath.match(rdoc, path).length 106 | end 107 | end 108 | assert_equal actual_sum, sum 109 | end 110 | end 111 | 112 | class C4MediumPath < C3BasicPath 113 | def path 114 | '//key[text() = "Rating"]' 115 | end 116 | 117 | def bench_ox 118 | skip 'Ox does not locate by content' 119 | end 120 | 121 | def actual_sum 122 | self.class.bench_range.inject(0){ |all,n| all += n*@@number_of_rated } 123 | end 124 | end 125 | -------------------------------------------------------------------------------- /test/assets/html/435.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | Ruby Central 6 | 7 | 8 | 9 |
RubyCentral, Inc.
10 |
11 |

Directors

12 | 18 |
19 |
20 |

News & Events

21 |
    22 | 23 | 24 |
  • Matz Has a Mac!
  • 25 | 26 |
  • RubyConf 2008 Registration is open!
  • 27 | 28 |
  • RubyConf 2008 presentation proposals now being accepted
  • 29 | 30 |
  • Conference season is upon us!
  • 31 | 32 |
  • RailsConf Europe 2008, Berlin, September 2-4!
  • 33 | 34 | 35 |
36 |
37 |

Ruby Central, Inc., is a 501(c)(3) tax-exempt organization, dedicated to Ruby support and advocacy.

38 | 39 | 40 |

Ruby Central is the parent organization of the annual International Ruby and Rails Conferences and is a visible presence and point of contact for corporate sponsors interested in supporting these conferences and other Ruby activities.

41 | 51 | 52 | -------------------------------------------------------------------------------- /test/dom/xml/test_document_traversal.rb: -------------------------------------------------------------------------------- 1 | require 'helper' 2 | 3 | class C2XMLWalk < MiniTest::Unit::TestCase 4 | def self.bench_range 5 | bench_exp 1, 1000 6 | end 7 | 8 | def actual_sum 9 | self.class.bench_range.inject(0){ |all,n| all += n*@id_sum } 10 | end 11 | 12 | def setup 13 | data = File.read(File.join(ASSETS, 'timeline.xml')) 14 | @id_sum = data.scan(/\\s*(\d+)\s*\<\/id\>/).flatten.map(&:to_i).inject(0,&:+) 15 | 16 | @ndoc = Nokogiri::XML(data) 17 | @ldoc = LibXML::XML::Parser.string(data).parse 18 | @hdoc = Hpricot.XML(data) 19 | @rdoc = REXML::Document.new(data) 20 | @odoc = Ox.parse(data) 21 | end 22 | 23 | def bench_nokogiri 24 | sum = 0 25 | assert_performance_linear do |n| 26 | n.times do 27 | list = @ndoc.root.children.dup.to_a 28 | while !list.empty? 29 | node = list.pop 30 | sum += node.content.to_i if node.name == 'id' 31 | list += node.children 32 | end 33 | end 34 | end 35 | assert_equal actual_sum, sum 36 | end 37 | 38 | def bench_libxml 39 | sum = 0 40 | assert_performance_linear do |n| 41 | n.times do 42 | list = @ldoc.root.children.dup 43 | while !list.empty? 44 | node = list.pop 45 | sum += node.content.to_i if node.name == 'id' 46 | list += node.children 47 | end 48 | end 49 | end 50 | assert_equal actual_sum, sum 51 | end 52 | 53 | def bench_ox 54 | sum = 0 55 | assert_performance_linear do |n| 56 | n.times do 57 | list = @odoc.nodes.dup 58 | while !list.empty? 59 | node = list.pop 60 | if node.kind_of?(Ox::Element) 61 | sum += node.text.to_i if node.value == 'id' 62 | list += node.nodes 63 | end 64 | end 65 | end 66 | end 67 | assert_equal actual_sum, sum 68 | end 69 | 70 | def bench_hpricot 71 | sum = 0 72 | assert_performance_linear do |n| 73 | n.times do 74 | list = @hdoc.root.children.dup 75 | while !list.empty? 76 | node = list.pop 77 | next unless node.respond_to?(:children) 78 | sum += node.inner_html.to_i if node.name == 'id' 79 | next unless node.children 80 | list += node.children 81 | end 82 | end 83 | end 84 | assert_equal actual_sum, sum 85 | end 86 | 87 | def bench_rexml 88 | sum = 0 89 | assert_performance_linear do |n| 90 | n.times do 91 | list = @rdoc.root.children.dup 92 | while !list.empty? 93 | node = list.pop 94 | next unless node.respond_to?(:children) 95 | sum += node.text.to_i if node.name == 'id' 96 | next unless node.children 97 | list += node.children 98 | end 99 | end 100 | end 101 | assert_equal actual_sum, sum 102 | end 103 | end 104 | -------------------------------------------------------------------------------- /test/assets/html/359.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ruby Beets Old & New - Home Furnishings - George Sherlock, Royal Boch, Holmegaard 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 21 | 22 |
Ruby Beets Old & New Home Furnishings

about ruby beetspress & mediacontact us
18 | furniturelightingtabletopdecorativetextiles & rugsart & photography
19 | ruby beets made-to-orderhome officeantiques

20 |

Joseph Scheer Exhibition at Bergdorf Goodman: March 18- April 20. Click for more info

23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /test/assets/html/180.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Ruby bindings 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 19 |
20 | 21 | 30 | 31 | 32 |
33 | Ruby bindings 34 |
35 | 36 | 37 | 38 | 39 | 40 |
41 |

Ruby bindings for cairo are available in the cairo CVS, module 42 | rcairo.

43 | 44 |

Download

45 | 46 |

The latest version is rcairo-1.8.0 (gem)

47 | 48 |

Documentation

49 | 50 |

API Reference

51 | 52 |

CVS

53 | 54 |

Anonymous access:

55 | 56 |
% cvs -d:pserver:anonymous@cvs.cairographics.org:/cvs/cairo co rcairo
 57 | 
58 | 59 |

For developers:

60 | 61 |
% cvs -d:ext:USERNAME@cvs.cairographics.org:/cvs/cairo co rcairo
 62 | 
63 | 64 |

Features

65 | 66 |
    67 |
  • PNG saving
  • 68 |
  • PostScript saving
  • 69 |
  • PDF saving
  • 70 |
  • SVG saving
  • 71 |
  • Win32 support
  • 72 |
  • Quartz support
  • 73 |
  • all cairo API
  • 74 |
75 | 76 |

TODO

77 | 78 |
    79 |
  • Documentation in English (there is full documentation in Japanese)
  • 80 |
  • Format engine (table, chart, ...)
  • 81 |
  • QR code module
  • 82 |
83 | 84 |

Dependencies (cairo binding)

85 | 86 |
    87 |
  • cairo, cairo development files

  • 88 |
  • ruby, ruby header development files

  • 89 |
90 | 91 |
92 | 93 | 135 | 136 | 137 | 138 | -------------------------------------------------------------------------------- /test/assets/html/350.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | Learning Ruby 7 | 8 | 9 | 10 |

Learning Ruby

11 | 12 | Copyright (c) 2003 Daniel Carrera 13 |
14 | Free Documentation License 15 |
16 | Where to get help 17 |
18 | How to install Ruby 19 |
20 | Download this tutorial 21 | 22 |
    23 |
  1. The Basics

    24 |

    About this chapter

    25 |
      26 |
    1. First Steps
    2. 27 |
    3. Strings
    4. 28 |
    5. New names for old things
    6. 29 |
    7. Variables
    8. 30 |
    9. Your first program
    10. 31 |
    11. Writing good programs
    12. 32 |
    33 |
  2. 34 | 35 |
  3. Flow Control

    36 |

    About this chapter

    37 |
      38 |
    1. Loops
    2. 39 |
    3. Getting user input
    4. 40 |
    5. Conditionals
    6. 41 |
    7. While loops
    8. 42 |
    9. Writing good programs
    10. 43 |
    44 |
  4. 45 | 46 |
  5. Data structures

    47 |

    About this chapter

    48 |
      49 |
    1. Arrays
    2. 50 |
    3. What can arrays do?
    4. 51 |
    5. Iterators
    6. 52 |
    7. Hashes
    8. 53 |
    9. Example: Addressbook
    10. 54 |
    11. Printing the addressbook
    12. 55 |
    13. Sorting the addressbook
    14. 56 |
    15. Writing good programs
    16. 57 |
    58 |
  6. 59 | 60 |
  7. Defining your own classes and methods

    61 |

    About this chapter

    62 |
      63 |
    1. Functions
    2. 64 |
    3. Classes and methods
    4. 65 |
    5. More on classes
    6. 66 |
    7. Implementing AddressBook
    8. 67 |
    9. Writing iterators
    10. 68 |
    11. More features
    12. 69 |
    13. Writing good programs
    14. 70 |
    71 |
  8. 72 | 73 |
  9. Graphical User Interfaces (GUI) with Tk

    74 |

    About this chapter

    75 |
      76 |
    1. Why Tk?
    2. 77 |
    78 |
  10. 79 | 80 |
81 | 82 | 83 | -------------------------------------------------------------------------------- /test/assets/html/352.html: -------------------------------------------------------------------------------- 1 | MD wedding and Portrait photographers 2 | 3 | 4 |
5 | 6 |
image
7 | 8 |
 
9 | 10 | 11 |
12 |
13 |
Attention: We are currently only offering Web Design & Hosting Services

14 | 15 |
ALL NEGATIVES AND DIGITAL FILES FOR SALE!!!!!

16 | 17 | 18 |
image

19 | 20 | If you would like to purchase Negatives or Digital Files please complete our "Contact Us" and be sure to include
Last Name for Portraits Sessions and Brides Maiden Name and Grooms Name for Weddings. 21 | 22 | 23 | 24 |
25 | 26 | 27 |






-------------------------------------------------------------------------------- /test/dom/xml/test_large_document_parsing.rb: -------------------------------------------------------------------------------- 1 | require 'helper' 2 | 3 | class XMLParse < MiniTest::Unit::TestCase 4 | def self.bench_range 5 | [1,3] 6 | end 7 | 8 | def setup 9 | @filename ||= File.join(ASSETS, 'itunes.xml') 10 | data 11 | end 12 | 13 | def data 14 | @@data ||= begin 15 | File.read(@filename) 16 | end 17 | end 18 | end 19 | 20 | class C6StringXML < XMLParse 21 | def bench_a_split 22 | assert_performance_linear 0.9 do |n| 23 | n.times { 24 | data.split(/\n/) 25 | } 26 | end 27 | end 28 | 29 | def bench_nokogiri 30 | assert_performance_linear 0.9 do |n| 31 | n.times { 32 | Nokogiri::XML(data) 33 | } 34 | end 35 | end 36 | 37 | def bench_libxml 38 | assert_performance_linear 0.9 do |n| 39 | n.times { 40 | LibXML::XML::Parser.string(data).parse 41 | } 42 | end 43 | end 44 | 45 | def bench_hpricot 46 | assert_performance_linear 0.9 do |n| 47 | n.times { 48 | Hpricot.XML(data) 49 | } 50 | end 51 | end 52 | 53 | def bench_rexml 54 | skip 'Rexml parsing speed is inadequate' unless @go_slow 55 | assert_performance_linear 0.9 do |n| 56 | skip if n > 100 57 | n.times { 58 | REXML::Document.new(data) 59 | } 60 | end 61 | end 62 | 63 | def bench_ox 64 | assert_performance_linear 0.9 do |n| 65 | n.times { 66 | Ox.parse(data) 67 | } 68 | end 69 | end 70 | end 71 | 72 | class C7IOXML < XMLParse 73 | def bench_a_line 74 | assert_performance_linear 0.9 do |n| 75 | n.times { 76 | File.open(@filename) { |xml| xml.each_line { |line| } } 77 | } 78 | end 79 | end 80 | 81 | def bench_nokogiri 82 | assert_performance_linear 0.9 do |n| 83 | n.times { 84 | File.open(@filename) { |xml| Nokogiri::XML(xml) } 85 | } 86 | end 87 | end 88 | 89 | def bench_libxml 90 | assert_performance_linear 0.9 do |n| 91 | n.times { 92 | File.open(@filename) { |xml| LibXML::XML::Parser.io(xml).parse } 93 | } 94 | end 95 | end 96 | 97 | def bench_hpricot 98 | assert_performance_linear 0.9 do |n| 99 | n.times { 100 | File.open(@filename) { |xml| Hpricot.XML(xml) } 101 | } 102 | end 103 | end 104 | 105 | def bench_ox 106 | assert_performance_linear 0.9 do |n| 107 | n.times { 108 | Ox.load_file(@filename) 109 | } 110 | end 111 | end 112 | 113 | def bench_rexml 114 | skip 'Rexml IO speed is inadequate' unless @go_slow 115 | assert_performance_linear 0.9 do |n| 116 | skip if n > 100 117 | n.times { 118 | File.open(@filename) { |xml| REXML::Document.new(xml) } 119 | } 120 | end 121 | end 122 | end 123 | 124 | class C8StringSmallXML < C6StringXML 125 | def self.bench_range 126 | bench_exp 1, 1000 127 | end 128 | 129 | def data 130 | File.read(@filename) 131 | end 132 | 133 | def setup 134 | @filename = File.join(ASSETS, 'timeline.xml') 135 | @go_slow = true 136 | super 137 | end 138 | end 139 | 140 | class C9IOSmallXML < C7IOXML 141 | def self.bench_range 142 | bench_exp 1, 1000 143 | end 144 | 145 | def setup 146 | @filename = File.join(ASSETS, 'timeline.xml') 147 | @go_slow = true 148 | super 149 | end 150 | end 151 | -------------------------------------------------------------------------------- /test/assets/html/19.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | RubyGems Manuals 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 31 | 32 | 49 | 50 |
51 |

The RubyGems bookshelf

52 | 53 | 54 |

Select a book from the list below .

55 | 56 |
57 |

RubyGems User Guide

58 | 59 |
60 |

Everything you need to know about using the RubyGems packaging system.

61 |
62 |
63 |
64 |
65 |

gem Command Reference

66 | 67 |
68 |

This reference covers ‘gem’ version 69 | 0.8.7.

70 | 71 | 72 |

(Updating to 1.3.x in progress)

73 |
74 |
75 |
76 |
77 |

RubyGems Frequently Asked Questions

78 | 79 |
80 |

Frequently Asked Questions about the RubyGems Packaging System.

81 |
82 |
83 |
84 |
85 |

RubyGems GemSpec Reference

86 | 87 |
88 |

The Gem::Specification object controls the data (and metadata) that goes into a GEM package. This reference defines the fields used in a Gem::Specification.

89 |
90 |
91 |
92 | 93 | 94 |
95 | 96 |
97 | 98 | 99 | -------------------------------------------------------------------------------- /test/assets/html/50.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Mr. Neighborly's Humble Little Ruby Book 5 | 6 | 7 | 8 | 17 | 18 | 19 | 20 |
21 | 25 | 31 | 32 |
33 |

Summary

34 |

35 | An up to date book on Ruby programming, written in a style described as "a beautiful display of pragmatically chunky bacon, wrapped in a nutshell." Or something like that. 36 |

37 |

38 | Mr. Neighborly's Humble Little Ruby Book covers the Ruby language from the very basics of using puts to put naughty phrases on the screen all the way to serving up your favorite web page from WEBrick or connecting to your favorite web service. Written in a conversational narrative rather than like a dry reference book, Mr. Neighborly's Humble Little Ruby Book is an easy to read, easy to follow guide to all things Ruby. 39 |

40 | 41 |
42 |

Table of Contents

43 |

What'chu talkin' 'bout, Mister?

44 |

45 | What Is Ruby Anyhow?, Installing Ruby, Let's try her out! 46 |

47 | 48 |

Welcome to Ruby

49 |

50 | Basic concepts of Ruby, Types in Ruby, Collections, Variables and the Like 51 |

52 | 53 |

Break it down now!

54 |

55 | Methods, Blocks and Proc Objects, Your objects lack class!, Modules, Creating Modules, Files 56 |

57 | 58 |

Hustle and flow (control)

59 |

60 | Conditionals, loops, and exceptions 61 |

62 | 63 |

The System Beneath

64 |

65 | Filesystem interaction, Threads and processes, For the Environment!, Win32 and Beyond 66 |

67 | 68 | 69 |

Looking Beyond Home

70 |

71 | Networking and the Web, It's Like Distributed or Something..., Data my base, please! 72 |

73 | 74 |

It's a Library!

75 |

76 | String manipulation, date/time, hashing and cryptography, unit testing 77 |

78 | 79 |

80 | Appendices: Links to tons of information and a short treatise on RubyInline! 81 |

82 |
83 |

If you have any questions or perhaps want 84 | reviewer's discount on the print edition, then e-mail me at my first dot my last @ gmail dot com

86 |
87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /test/assets/html/443.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Divine Transformation Bellydance with Ruby in Bellingham 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |
36 | 37 |

 

38 | 39 |

40 | 41 | 42 | 43 |

44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 |
54 | 55 | 56 | 57 |

58 | 69 |

70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 |

Contact

81 |

Copyright ©2006 Divine Transformation. All rights reserved.
82 | Website Creation by Pro Marketing Works

83 | 84 | 85 | 86 |
87 | 88 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /test/assets/html/74.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ruby-growl 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 16 | 20 | 21 | 22 |

ruby-growl

23 |

What is Growl?

24 | 25 |

Growl is a global notification system for Mac 26 | OS X. Applications can register messages which Growl displays on the screen 27 | in a variety of ways depending upon your preferences.

28 | 29 |

Why ruby-growl?

30 | 31 |

Growl's existing Ruby bindings only work on Macs, and I wanted my non-Mac 32 | machines to be able to send Growl notifications. I peeked inside Growl's 33 | remote-notification capabilities and wrote up some code that uses UDP to send 34 | Growl notifications across the network.

35 | 36 |

What Do I Need?

37 | 38 |

You need a Mac with Growl installed to recieve Growl notifications, Ruby and a kind of network connection 40 | between the two machines.

41 | 42 |

What Do I Get?

43 | 44 |

ruby-growl features a library you can use to add Growl notifications to your 45 | Ruby applications and a command-line tool that is almost option-compatible 46 | with growlnotify. (All except for -p is supported, use --priority instead.)

47 | 48 |

How Do I Use It?

49 | 50 |

First you need to enable "Listen for incoming notifications" and "Allow remote 51 | application registration" on the Network tab of the Growl Preference Panel to 52 | send Growl Notifications from ruby-growl. You'll probably also want to set a 53 | "UDP password" as well.

54 | 55 |

From Your Ruby App

56 | 57 |

58 | require 'ruby-growl'
59 | 
60 | g = Growl.new "localhost", "ruby-growl",
61 |               ["ruby-growl Notification"]
62 | g.notify "ruby-growl Notification", "It Came From Ruby-Growl",
63 |          "Greetings!"
64 | 65 |

From the Command Line

66 | 67 |
echo "message" | growl -H localhost
68 | 69 |

or:

70 | 71 |
growl -H localhost -m "message"
72 | 73 |

Download

74 | 75 | 76 | 77 | 78 | 79 |
TypeDownload
ruby-growl gemruby-growl-1.0.1.gem
ruby-growl tgzruby-growl-1.0.1.tgz
80 | 81 |

RDoc?

82 | 83 |

Yep! There's RDoc for ruby-growl.

84 | 85 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /test/assets/html/5.html: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | Ruby Association 7 | 8 | 9 | 10 |
11 | 15 |

16 | Ruby Association 18 |

19 |

20 | The Ruby Association LLC is an organization to help 21 | development of the programming language Ruby. 22 | The goals of the Ruby Association are to improve 23 | relationship between Ruby-related projects, 24 | communities and businesses, to address issues 25 | connected with using Ruby in an enterprise environment. 26 |

27 | 37 |

News

38 | 50 |

Activities

51 |

52 | The activities of the Association are: 53 |

54 |
    55 |
  • supporting development of Ruby itself
  • 56 |
  • supporting Ruby-related communities
  • 57 |
  • supporting Ruby-related events and conferences
  • 58 |
  • supporting systems integration business
  • 59 |
  • merchandising Ruby-related goodies
  • 60 |
  • public relations
  • 61 |
62 |

Advisors

63 |
    64 |
  • Masataka Matsuura (the mayor of Matsue)
  • 65 |
  • Zembee Mizoguchi (the governor of Shimane)
  • 66 |
67 |

Board members

68 |
    69 |
  • Yukihiro Matsumoto (chairman)
  • 70 |
  • Shugo Maeda (co-chair)
  • 71 |
  • Hiroshi Inoue
  • 72 |
73 |

Location

74 |

75 | The Ruby Association LLC is established under the 76 | Japanese law, and its head office is located at 77 | Matsue-shi Shimane-ken, Japan. 78 |

79 |

Certification

80 | 83 |

Contact us

84 |

85 | E-mail: info(at)ruby-assn.org 86 |

87 |
88 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /test/assets/html/53.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 67 | Ruby Manor 68 | 69 | 70 | 71 |
72 |

Ruby Manor

73 | 74 |

A social experiment

75 | 76 |
77 | 78 |

Everyone says the best part of a conference is hanging out the foyer (that's 'lobby' for the benefit of the colonials). But would you really pay £500 to do that? (That's $16,532,742, too).

79 | 80 |

If we were going to put on a conferencey thing, it'd need to be:

81 | 82 |
83 |
Affordable — £12, any profits go behind the bar
84 |
So you don't have to beg your employer to pay for the ticket, and cheap enough that we'd happily pay for it ourselves;
85 |
Transparent — help shape the organisation from the very start
86 |
You've had a chance to participate in the development of the programme from the very beginning, rather than hoping some of the talks were relevant based on the title alone;
87 |
Relevant — Collaborate with speakers earlier
88 |
No war story presentations that leave you wondering why you bothered getting out of bed so early.
89 |
90 | 91 |

… and it would be at ULU London, on the 22nd of November 2008.

92 | 93 | 94 |
95 | 96 | 97 | 101 | 106 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /test/assets/html/182.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Ruby Re-Usable 5 | 6 | 7 | 8 | 9 | 10 | 11 | 26 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 63 | 64 |
39 |

Home

40 |

Bio

41 |

Resume

42 |

Portfolio

43 |

Artist in
the Schools

44 |

Castoff Art Studio

45 |

Art Blog

46 |

News and Events

47 |

Links

48 |

email:  diane (at) rubyreusable.com



Artist Diane Kurzyna,
aka Ruby Re-Usable,
uses recycled, reused, discarded, unwanted, unloved, lost and found, pre- and post- consumer waste materials in her
work because she lives
by the motto:

MAKE ART NOT WASTE!

61 |

© 2007 Diane Kurzyna*© 2007 Lilthea Designs

62 |
65 | 66 | 67 | -------------------------------------------------------------------------------- /test/assets/html/118.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Ruby Fulton / Composer 11 | 12 | 13 | 42 | 43 | 44 | 45 | 46 | 47 |
48 | 49 |

Ruby Fulton 50 | 51 | ................................. COMPOSER

52 |
53 |

 

54 | 58 |

WELCOME

59 |

- best viewed in Firefox -

60 |
61 |
62 |
63 |

 

64 |

Events

65 |

Rhymes With Opera 2009 East Coast Tour 66 |
With the AM/PM Saxophone Quartet
67 | Saturday, March 7, 2009, 8pm
Broad Street Cafe
Durham, NC

68 | Sunday, March 8, 2009, 7pm
Metro Gallery
Baltimore, MD

69 | Friday, March 13, 2009, 8pm
70 | IWAA
Philadelphia, PA

71 | Saturday, March 14, 2009, 6pm
72 | 42nd St/Times Square Subway Station
New York, NY

73 | Sunday, March 15, 2009, 5pm
74 | Gershwin Hotel
New York, NY 75 |
more information

76 |

Trio 122 with special guest Adam Zagor
77 | The Joker Quartet (2008)
78 | Friday, April 17, 2009, 7:30pm
79 | St Peter's Church, New York, NY
more information

80 | 81 | 82 | 83 | 84 |

more events

85 |
86 |
87 | 91 |
92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /test/assets/html/198.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Ruby Bullet: Post-progressive melodic aggression 5 | 6 | 7 | 8 | 37 | 70 | 81 | 82 | 83 | 84 |
85 |

 

86 | 87 | 88 | 93 | 94 | 95 | 98 | 99 |
89 |

90 |

 

91 |

 

92 |
96 |

 

97 |
100 |

 

101 |
102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /test/assets/html/12.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | try ruby! (in your browser) 6 | 7 | 8 | 9 | 10 | 13 | 14 | 15 |
16 | 17 |
18 |
19 |
20 |

A Popup Browser

21 |

[x]

22 |
23 | 24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |

Got 15 minutes? Give Ruby a shot right now!

33 |

Ruby is a programming language from Japan 34 | (available at ruby-lang.org) 35 | which is revolutionizing the web. 36 | The beauty of Ruby is found in its balance between simplicity and power.

37 |

Try out Ruby code in the prompt above. In addition 38 | to Ruby's builtin methods, the following commands are available:

39 |
    40 |
  • help 41 | Start the 15 minute interactive tutorial. Trust me, it's very basic!
  • 42 |
  • help 2 43 | Hop to chapter two.
  • 44 |
  • clear 45 | Clear screen. Useful if your browser starts slowing down. 46 | Your command history will be remembered. 47 |
  • back 48 | Go back one screen in the tutorial.
  • 49 |
  • reset 50 | Reset the interpreter if you get too deep. (or Ctrl-D!)
  • 51 |
  • time 52 | A stopwatch. Prints the time your session has been open.
  • 53 |
54 |

If you happen to leave or refresh the page, your session will still be here for 55 | unless it is left inactive for ten minutes.

56 |
57 |
58 |
59 |
60 |
Trapped in double dots? A quote or something was left open. Type: reset or hit Ctrl-D.
61 |
62 | 63 |

This place was sired by why the lucky stiff. 64 | Please contact me using the email address at that link. 65 | And if you'd like to dig into Ruby further, 66 | I'm writing an obscure book: 67 | Why's (Poignant) Guide to Ruby.

68 |
69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /test/assets/html/175.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | MagLev - Ruby that scales 7 | 8 | 9 | 12 | 13 | 14 | 15 |
16 |

MagLev

17 |

Ruby that scales

18 | 19 |

MagLev /măg-lĕv/
20 | n. a fast, stable, Ruby implementation with integrated object persistence and distributed shared cache.

21 |

Follow MagLev developers on Twitter or check MagLev status.

22 | 23 |

Leave your email address below and we’ll keep you in the loop.

24 |
25 |
26 |
27 | 28 |
29 | 30 | 31 | 32 |
33 |
34 |

35 |
36 | 37 | Watch the video from RailsConf 2008.
38 | 39 | Watch our Tech Talk at Pivotal Labs.
40 | 41 | Listen to a podcast from RubyConf.
42 |

43 | 44 |

* If you want to try GemStone's object persistence in Smalltalk, download Seaside or learn about GLASS.

45 | 46 |
47 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /test/assets/html/305.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Ruby 5 | 6 | 7 | 8 | 9 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 26 |

Ruby

27 |
28 | 29 |

Ruby is a fairly new language out of Japan that apparently is very 30 | popular there. I've heard it is more popular than python there, but I 31 | haven't seen anything (yet) to confirm that rumor. Ruby is a clean, 32 | very-OO, small, well ported scripting language with a good class 33 | library. I'm really enjoying using/learning it.

34 | 35 |

To review, it has full reflection mechanisms and a fairly simple 36 | syntax. Unlike python, it combines a lot of smalltalkism and perlisms 37 | which makes it very intuitive to use. As the programmatic guys say "it 38 | works the way you expect it to". I think this thing has already beat 39 | out python as far as my preferences go. It really has its shit 40 | together.

41 | 42 |

Subpages:

43 | 44 | 61 |
62 | 63 | 67 | 68 | 70 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /test/assets/html/159.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ruby-taglib 6 | 7 | 8 | 9 | 10 |
11 | 19 | 20 |
21 |
22 |
23 | 24 | 25 |

A Ruby library wrapping the Taglib library.

27 | 28 |

ruby-taglib is a simple dl-based wrapper of 29 | Taglib's C library. It's short and sweet, because the C API is written by 30 | someone who knows how to use OO programming, and Ruby with dl just 31 | makes it all too easy to wrap such a library.

32 | 33 |

To detect file types, ruby-taglib optionally uses Mahoro. Taglib of course must 36 | be available at runtime.

37 | 38 |

Version 1.1 Changes

39 |
    40 |
  • Fix to work out of the box on Darwin and Mac OS X.
  • 41 |
  • Small typo fix (Missing ? on include? call)
  • 42 |
  • Mahoro made optional.
  • 43 |
44 | 45 |

Current Release

46 | 47 |

Download ruby-taglib-1.1.tar.bz2 (9892 bytes) 48 | (Signature by 0x28103A61) 49 |

50 | 51 | 52 |

Documentation

53 |

I have no formal docs written, but if you read taglib.rb, it should be 54 | fairly self-explanatory. There is also a basic example in the included README 55 | file.

56 | 57 |

Mac OS X users will want to make one small change to ruby-taglib, modifying 58 | the reference to the 'so' library to a 'dylib' library. Any future version of 59 | ruby-taglib will include this improvement.

60 | 61 |
62 | 122 |
123 |
124 | 130 |
131 | 132 | 133 | -------------------------------------------------------------------------------- /test/assets/html/65.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | Ruby Visual Identity Team 6 | 7 | 78 | 79 | 80 | 83 |
84 |

The visual identity team is a group of individuals dedicated to improving the online presence of the Ruby programming language. In September of 2006, the team completed an 18-month redesign of the Ruby Web site.

85 | 86 |
87 |

Want to use the Ruby logo for your own project?

88 |

89 | Download the Ruby logo kit and get started 90 | right away! The Ruby logo is copyright © 2006, Yukihiro Matsumoto. It is 91 | released under the terms of the 92 | 93 | Creative 94 | Commons Attribution-ShareAlike 2.5 License. 95 | 96 | 101 |

102 |
103 |
104 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /test/assets/html/375.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | FXRuby 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 23 | 24 | 25 | 33 | 34 | 35 |
36 | 37 | 53 | 54 |
55 | 56 |

FXRuby is a library for developing powerful and sophisticated cross-platform graphical user interfaces (GUIs) for your Ruby applications. It’s based on the FOX Toolkit, a popular open source C++ library developed by Jeroen van der Zijp. What that means for you as an application developer is that you’re able to write code in the Ruby programming language that you already know and love, while at the same time taking advantage of the performance and functionality of a featureful, highly optimized C++ toolkit.

57 |

Projects Using FXRuby

58 |

Projects using FXRuby include:

59 |
    60 |
  • BeERP is a commercial ERP built entirely with the FXRuby library.
  • 61 |
  • Discretizer is an interactive mesh creation tool. It can be used to create geometry and meshes for three dimensional flow simulations (CFD).
  • 62 |
  • foxGUIb is an interactive gui builder and codegenerator for FXRuby. This tool makes it easy to quickly build complex and good looking graphical user interfaces for Ruby.
  • 63 |
  • FXRI is a FXRuby Interface to RI that supports search-on-typing. FXRI is a small little program that tries to provide the desired information as fast as possible.
  • 64 |
  • fxtwitter is a simple Twitter client written in Ruby.
  • 65 |
  • FreeRIDE is an IDE for the Ruby programming language.
  • 66 |
67 |

If your project uses FXRuby for its user interface, and you’d like to see it listed here, please send me an e-mail with the information.

68 | 69 |
70 | 71 | 72 |
73 | 74 | 75 | 83 | 84 | 85 |
86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /test/assets/html/233.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Ruby/DBI - Direct database access layer for Ruby 7 | 8 | 9 | 10 |
11 |

Ruby/DBI - Direct database access layer for Ruby

12 |
13 | 22 | 23 |

24 | Ruby/DBI is a database interface in the spirit of Perl's prolific 25 | DBI authored 26 | by Tim Bunce. 27 |

28 | 29 |

30 | Ruby/DBI differs in quite a few ways, however. It incorporates 31 | many "rubyisms" while maintaining the core DBI interface, and a 32 | suite of commonly used DBD's are maintained with the 33 | application. 34 |

35 | 36 |

37 | Ruby/DBI is not an ORM, like ActiveRecord or DataMapper. It is a 40 | lightweight, centralized API to database manipulation. An ORM may 41 | or may not be what you want for a given situation, due to weight, 42 | ease-of-use or other issues. Our goal with Ruby/DBI is to provide a 43 | compelling, lightweight interface that you can use for things where 44 | an ORM is too much or too cumbersome. 45 |

46 | 47 |

48 | Getting started with Ruby/DBI is very easy if you have a working 49 | knowledge of SQL and your target database. Read the Documentation 51 | to get on your way! 52 |

53 | 54 |

55 | The maintainer, Erik Hollensbe, has made a commitment to 56 | keeping Ruby/DBI compatible with future Ruby releases. There is 57 | also a significant interest in enhancing the suite by further 58 | clarifying and enforcing the interface, and further tailoring DBI 59 | for the specific needs of Ruby users (as opposed to many of the 60 | Perlisms maintained) without impacting the goal of the project. 61 | There is also significant effort applied to clarifying the 62 | underpinnings, making debugging and development simpler. 63 |

64 | 65 |

66 | Ruby/DBI is a very old project as far as the ruby community is 67 | concerned, tracing back to at least 2001. There are plenty of 68 | people who have 70 | contributed to this effort. Big thanks to the original 71 | project lead, Michael Neumann, and Francis Hwang and Daniel Berger, who held the 72 | project in escrow for such a long time. 73 |

74 |
75 | 81 |
82 | 83 | 84 | -------------------------------------------------------------------------------- /test/assets/html/230.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Event Listing - Chicago Area Ruby Group 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 | Would you like to login or 14 | sign up? 15 | 16 |
17 | 18 | 19 | 20 | 28 | 29 |
30 |
31 |
32 | 33 |
34 | 35 |
36 | 37 | 38 | 39 |
40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 |
DateTitle
Mar 02Chicago Ruby Dojo
Feb 02A Dog & Pony Show for Cucumber / Webrat / Selenium
Jan 12Better Ruby Through Functional Programming by Dean Wampler
Dec 01Pow! Zoom! Bam! Ruby Lightning Talks!
Nov 03Capistrano and the Ruby UI Smackdown
Oct 06Selenium on Rails for Acceptance Testing
Sep 08FunFX, RSpec and Adobe Flex
Aug 04So many lightning talks, so little time.
Jul 14Merb, Watir and subverting the IT department of a Fortune 500 company..
Jun 09Applying RSpec: Experience report and discussion
112 | 113 | 114 | 115 | 116 | 117 | Next page 118 | 119 | 120 | 121 |
122 |
123 | 124 | 131 | 132 | 133 |
134 | 135 | 136 | -------------------------------------------------------------------------------- /test/assets/html/295.html: -------------------------------------------------------------------------------- 1 | $ command line ruby cheat sheets

cheat sheets.

$ command line ruby cheat sheets

Welcome. You've reached the central repository for cheat, the RubyGem which puts Ruby-centric cheat sheets right into your 2 | terminal. The inaugural blog entry is here.

Get started:

$ sudo gem install cheat
$ cheat strftime

A magnificent cheat sheet for Ruby's strftime method will be printed to 3 | your terminal.

To get some help on cheat itself:

$ cheat cheat

How meta.

Cheat sheets are basically wiki pages accessible from the command 4 | line. You can browse, add, or edit cheat sheets. Try to keep them concise. For a style guide, check 5 | out the cheat cheat sheet.

To access a cheat sheet, simply pass the program the desired sheet's 6 | name:

$ cheat <sheet name>
( add new | see all ) 19 |
-------------------------------------------------------------------------------- /test/assets/html/282.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ruby Row Advertising Network 6 | 7 | 8 | 9 | 10 |
11 | 27 |
28 |
29 |
"Conversion rate for our ad was above expectations and we've been happy with the Ruby Row network. Also, your reporting is great. Kudos!"
- Ryan Koop
cohesiveft.com
30 |
31 |

32 | Contact Us 33 |

34 |

35 | We're always available to answer your questions. Whether you're an advertiser, publisher, or just looking to get to know us better — please feel free to contact us. 36 |

37 |

38 | Contact Info 39 |

40 |

41 | Email: 42 | 43 | javery@infozerk.com 44 | 45 |

46 |

47 | Phone: 48 | (919) 600-0742 49 |

50 |

51 | Fax: 52 | (888) 353-6720 53 |

54 |
55 |
56 |
57 |
58 |

Ruby Row is an exclusive advertising
network of trusted and respected Ruby
and Ruby on Rails publishers.

Reach our passionate audience with
quality ad placements that deliver
results and enhance your brand.

59 |
60 |
61 |
62 |
63 | 64 | 65 | 66 |
67 |
68 | Web Publishers Room 69 |
70 |
71 | 11 Publishers + 250k Impressions 72 |
73 |
74 | Advertise on the top Ruby blogs and sites using the popular cost per influence model (how it works). 75 |
76 | 81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 | 91 | 92 | 93 |
94 |
95 |
96 | 104 |
105 | 106 | 107 | 108 | -------------------------------------------------------------------------------- /test/assets/html/257.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ruby Wine - San Francisco rubywinesf.com 8 | 9 | 26 | 40 | 41 | 42 | 43 | 44 | 51 | 52 |
53 | 54 |
55 | 56 | 57 |
58 |

Our Story

59 |

Established in Potrero Hill in 2002, Ruby Wine quickly became the neighborhood destination for fabulous wines and personable service. From everyday wines to those reserved for special occasions, our emphasis is on small producers from Old World countries like France, Italy, and Spain to New World wines from California and Oregon.

60 |

Ruby Wine also stocks a keen selection of champagnes, dessert wines, Belgian ales, and domestic microbrews. We also carry wine accessories from Chateau Laguiole and Riedel and a nice assortment of artisan chocolates by Poco Dolce, Theo, Recchiuti Confections, and Vosges.


61 |
62 | 63 | 64 |
65 |

Tasting

66 |

Don't know a Priorat form a Patrimonio? Come and check out our informal wine tastings. Each week we will offer something different but the theme will always be the same; providing unique wines in an ever-changing format: local wine makers, flights of new releases, and food and wine pairings. Whatever the format, our tastings will be a great way to expand your wine knowledge in a friendly, informal setting.

67 |

All attitudes must be checked at the door!

68 |

Please call 415.401.7708 for an up-to-date tasting schedule.


69 | 70 |
71 | 72 | 73 |
74 |

The Wine Club

75 |

Each week, after tasting many new wines, we select only the finest to offer at Ruby Wine. From our carefully curated collection, we will choose two (or four) particularly amazing bottles to share with you each month. We choose these wines because they are not only great values, delicious, and produced by some pre-eminent winemakers of the world; but, also because these are the wines we love to drink ourselves. These wines you will certainly be reading or hearing about long after enjoying them.

76 |

To fully appreciate the wine, we will include the complete story behind it; from the vineyards to the winemakers and other interesting tidbits. This information paired with the tasting experience makes for a fun, affordable way to expand your wine knowledge.

77 |

Choose between two (or four) bottles each month: red, white, or both. A pair for $40 or four for $72. It is a fantastic deal on some fantastic wines.

78 | 79 |

Not into commitments?

80 |

You are free to opt out at any time, but we are sure you won't want to. Sign up for the wine club on-line or call us at (415) 401-7708.


81 |
82 | 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /test/assets/html/481.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | LONE STAR RUBY CONFERENCE 2008: Home 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 21 | 22 |
23 |

LONE STAR RUBY CONFERENCE 2008

24 |

September 4-6, 2008

25 |
26 | 64 | 65 |
66 |
67 | 68 | 69 | 70 | 71 | 72 |
Don’t Miss Your Chance to See Matz
73 | 74 | 75 | 76 | 77 |

The second annual Lone Star Ruby Conference is heating up and right 78 | around the corner, running for three days, September 4-6 in Austin, TX. 79 | This year LSRC offers a full day of advanced training on Thursday in 80 | addition to the two days of Ruby-packed, dual-tract speaking sessions 81 | on Friday and Saturday.

82 | 83 | 84 |

And as if that wasn’t enough, the author of Ruby, Yukihiro Matsumoto 85 | (a.k.a. Matz), 86 | will be keynoting the conference. This is your opportunity to hear 87 | from the author of Ruby, to ask him questions, and to hang out for 88 | a few days with one of the greatest language designers around.

89 | 90 | 91 |

Rails or Ruby?

92 | 93 | 94 |

The Lone Star Ruby Conference is dedicated to promoting and teaching 95 | Ruby. If you are interested in Web or GUI frameworks, Databases or 96 | Embedded Applications, if it involves Ruby, then you may find it 97 | at LSRC. LSRC is dedicated to bringing you the best of what the Ruby 98 | community has to offer. So, don’t be surprised if you see Merb talks 99 | right next to talks on Rails and Waves.

100 | 101 | 102 |

Below is a sampling of the eclectic mix of topics covered at 103 | LSRC 2008:

104 | 105 | 106 |
    107 |
  • The Next Ruby
  • 108 |
  • Ruby Best Practice Patterns
  • 109 |
  • Tactical Design
  • 110 |
  • Javascript frameworks with Ruby
  • 111 |
  • Creating Desktop Applications with Ruby on Mac OS X
  • 112 |
  • Building and Managing a Ruby Infrastructure
  • 113 |
  • And more…
  • 114 |
115 | 116 | 117 |

Training

118 | 119 | 120 |

Have you ever wanted to take one of those awesome Ruby or Rails courses, but didn’t have the $1000 to pay for the course? Well, LSRC to the rescue! 121 | This year we have added a day of hands-on training (Thursday) in addition to two days of action packed Ruby filled sessions and Lightning Talks! (Friday-Saturday). 122 | A full day of instruction is only $175 with the purchase of a conference ticket.

123 | 124 | 125 |

Keynotes

126 | 127 | 128 |

The conference is featuring keynotes by Matz, the creator of Ruby and Evan Phoenix, the father of Rubinius.

129 | 130 | 131 |

Registration

132 | 133 | 134 |

REGISTRATION is NOW OPEN. Early registration ENDS 135 | Sunday, August 10! Be sure to register while there are still seats 136 | remaining.

137 | 138 | 139 |

See you in Austin in September!

140 |
141 | 142 |
143 | 144 | 145 | -------------------------------------------------------------------------------- /test/assets/html/399.html: -------------------------------------------------------------------------------- 1 | 2 | Link to Legacies Home Page 3 | Link to Smithsonian Press Website 4 | Link to National Museum of American History 5 | About Legacies 6 | Tour the Exhibit 7 | Most Intriguing Objects 8 | Most Popular Objects 9 | Take the Collector Quiz 10 | 11 | 12 | A Treasure House 13 | A Shrine to the Famous 14 | A Palace of Progress 15 | A Mirror of America 16 | From Artifacts to America 17 | Exhibit Search 18 | Buy the Book 19 | 20 | 21 | 22 | Smithsonian Press--Legacies--1Treasure House--Ruby slippers worn by Judy Garland in The Wizard of Oz, 1939 23 | 24 | 25 | 26 |
27 | 28 | 29 | 31 | 32 | 33 | 50 | 51 |
30 |

Legacies: Collecting America's History at the Smithsonian, by Steven Lubar and Kathleen M. Kendrick
34 | 48 |
35 | You are here: 36 | Treasure House > Old and New Treasures

37 |
Ruby slippers worn by Judy Garland in The Wizard of Oz, 1939Ruby slippers worn by Judy Garland in The Wizard of Oz, 1939 38 |

The rubies are not real, and the shoes are worn about the edges. But Dorothy's ruby slippers (one of several surviving pairs) have been one of the most popular artifacts at the National Museum of American History since they were collected in 1979. What makes them a treasure?

39 |

40 | 41 | See also: 42 | Film and Television Memorabilia, Popular Culture Memorabilia, Shoes, Popular Objects

43 |
44 |

45 | Return to the Legacies Home Page 46 |

 
47 | © 2001, Smithsonian Institution Press. Media Inquiries.

49 |
52 | 53 | 54 | -------------------------------------------------------------------------------- /test/assets/html/414.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JackRabbit Systems is looking for a Ruby Craftsman 6 | 7 | 8 | 9 | 10 | 11 | 16 | 17 | 18 | 19 | 20 |
21 |
22 | 37signals logo 23 |

37signals Job Board now with internships

24 |

Industry leaders such as Apple, The New York Times, CNET, Facebook, Adobe, Trek, and American Express use this Job Board to reach today's best and brightest web minds. Discover why this job board will find you better people than other job sites.

25 |
26 | 27 | 28 |
29 |
30 |

31 | Ruby Craftsman 32 | at 33 | JackRabbit Systems 34 |

35 |
36 |
37 | 38 |
39 | 42 | 43 |

44 | Type: Full-time Job
45 | Location: Remote
46 | 47 | URL: http://www.jackrabbitsystems.com 48 |

49 | 50 |
51 |

JackRabbit Systems offers a new kind of hotel search engine that is embedded into high-traffic local and regional websites. The system aggregates rates and availability from hotel inventory systems and allows consumers to book directly with the hotel. The company is growing rapidly (see www.jackrabbitsystems.com/markets.shtml ) and seeks an experienced RoR developer to maintain and add new features to our core DSL. JackRabbit is based primarily in Santa Fe, New Mexico with a 40-person sales team throughout North America and one senior developer in the Bay Area. We are looking for a second off-site developer who can maintain focus and productivity in a remote location. Contract position to start with an opportunity for full-time employment.

52 |

Requirements:
53 | Significant experience with Ruby
54 | A commitment to delivering code that is solid, production-grade and easy to maintain
55 | Familiarity with agile development techniques including test-driven development and refactoring
56 | Experience writing screen scrapers (mechanize / hpricot, css selectors, xpath, regular expressions)
57 | Job queues in ruby (Nanite / Starling / SQS / BackgroundRB)

58 |

Desired skills:
59 | Experience using Ruby to build DSLs
60 | Experience with alternative testing frameworks like RSpec, Cucumber, Mocha, RR, Context, Matchy
61 | Comfortable working with distributed web applications using ActiveWebService or ActiveResource
62 | Experience with Amazon Web Services and related technologies (EC2, S3, RightScale)
63 | Solid Javascript skills, preferably jQuery
64 | HAML / SASS
65 | Git
66 | Functional programming (erlang, lisp, haskell)

67 |
68 | 69 | 70 |

71 | To apply
72 | Send resume to joel@jackrabbitsystems.com 73 |

74 |
75 | 76 | 77 |
78 | Go to: 79 | All Programming jobs, 80 | All jobs, 81 | Signal vs. Noise blog 82 |
83 | 84 |
85 | 86 | 88 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /test/assets/html/480.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | RubyConf 2008 15 | 16 | 17 | 18 | 19 |
20 | 64 |
65 |

66 |
67 |
68 | 69 |

70 | For eight years running, we at Ruby Central have been pleased to bring you the 71 | best damned Ruby conference in the world. This year will be no exception. 72 | After scouring far and wide we have found the ultimate location for RubyConf 2008, 73 | and that's in Orlando, Florida. Trust us, this is going to be amazing. 74 |

75 |
76 |
77 | 78 |

79 | This place has it all! We'll have four restaurants to choose from and tons of 80 | space to facilitate geek hangout far into the late-night hours. We have now 81 | opened registration for RubyConf 2008!. You can register by clicking here. 82 |

83 |
84 |
85 |

86 | 87 |

88 | The Conference will be held at the Omni Orlando Resort at ChampionsGate in Orlando, Florida, USA from the sixth to the eighth of November. ChampionsGate offers over 700 rooms, 4 restaurants, its own golf course and lazy river! For reservations click here. 89 |

90 |

Proudly Sponsored by:

91 |

92 | Fiveruns 93 |

94 |

95 |

96 | We have opened registration. You can get to the registration site by clicking here. Don't forget to also make a reservation with the Omni Orlando Resort. 97 |

98 |
99 |
100 | 101 |
102 | 104 |
105 | 106 | 107 | -------------------------------------------------------------------------------- /test/assets/html/238.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Welcome to the Ruby Ranch Internet Cooperative Association 5 | 6 | 7 |
8 |

Welcome to the Ruby Ranch Internet Cooperative Association

9 |
10 | 11 | 12 | 16 | 27 | 28 |
The Ruby Ranch Internet Cooperative Association ("the 13 | Coop") was created as a member-owned and operated provider of high-speed 14 | Internet connectivity to homes in the Ruby 15 | Ranch neighborhood in Summit County, Colorado. 17 |

29 |
30 |

About the Coop

31 |

The Coop was founded in 2001 because at the time, no one offered DSL or 32 | cable modem Internet access in our neighborhood, and because the voice 33 | telephone service to the neighborhood is of such poor quality that it was (and 34 | is) not possible to get modem connections faster than about 26K bits per 35 | second. The Coop is a Colorado nonprofit corporation and 36 | is federally tax-exempt under 501(c)(12).

37 |

The Coop's launch of service in 2002 was made possible only by loans 38 | from "angels," neighborhood residents who chose to lend money to the Coop with 39 | no assurance the loans would ever be repaid. The Coop reached a milestone in 40 | the first quarter of 2004 successfully repaying (ahead of schedule, and with 41 | interest) all of the "angel" loans. The Coop is now debt-free.

42 |

The Coop has served its subscribers with two kinds of circuits:

43 |
    44 |
  • "line-shared" assymmetric digital subscriber line (ADSL) circuits, 45 | and
  • 46 |
  • SDSL (symmetric DSL) circuits.
  • 47 |
48 |

The line-shared circuits have used a Qwest unbundled network 49 | element called a "shared distribution subloop", meaning that we have shared the 50 | last few hundred feet of a voice line.

51 |

The SDSL circuits have used a Qwest unbundled network 52 | element called an "unbundled distribution subloop", meaning that we have rented 53 | the entirety of a few hundred feet of copper (not shared with voice). These 54 | subloops are presently priced by Qwest at $24.13 per month. The Colorado Public 55 | Utility Commission is presently in a ratemaking proceeding in which this 56 | monthly rate is to be redetermined. The Coop has submitted 57 | comments in this proceeding 58 | suggesting how the rate ought to be set.

59 |

In the view of the Coop, $24.13 is ridiculously high for the rental of a 60 | few hundred feet of a spare copper pair, especially when one considers that 61 | rental of several miles of copper, plus renting dial tone central office 62 | facilities, plus retail markups, costs only about $19.00. The Coop has been 63 | engaged for the past year and a half in futile and time-wasting "negotiations" 64 | with Qwest in which Qwest repeats, over and over again, that the $24.13 price 65 | is a "take it or leave it" price. Qwest's view is that supposedly its hands are 66 | tied. Because there is an SGAT (statement of generally available terms) in 67 | Colorado, Qwest says it is illegal for it to even discuss, let alone agree to, 68 | any rate other than the rate set forth in the SGAT.

69 |

In late 2005, the Coop asked the Colorado PUC to rule upon whether the 70 | existence of an SGAT relieves Qwest of its duty (under the Telecommunications 71 | Act of 1996) to negotiate wholesale unbundled network element prices in good 72 | faith. On March 13, 2006, the PUC ruled in favor of the Coop and against Qwest on this issue. 74 | Qwest asked the PUC to reconsider, and on April 26, 2006 the PUC 75 | again ruled in favor of the Coop and 76 | against Qwest. Qwest asked the PUC to reconsider yet again, and on June 13, 77 | 2006 the PUC yet again ruled in favor of 78 | the Coop and against Qwest.

79 |

It will be interesting to see if Qwest will now negotiate in good faith 80 | regarding pricing for the unbundled distribution subloops.


81 |

This page is http://www.rric.net .

82 | 83 | -------------------------------------------------------------------------------- /test/assets/html/457.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Ruby's Diner - rubys.com 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 37 | 38 | 39 |
40 | 48 | 49 | 53 | 54 |
© Copyright 2009 Ruby's Diner, Inc. - All Rights Reserved. - Investment 50 | Opportunities - Franchise 51 | Opportunities - Usage & Policy
52 |
55 |
56 | 57 | -------------------------------------------------------------------------------- /test/assets/html/196.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CLYDE D. RUBY 4 | 5 | 6 |
7 |

8 | 9 |

10 | 11 |

CLYDE D. RUBY

12 |
    13 |
  • email: 14 | ( ruby@cs.iastate.edu) 15 | 16 | 17 |

    EDUCATION

    18 | 24 | 30 | 31 |

    Research Interests

    32 | Programming language semantics (especially for object-oriented languages), 33 | programming methodology, specification (Larch/C++, Java Modeling Language (JML)), 34 | and verification. 35 |

    Publications

    36 |
      37 |
    • Clyde Ruby 38 | and Gary T. Leavens. 39 | Safely Creating Correct Subclasses without Seeing Superclass Code. 40 | In OOPSLA 41 | 2000 Conference Proceedings, pages 208-228. Volume 35, number 42 | 10 of ACM SIGPLAN 43 | Notices, October 2000.
      44 | Also Department of Computer Science, Iowa State University, 45 | TR #00-05d, April 2000, revised April, June, July 2000. 46 | [abstract] 47 | [postscript]
    • 48 | 49 |
    • Clyde Ruby. 50 | Safely Creating Correct Subclasses without Seeing Superclass Code. 51 | In OOPSLA 52 | 2000 Companion: Doctoral Symposium, Minneapolis, Minnesota, 53 | October 2000, pages 155-156. 54 | 55 |
    • Gary T. Leavens 56 | and K. Rustan M. Leino and Erik Poll and 57 | Clyde Ruby and Bart Jacobs. 58 | JML: Notations and Tools Supporting Detailed Design in Java, 59 | OOPSLA 2000 Companion, Minneapolis, Minnesota, 60 | October 2000, pages 105-106, 61 | ACM, 62 | 63 | 64 |
    • Gary T. Leavens 65 | and Albert L. Baker 66 | and Clyde Ruby. 67 | JML: A Notation for Detailed Design 68 | in Behavioral Specifications of Businesses and Systems, 69 | Editors: Haim Kilov and Bernhard Rumpe and Ian Simmonds, 70 | 1999, 71 | Kluwer Academic Publishers, Boston, 72 | pages 175-188.
    • 73 | 74 |
    • Gary T. Leavens 75 | and Albert L. Baker 76 | and Clyde Ruby. 77 | Preliminary Design of JML: 78 | A Behavioral Interface Specification Language for Java. 79 | Iowa State University, Department of Computer Science, 80 | TR #98-06k, July 2000. 81 | [postscript]
    • 82 | 83 |
    • Gary T. Leavens 84 | and Albert L. Baker 85 | and Clyde Ruby. 86 | JML: a Java Modeling Language, 87 | Formal Underpinnings of Java Workshop (at OOPSLA '98), 88 | October 1998, 89 | [html]
    • 90 | 91 |
    • Gary T. Leavens 92 | and Clyde Ruby. 93 | Specification Facets for More Precise, Focused Documentation. 94 | In the Proceedings of the Eighth Annual Workshop on Software 95 | Reuse (WISR8), Columbus Ohio, March 1997.
      96 | Also Department of Computer Science, Iowa State University, 97 | TR #97-04, January 1997. 98 | [abstract] 99 | [postscript]
    • 100 |
    101 | 102 |

    More information:

    103 |
      104 |
    • The Java Modeling Language Project: 105 | [JML] 106 |
    107 | 112 |

    Miscellaneous

    113 | 114 | 115 |

    116 | 117 |

    My wife and I (Christmas 1995)

    118 |

    119 | 120 |

    121 |

    122 | 123 |

    124 | 125 | 126 | 127 | -------------------------------------------------------------------------------- /test/assets/html/130.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Ruby 4 | 5 | 6 |

    runoffgroove.com
    Ruby

    7 |

    Ruby schematic

    8 |

    Ruby is an "enhanced" version of the Little Gem battery-powered amplifier. The architecture of the Little Gem has been updated with an input buffer (as found in the Little Gem MkII) feeding the inverting input and the volume control changed from the output rheostat to the type and placement as shown in the datasheet application notes. Additionally, the 5k Gain pot of the Little Gem has been reduced to a 1k, as used in the Grace / Big Daddy circuits.

    9 |

    Ruby has many shades of sparkly clean all the way up to a great, natural 10 | overdrive. The input buffer helps to retain treble detail going into the 11 | 386 chip. As you increase the Volume, you will start getting nice 12 | breakup. Where the Little Gem is similar to a "master volume" amplifier, Ruby is more like the "non-master" volume amps. If 13 | the Little Gem can be considered Marshall-ish, Ruby could be called Fender-ish or like a JTM 45. 14 |

    15 |

    The Gain pot works like a limit for the amount of available gain. With careful setting of the Volume and Gain pots, you can get the most clean volume possible from the 386. To do this, set the Volume pot to maximum and slowly turn up the Gain pot. Find the point just before the sound starts to break up and you have the maximum clean volume available. To kick things into overdrive, turn up the Gain pot to the desired maximum gain and adjust the Volume pot. These pots are highly interactive. If you have the Gain pot set high and you are still not getting desireable overdrive, you'll have to turn up the Volume pot to let more signal pass to the 386.

    16 |

    An MPF102 FET is specified for the buffer, though a 2N5457 will offer similar results. A J201 will work, but produces a slightly lower output. Also, Ruby was developed using a JRC386D (available from Small Bear Electronics), but any 386 can be used, including the type sold at RadioShack.


    17 |

    Possible Modifications
      18 |
    • Bassman
      Replace the .047uF cap from the FET source pin to the volume pot with a 0.1uF. Place a 220pF cap from lug 3 to lug 2 on the volume pot. Remove the Gain pot and place 2k2 fixed resistor between pins 1 and 8. In this configuration, Ruby sounds very much like an old Fender Bassman to our ears. With the Volume control at half rotation and below, you'll notice smooth and sparkly cleans with good depth. With the Volume pot set high, you'll hear nice overdrive that is great for blues playing. The transition from dirty to clean can be controlled with your picking or strumming. This aspect can add an extra dimension to your playing.

    • 19 |
    • Pre-set Gain Ceiling
      Use a 1k, 2k, or 5k trimmer in place of the Gain pot. This will allow a pre-set for the amount of gain and distortion over the Volume pot travel.

    • 20 |
    • 12v power
      A 9v power source is indicated on the schematic and layout, but Mark Hammer (hammer.ampage.org) recommends using 8 AA batteries. The 12v supplied by the battery pack provides longer battery life and increased headroom. No circuit modifications are necessary, but be sure that your 386 is rated for 12v.

    • 21 |
    • Hiwatt
      Ricky Vance (aka RDV) reports that using a 15n input cap and increasing the volume pot value to 50k will produce Pete Townshend tones when driven by a booster. Also, adding a .001uF treble bleed cap between lugs 3 and 2 of the pot will help retain high-end clarity at lower volumes. Finally, Ricky left pins 1 and 8 open for added headroom and added the output RC network as used in the Little Gem.
    22 |
    23 |

    Pablo De Luca (aka Gringo) contributed a PCB layout for Ruby (PDF, 184k)

    24 |

    Ruby perfboard layout

    25 |

    26 |

    27 |
    42 |

    Back   Home

    45 | 47 | 51 | 52 | -------------------------------------------------------------------------------- /test/assets/html/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | APOD: 2008 September 27 - M83: The Thousand Ruby Galaxy 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 15 | 17 | 18 |
    19 | 20 | 21 | 22 | 28 | 29 |

    Astronomy Picture of the Day

    30 |

    31 | 32 | Discover the cosmos! 33 | Each day a different image or photograph of our fascinating universe is 34 | featured, along with a brief explanation written by a professional astronomer. 35 |

    36 | 2008 September 27 37 |
    38 | 39 | See Explanation.  Clicking on the picture will download
 41 |  the highest resolution version available. 42 |

    43 | 44 |
    45 | M83: The Thousand-Ruby Galaxy
    46 | 47 | Color Composite: 48 | Davide De Martin (Skyfactory) 49 |
    50 | Credit: 51 | European Southern Observatory 52 | Science Archive 53 | 54 |
    55 |

    56 | 57 | Explanation: 58 | 59 | Big, bright, and beautiful, 60 | spiral galaxy M83 61 | lies a mere twelve million light-years away, near the southeastern 62 | tip of the very long constellation 63 | Hydra. 64 | 65 | Prominent spiral arms traced by dark dust lanes and blue star 66 | clusters lend this galaxy its popular name of the Southern Pinwheel. 67 | 68 | But reddish 69 | star forming regions 70 | that dot the sweeping arms 71 | highlighted in 72 | this sparkling color composite also suggest 74 | another nickname, 75 | The Thousand-Ruby Galaxy. 76 | 77 | About 40,000 light-years across, M83 is a member of a group of 78 | galaxies that includes active galaxy 79 | Centaurus A. 80 | 81 | The core of M83 itself is bright 82 | at x-ray energies, showing a high 83 | concentration of neutron stars and black holes left from 84 | an intense burst of star formation. 85 | 86 | The sharp image, based on archival data from the European Southern 87 | Observatory's Wide Field Imager camera, 88 | also features 89 | spiky 91 | foreground Milky Way stars and distant background 92 | galaxies. 94 | 95 |

    96 | 98 |
    99 | Tomorrow's picture: new stars 100 | 101 |


    102 | < 103 | | Archive 104 | | Index 105 | | Search 106 | | Calendar 107 | | RSS 108 | | Education 109 | | About APOD 110 | | Discuss 111 | | > 112 | 113 |

    114 | 115 | Authors & editors: 116 | Robert Nemiroff 117 | (MTU) & 118 | Jerry Bonnell (UMCP)
    120 | NASA Official: Phillip Newman 121 | Specific rights apply.
    122 | NASA Web 123 | Privacy Policy and Important Notices
    124 | A service of: 125 | ASD at 126 | NASA / 127 | GSFC 128 |
    & Michigan Tech. U.
    129 | 130 |

    131 | 132 | 133 | --------------------------------------------------------------------------------