Skip to content

Instantly share code, notes, and snippets.

Nokogiri Parser Comparisons

Author: Ezekiel Templin
Date: February 06, 2011
Summary: Comparing Nokogiri's parsers

System Information

Operating System:    Mac OS X 10.6.6 (10J567)

CPU: Intel Core i7 2.66 GHz

class Page < Ohm::Model
attribute :name
attribute :html
list :blocks, BlockContent
index :name
def validate
assert_present :name
end
@iande
iande / dragnet example.rb
Created April 10, 2011 21:49
Example dragnet DSL - First Draft
result_objects = Google.search("something") do |results|
results.map do |link|
obj = build_object ...
obj.title = link.content
obj.url = link.href
get(link.href) do |doc|
obj.description = doc['div#desc'].content
...
end
@iande
iande / gist:959065
Created May 6, 2011 14:47
First Stab @ package_error
package_error()
{
local _message=$1
if [[ -z "${_message}" ]]
then
fail "Cannot print a package error as no message was provided."
fi
local _log=$2
if [[ -n ${_log} ]] && file_exists ${_log}
@iande
iande / gist:989971
Created May 24, 2011 23:09
Blah blah STI
class Result
# Possible attributes:
# seller_name: String, nil
# title : String, nil
# description: String
# price : Decimal
def human_readable_on_base
str = if self.title
"#{self.title} "
@iande
iande / gist:997300
Created May 28, 2011 22:33
Please Don't
class String
def levenshtein other
# .. left as exercise for the reader
end
class Object
def method_missing meth, *args, &block
meth_str = meth.to_s
new_meth = self.methods.map do |m|
[meth_str.levenshtein(m.to_s), m]
@iande
iande / Steps to Reproduce
Created May 28, 2011 22:45
gem sandbox error
rvm use ruby-1.9.2
gem install open_gem
gem sandbox install flog
@iande
iande / make_year.rb
Created May 31, 2011 12:32
make_year
def self.make_year(year, bias)
# Check for year > 2 digits, etc
# ...
start_year = Chronic.time_class.now.year - bias
century = (start_year / 100) * 100
full_year = century + year
if full_year < start_year
full_year + 100
else
full_year
module MyMod
class << self
attr_reader :my_reader
end
attr_reader :my_other_reader
module_function :my_other_reader
end
#!/usr/bin/env bash
if [[ -s "/Users/chaos/.rvm/environments/ruby-1.9.2-p180@global" ]]
then
source "/Users/chaos/.rvm/environments/ruby-1.9.2-p180@global"
exec ruby "$@"
else
echo "ERROR: Missing RVM environment file: '/Users/chaos/.rvm/environments/ruby-1.9.2-p180@global'" >&2
exit 1
fi