Skip to content

Instantly share code, notes, and snippets.

@briandoll
Created July 20, 2010 04:58
Show Gist options
  • Save briandoll/482550 to your computer and use it in GitHub Desktop.
Save briandoll/482550 to your computer and use it in GitHub Desktop.
# ENV:
ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-darwin10.3.1]
pismo (0.6.2)
nokogiri (1.4.2)
...
>> require 'pismo'
=> true
# First method works:
>> Pismo["http://github.com/peterc/pismo"].keywords
=> [["pismo", 10], ["description", 10], ["ruby", 6], ["script", 5], ["body", 5], ["web", 5], ["io", 5], ["license", 5], ["extraction", 4], ["methods", 3], ["command", 3], ["cramp", 3], ["titles", 3], ["page", 3], ["html", 3], ["data", 3], ["return", 3], ["metadata", 3], ["reader", 3], ["urls", 3]]
# Second method works:
>> Pismo::Document.new("http://github.com/peterc/pismo").keywords
=> [["pismo", 10], ["description", 10], ["ruby", 6], ["script", 5], ["body", 5], ["web", 5], ["io", 5], ["license", 5], ["extraction", 4], ["methods", 3], ["command", 3], ["cramp", 3], ["titles", 3], ["page", 3], ["html", 3], ["data", 3], ["return", 3], ["metadata", 3], ["reader", 3], ["urls", 3]]
# Third method, boom goes the dynamite (repeatedly, with lots of different URL's)
>> pismo = Pismo::Document.new("http://github.com/peterc/pismo")
=> #<Pismo::Document:0x1017d3b68 @doc=#<Nokogiri::HTML::Document:0x80be03f4 name="document" children=[#<Nokogiri::XML::DTD:0x80bdfecc name="html">, #<Nokogiri::XML::Element:0x80bdfd8c name="html" attributes=[#<Nokogiri::XML::Attr:0x80bdeff4 name="xmlns" value="http://www.w3.org/1999/xhtml">, #<Nokogiri::XML::Attr:0x80bdefb8 name="xml:lang" value="en">, #<Nokogiri::XML::Attr:0x80bdefa4 name="lang" value="en">] children=[#<Nokogiri::XML::Element:0x80bde07c name="head" children=[#<Nokogiri::XML::Element:0x80bddaf0 name="meta" attributes=[#<Nokogiri::XML::Attr:0x80bdd974 name="http-equiv" value="content-type">, #<Nokogiri::XML::Attr:0x80bdd960 name="content" value="text/html;charset=UTF-8">]>, #<Nokogiri::XML::Element:0x80bdda50 name="meta" attributes=[#<Nokogiri::XML::Attr:0x80bdcd58 name="http-equiv" value="X-UA-Compatible">, #<Nokogiri::XML::Attr:0x80bdcd44 name="content" value="chrome=1">]>, #<Nokogiri::XML::Element:0x80bdcdf8 name="title" children=[#<Nokogiri::XML::Text:0x80bdbc14 "peterc's pismo at master - GitHub">]>, #<Nokogiri::XML::Element:0x80bdb82c name="link" attributes=[#<Nokogiri::XML::Attr:0x80bdb4a8 name="rel" value="search">, #<Nokogiri::XML::Attr:0x80bdb494 name="type" value="application/opensearchdescription+xml">, #<Nokogiri::XML::Attr:0x80bdb480 name="href" value="/opensearch.xml">, #<Nokogiri::XML::Attr:0x80bdb46c name="title" value="GitHub">]>, #<Nokogiri::XML::Element:0x80bdb638 name="link" attributes=[#<Nokogiri::XML::Attr:0x80bda2c4 name="rel" value="fluid-icon">, #<Nokogiri::XML::Attr:0x80bda2b0 name="href" value="http://github.com/fluidicon.png">, #<Nokogiri::XML::Attr:0x80bda29c name="title" value="GitHub">]>, #<Nokogiri::XML::Element:0x80bda378 name="link" attributes=[#<Nokogiri::XML::Attr:0x80bd9478 name="href" value="http://assets0.github.com/stylesheets/bundle_common.css?4145dfae543db1df6d2a0c8c31d5916c23ba6779">, #<Nokogiri::XML::Attr:0x80bd9464 name="media" value="screen">, #<Nokogiri::XML::Attr:0x80bd9414 name="rel" value="stylesheet">, #<Nokogiri::XML::Attr:0x80bd9400 name="type" value="text/css">]>, #<Nokogiri::XML::Element:0x80bd9504 name="link" attributes=[#<Nokogiri::XML::Attr:0x80bd7c7c name="href" value="http://assets3.github.com/stylesheets/bundle_github.css?4145dfae543db1df6d2a0c8c31d5916c23ba6779">, #<Nokogiri::XML::Attr:0x80bd7c2c name="media" value="screen">, #<Nokogiri::XML::Attr:0x80bd7b64 name="rel" value="stylesheet">, #<Nokogiri::XML::Attr:0x80bd7b50 name="type" value="text/css">]>, #<Nokogiri::XML::Element:0x80bd7d30 name="script" attributes=[#<Nokogiri::XML::Attr:0x80bd6610 name="type" value="text/javascript">, #<Nokogiri::XML::Attr:0x80bd65fc name="charset" value="utf-8">] children=[#<Nokogiri::XML::CDATA:0x80bd5b70 "\n var GitHub = {}\n var github_user = null\n \n ">]>, #<Nokogiri::XML::Element:0x80bd59f4 name="script" attributes=[#<Nokogiri::XML::Attr:0x80bd5800 name="src" value="http://assets2.github.com/javascripts/jquery/jquery-1.4.2.min.js?4145dfae543db1df6d2a0c8c31d5916c23ba6779">, #<Nokogiri::XML::Attr:0x80bd57ec name="type" value="text/javascript">]>, #<Nokogiri::XML::Element:0x80bd59a4 name="script" attributes=[#<Nokogiri::XML::Attr:0x80bd44a0 name="src" value="http://assets2.github.com/javascripts/bundle_common.js?4145dfae543db1df6d2a0c8c31d5916c23ba6779">, #<Nokogiri::XML::Attr:0x80bd448c name="type" value="text/javascript">]>, #<Nokogiri::XML::Element:0x80bd4608 name="script" attributes=[#<Nokogiri::XML::Attr:0x80bd399c name="src" value="http://assets3.github.com/javascripts/bundle_github.js?4145dfae543db1df6d2a0c8c31d5916c23ba6779">, #<Nokogiri::XML::Attr:0x80bd3988 name="type" value="text/javascript">]>, #<Nokogiri::XML::Element:0x80bd3a50 name="script" attributes=[#<Nokogiri::XML::Attr:0x80bd2e5c name="type" value="text/javascript">, #<Nokogiri::XML::Attr:0x80bd2e48 name="charset" value="utf-8">] children=[#<Nokogiri::XML::CDATA:0x80bd24e8 "\n GitHub.spy({\n repo: \"peterc/pismo\"\n })\n ">]>, #<Nokogiri::XML::Element:0x80bd21dc name="link" attributes=[#<Nokogiri::XML::Attr:0x80bd20ec name="href" value="http://github.com/peterc/pismo/commits/master.atom">, #<Nokogiri::XML::Attr:0x80bd20d8 name="rel" value="alternate">, #<Nokogiri::XML::Attr:0x80bd20c4 name="title" value="Recent Commits to pismo:master">, #<Nokogiri::XML::Attr:0x80bd20b0 name="type" value="application/atom+xml">]>, #<Nokogiri::XML::Element:0x80bd218c name="meta" attributes=[#<Nokogiri::XML::Attr:0x80bd11d8 name="name" value="description">, #<Nokogiri::XML::Attr:0x80bd10d4 name="content" value="Extracts machine-readable metadata and content from Web pages">]>, #<Nokogiri::XML::Element:0x80bd12a0 name="script" attributes=[#<Nokogiri::XML::Attr:0x80bd07ec name="type" value="text/javascript">] children=[#<Nokogiri::XML::CDATA:0x80bd00f8 "\n GitHub.nameWithOwner = GitHub.nameWithOwner || \"peterc/pismo\";\n GitHub.currentRef = \"master\";\n ">]>, #<Nokogiri::XML::Element:0x80bcfe64 name="script" attributes=[#<Nokogiri::XML::Attr:0x80bcfd74 name="type" value="text/javascript">] children=[#<Nokogiri::XML::CDATA:0x80bcf66c "\n var _gaq = _gaq || [];\n _gaq.push(['_setAccount', 'UA-3769691-2']);\n _gaq.push(['_trackPageview']);\n (function() {\n var ga = document.createElement('script');\n ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\n ga.setAttribute('async', 'true');\n document.documentElement.firstChild.appendChild(ga);\n })();\n ">]>]>, #<Nokogiri::XML::Element:0x80bcf338 name="body" children=[#<Nokogiri::XML::Text:0x80bcee4c "\n \n\n \n ">, #<Nokogiri::XML::Element:0x80bcedfc name="script" attributes=[#<Nokogiri::XML::Attr:0x80bcec80 name="type" value="text/javascript">] children=[#<Nokogiri::XML::CDATA:0x80bce5a0 "\n var _kmq = _kmq || [];\n function _kms(u){\n var s = document.createElement('script'); var f = document.getElementsByTagName('script')[0]; s.type = 'text/javascript'; s.async = true;\n s.src = u; f.parentNode.insertBefore(s, f);\n }\n _kms('//i.kissmetrics.com/i.js');_kms('//doug1izaerwt3.cloudfront.net/406e8bf3a2b8846ead55afb3cfaf6664523e3a54.1.js');\n ">]>, #<Nokogiri::XML::Element:0x80bce2f8 name="div" attributes=[#<Nokogiri::XML::Attr:0x80bce1e0 name="class" value="subnavd">, #<Nokogiri::XML::Attr:0x80bce1cc name="id" value="main">] children=[#<Nokogiri::XML::Text:0x80bcd790 "\n ">, #<Nokogiri::XML::Element:0x80bcd718 name="div" attributes=[#<Nokogiri::XML::Attr:0x80bcd4c0 name="id" value="header">, #<Nokogiri::XML::Attr:0x80bcd4ac name="class" value="pageheaded">] children=[#<Nokogiri::XML::Text:0x80bccb10 "\n ">, #<Nokogiri::XML::Element:0x80bccaac name="div" attributes=[#<Nokogiri::XML::Attr:0x80bcc804 name="class" value="site">] children=[#<Nokogiri::XML::Text:0x80bcc138 "\n ">, #<Nokogiri::XML::Element:0x80bcc0e8 name="div" attributes=[#<Nokogiri::XML::Attr:0x80bcbf80 name="class" value="logo">] children=[#<Nokogiri::XML::Text:0x80bcb850 "\n ">, #<Nokogiri::XML::Element:0x80bcb7d8 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bcb594 name="href" value="http://github.com">] children=[#<Nokogiri::XML::Element:0x80bcaec8 name="img" attributes=[#<Nokogiri::XML::Attr:0x80bcad88 name="src" value="/images/modules/header/logov3.png">, #<Nokogiri::XML::Attr:0x80bcad74 name="alt" value="github">]>]>, #<Nokogiri::XML::Text:0x80bca400 "\n ">]>, #<Nokogiri::XML::Text:0x80bca180 "\n \n ">, #<Nokogiri::XML::Element:0x80bca11c name="div" attributes=[#<Nokogiri::XML::Attr:0x80bc9e9c name="class" value="topsearch">] children=[#<Nokogiri::XML::Text:0x80bc97e4 "\n \n ">, #<Nokogiri::XML::Element:0x80bc9780 name="form" attributes=[#<Nokogiri::XML::Attr:0x80bc9618 name="action" value="/search">, #<Nokogiri::XML::Attr:0x80bc95f0 name="id" value="top_search_form">, #<Nokogiri::XML::Attr:0x80bc95dc name="method" value="get">] children=[#<Nokogiri::XML::Text:0x80bc8844 "\n ">, #<Nokogiri::XML::Element:0x80bc87f4 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bc8678 name="href" value="/search">, #<Nokogiri::XML::Attr:0x80bc8664 name="class" value="advanced-search tooltipped downwards">, #<Nokogiri::XML::Attr:0x80bc8650 name="title" value="Advanced Search">] children=[#<Nokogiri::XML::Text:0x80bc7250 "Advanced Search">]>, #<Nokogiri::XML::Text:0x80bc70c0 "\n ">, #<Nokogiri::XML::Element:0x80bc7048 name="input" attributes=[#<Nokogiri::XML::Attr:0x80bc6df0 name="type" value="search">, #<Nokogiri::XML::Attr:0x80bc6dc8 name="class" value="search my_repos_autocompleter">, #<Nokogiri::XML::Attr:0x80bc6db4 name="name" value="q">, #<Nokogiri::XML::Attr:0x80bc6da0 name="results" value="5">, #<Nokogiri::XML::Attr:0x80bc6d8c name="placeholder" value="Search\342\200\246">]>, #<Nokogiri::XML::Element:0x80bc6eb8 name="input" attributes=[#<Nokogiri::XML::Attr:0x80bc5784 name="type" value="submit">, #<Nokogiri::XML::Attr:0x80bc5770 name="value" value="Search">, #<Nokogiri::XML::Attr:0x80bc575c name="class" value="button">]>, #<Nokogiri::XML::Element:0x80bc5810 name="input" attributes=[#<Nokogiri::XML::Attr:0x80bc4988 name="type" value="hidden">, #<Nokogiri::XML::Attr:0x80bc4960 name="name" value="type">, #<Nokogiri::XML::Attr:0x80bc494c name="value" value="Everything">]>, #<Nokogiri::XML::Element:0x80bc4a28 name="input" attributes=[#<Nokogiri::XML::Attr:0x80bc3ad8 name="type" value="hidden">, #<Nokogiri::XML::Attr:0x80bc3ab0 name="name" value="repo">, #<Nokogiri::XML::Attr:0x80bc3a9c name="value">]>, #<Nokogiri::XML::Element:0x80bc3b64 name="input" attributes=[#<Nokogiri::XML::Attr:0x80bc2d68 name="type" value="hidden">, #<Nokogiri::XML::Attr:0x80bc2c78 name="name" value="langOverride">, #<Nokogiri::XML::Attr:0x80bc2c64 name="value">]>, #<Nokogiri::XML::Element:0x80bc2e30 name="input" attributes=[#<Nokogiri::XML::Attr:0x80bc1fa8 name="type" value="hidden">, #<Nokogiri::XML::Attr:0x80bc1f94 name="name" value="start_value">, #<Nokogiri::XML::Attr:0x80bc1f6c name="value" value="1">]>]>, #<Nokogiri::XML::Text:0x80bc11e8 "\n \n \n ">, #<Nokogiri::XML::Element:0x80bc10a8 name="ul" attributes=[#<Nokogiri::XML::Attr:0x80bc0f2c name="class" value="nav logged_out">] children=[#<Nokogiri::XML::Element:0x80bc08c4 name="li" children=[#<Nokogiri::XML::Element:0x80bc0400 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bc0310 name="href" value="http://github.com">] children=[#<Nokogiri::XML::Text:0x80bbfc58 "Home">]>]>, #<Nokogiri::XML::Text:0x80bbf94c "\n ">, #<Nokogiri::XML::Element:0x80bbf8e8 name="li" attributes=[#<Nokogiri::XML::Attr:0x80bbf690 name="class" value="pricing">] children=[#<Nokogiri::XML::Element:0x80bbece0 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bbebf0 name="href" value="/plans">] children=[#<Nokogiri::XML::Text:0x80bbe560 "Pricing and Signup">]>]>, #<Nokogiri::XML::Text:0x80bbe240 "\n ">, #<Nokogiri::XML::Element:0x80bbe1f0 name="li" children=[#<Nokogiri::XML::Element:0x80bbdda4 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bbda34 name="href" value="http://github.com/explore">] children=[#<Nokogiri::XML::Text:0x80bbd304 "Explore GitHub">]>]>, #<Nokogiri::XML::Text:0x80bbcfe4 "\n \n ">, #<Nokogiri::XML::Element:0x80bbcf58 name="li" children=[#<Nokogiri::XML::Element:0x80bbcb0c name="a" attributes=[#<Nokogiri::XML::Attr:0x80bbc954 name="href" value="/blog">] children=[#<Nokogiri::XML::Text:0x80bbc2b0 "Blog">]>]>, #<Nokogiri::XML::Text:0x80bbbd10 "\n \n ">, #<Nokogiri::XML::Element:0x80bbbbbc name="li" children=[#<Nokogiri::XML::Element:0x80bbb7ac name="a" attributes=[#<Nokogiri::XML::Attr:0x80bbb694 name="href" value="https://github.com/login">] children=[#<Nokogiri::XML::Text:0x80bbad48 "Login">]>]>, #<Nokogiri::XML::Text:0x80bbaa3c "\n ">]>]>, #<Nokogiri::XML::Text:0x80bba6f4 "\n\n ">]>, #<Nokogiri::XML::Text:0x80bba488 "\n ">]>, #<Nokogiri::XML::Text:0x80bba21c "\n\n \n \n \n ">, #<Nokogiri::XML::Element:0x80bba1b8 name="div" attributes=[#<Nokogiri::XML::Attr:0x80bba03c name="class" value="site">] children=[#<Nokogiri::XML::Text:0x80bb9920 "\n ">, #<Nokogiri::XML::Element:0x80bb97f4 name="div" attributes=[#<Nokogiri::XML::Attr:0x80bb9678 name="class" value="pagehead repohead vis-public ">] children=[#<Nokogiri::XML::Text:0x80bb8fd4 "\n ">, #<Nokogiri::XML::Element:0x80bb8f84 name="h1" children=[#<Nokogiri::XML::Text:0x80bb8b38 "\n ">, #<Nokogiri::XML::Element:0x80bb8a20 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bb88b8 name="href" value="/peterc">] children=[#<Nokogiri::XML::Text:0x80bb81d8 "peterc">]>, #<Nokogiri::XML::Text:0x80bb7f6c " / ">, #<Nokogiri::XML::Element:0x80bb7f1c name="strong" children=[#<Nokogiri::XML::Element:0x80bb7ae4 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bb78a0 name="href" value="http://github.com/peterc/pismo">] children=[#<Nokogiri::XML::Text:0x80bb7210 "pismo">]>]>, #<Nokogiri::XML::Text:0x80bb6eb4 "\n \n \n ">]>, #<Nokogiri::XML::Text:0x80bb6c84 "\n\n \n ">, #<Nokogiri::XML::Element:0x80bb6c20 name="ul" attributes=[#<Nokogiri::XML::Attr:0x80bb69b4 name="class" value="actions">] children=[#<Nokogiri::XML::Element:0x80bb6194 name="li" attributes=[#<Nokogiri::XML::Attr:0x80bb60a4 name="class" value="for-owner">, #<Nokogiri::XML::Attr:0x80bb6090 name="style" value="display:none">] children=[#<Nokogiri::XML::Element:0x80bb553c name="a" attributes=[#<Nokogiri::XML::Attr:0x80bb53d4 name="href" value="https://github.com/peterc/pismo/edit">, #<Nokogiri::XML::Attr:0x80bb53c0 name="class" value="minibutton btn-admin ">] children=[#<Nokogiri::XML::Element:0x80bb46a0 name="span" children=[#<Nokogiri::XML::Element:0x80bb42b8 name="span" attributes=[#<Nokogiri::XML::Attr:0x80bb4100 name="class" value="icon">]>, #<Nokogiri::XML::Text:0x80bb418c "Admin">]>]>]>, #<Nokogiri::XML::Text:0x80bb387c "\n ">, #<Nokogiri::XML::Element:0x80bb382c name="li" children=[#<Nokogiri::XML::Text:0x80bb3264 "\n ">, #<Nokogiri::XML::Element:0x80bb3214 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bb30ac name="href" value="/peterc/pismo/toggle_watch">, #<Nokogiri::XML::Attr:0x80bb3098 name="class" value="minibutton btn-watch ">, #<Nokogiri::XML::Attr:0x80bb3084 name="id" value="watch_button">, #<Nokogiri::XML::Attr:0x80bb3070 name="style" value="display:none">] children=[#<Nokogiri::XML::Element:0x80bb1cd4 name="span" children=[#<Nokogiri::XML::Element:0x80bb18c4 name="span" attributes=[#<Nokogiri::XML::Attr:0x80bb17d4 name="class" value="icon">]>, #<Nokogiri::XML::Text:0x80bb1874 "Watch">]>]>, #<Nokogiri::XML::Text:0x80bb0bf4 "\n ">, #<Nokogiri::XML::Element:0x80bb0ba4 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bb0974 name="href" value="/peterc/pismo/toggle_watch">, #<Nokogiri::XML::Attr:0x80bb0960 name="class" value="minibutton btn-watch ">, #<Nokogiri::XML::Attr:0x80bb08c0 name="id" value="unwatch_button">, #<Nokogiri::XML::Attr:0x80bb08ac name="style" value="display:none">] children=[#<Nokogiri::XML::Element:0x80baf95c name="span" children=[#<Nokogiri::XML::Element:0x80baf560 name="span" attributes=[#<Nokogiri::XML::Attr:0x80baf434 name="class" value="icon">]>, #<Nokogiri::XML::Text:0x80baf510 "Unwatch">]>]>, #<Nokogiri::XML::Text:0x80baeb74 "\n ">]>, #<Nokogiri::XML::Text:0x80bae8e0 "\n \n \n ">, #<Nokogiri::XML::Element:0x80bae890 name="li" attributes=[#<Nokogiri::XML::Attr:0x80bae6ec name="class" value="for-notforked">, #<Nokogiri::XML::Attr:0x80bae6d8 name="style" value="display:none">] children=[#<Nokogiri::XML::Element:0x80badd28 name="a" attributes=[#<Nokogiri::XML::Attr:0x80badb84 name="href" value="/peterc/pismo/fork">, #<Nokogiri::XML::Attr:0x80badb48 name="class" value="minibutton btn-fork ">, #<Nokogiri::XML::Attr:0x80badb34 name="id" value="fork_button">, #<Nokogiri::XML::Attr:0x80badb20 name="onclick" value="var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'POST'; f.action = this.href;var s = document.createElement('input'); s.setAttribute('type', 'hidden'); s.setAttribute('name', 'authenticity_token'); s.setAttribute('value', '652cd7f316708fc9c13d4dc8c2d3189ded826f23'); f.appendChild(s);f.submit();return false;">] children=[#<Nokogiri::XML::Element:0x80bacc84 name="span" children=[#<Nokogiri::XML::Element:0x80bac7c0 name="span" attributes=[#<Nokogiri::XML::Attr:0x80bac6bc name="class" value="icon">]>, #<Nokogiri::XML::Text:0x80bac748 "Fork">]>]>]>, #<Nokogiri::XML::Text:0x80baba8c "\n ">, #<Nokogiri::XML::Element:0x80baba14 name="li" attributes=[#<Nokogiri::XML::Attr:0x80bab8ac name="class" value="for-hasfork">, #<Nokogiri::XML::Attr:0x80bab898 name="style" value="display:none">] children=[#<Nokogiri::XML::Element:0x80baaf9c name="a" attributes=[#<Nokogiri::XML::Attr:0x80baae98 name="href" value="#">, #<Nokogiri::XML::Attr:0x80baae84 name="class" value="minibutton btn-fork ">, #<Nokogiri::XML::Attr:0x80baada8 name="id" value="your_fork_button">] children=[#<Nokogiri::XML::Element:0x80baa290 name="span" children=[#<Nokogiri::XML::Element:0x80ba9ef8 name="span" attributes=[#<Nokogiri::XML::Attr:0x80ba9d18 name="class" value="icon">]>, #<Nokogiri::XML::Text:0x80ba9e94 "Your Fork">]>]>]>, #<Nokogiri::XML::Text:0x80ba94f8 "\n \n\n \n ">, #<Nokogiri::XML::Element:0x80ba94a8 name="li" attributes=[#<Nokogiri::XML::Attr:0x80ba923c name="id" value="pull_request_item">, #<Nokogiri::XML::Attr:0x80ba9228 name="class" value="ospr">, #<Nokogiri::XML::Attr:0x80ba9214 name="style" value="display:none">] children=[#<Nokogiri::XML::Element:0x80ba8634 name="a" attributes=[#<Nokogiri::XML::Attr:0x80ba8544 name="href" value="/peterc/pismo/pull_request/">, #<Nokogiri::XML::Attr:0x80ba8530 name="class" value="minibutton btn-pull-request ">] children=[#<Nokogiri::XML::Element:0x80ba7c48 name="span" children=[#<Nokogiri::XML::Element:0x80ba77ac name="span" attributes=[#<Nokogiri::XML::Attr:0x80ba76bc name="class" value="icon">]>, #<Nokogiri::XML::Text:0x80ba775c "Pull Request">]>]>]>, #<Nokogiri::XML::Text:0x80ba6d98 "\n \n\n ">, #<Nokogiri::XML::Element:0x80ba6d48 name="li" children=[#<Nokogiri::XML::Element:0x80ba6870 name="a" attributes=[#<Nokogiri::XML::Attr:0x80ba6690 name="href" value="#">, #<Nokogiri::XML::Attr:0x80ba6668 name="class" value="minibutton btn-download ">, #<Nokogiri::XML::Attr:0x80ba6654 name="id" value="download_button">] children=[#<Nokogiri::XML::Element:0x80ba5a24 name="span" children=[#<Nokogiri::XML::Element:0x80ba5664 name="span" attributes=[#<Nokogiri::XML::Attr:0x80ba5484 name="class" value="icon">]>, #<Nokogiri::XML::Text:0x80ba554c "Download Source">]>]>]>, #<Nokogiri::XML::Text:0x80ba4b10 "\n \n \n \n ">, #<Nokogiri::XML::Element:0x80ba4aac name="li" attributes=[#<Nokogiri::XML::Attr:0x80ba4890 name="class" value="repostats">] children=[#<Nokogiri::XML::Text:0x80ba41d8 "\n ">, #<Nokogiri::XML::Element:0x80ba4174 name="ul" attributes=[#<Nokogiri::XML::Attr:0x80ba3f1c name="class" value="repo-stats">] children=[#<Nokogiri::XML::Element:0x80ba3904 name="li" attributes=[#<Nokogiri::XML::Attr:0x80ba3800 name="class" value="watchers">] children=[#<Nokogiri::XML::Element:0x80ba30bc name="a" attributes=[#<Nokogiri::XML::Attr:0x80ba2f90 name="href" value="/peterc/pismo/watchers">, #<Nokogiri::XML::Attr:0x80ba2edc name="title" value="Watchers">, #<Nokogiri::XML::Attr:0x80ba2ec8 name="class" value="tooltipped downwards">] children=[#<Nokogiri::XML::Text:0x80ba2310 "52">]>]>, #<Nokogiri::XML::Text:0x80ba1f28 "\n ">, #<Nokogiri::XML::Element:0x80ba1ed8 name="li" attributes=[#<Nokogiri::XML::Attr:0x80ba1ca8 name="class" value="forks">] children=[#<Nokogiri::XML::Element:0x80ba1668 name="a" attributes=[#<Nokogiri::XML::Attr:0x80ba14c4 name="href" value="/peterc/pismo/network">, #<Nokogiri::XML::Attr:0x80ba14b0 name="title" value="Forks">, #<Nokogiri::XML::Attr:0x80ba149c name="class" value="tooltipped downwards">] children=[#<Nokogiri::XML::Text:0x80ba0c18 "3">]>]>, #<Nokogiri::XML::Text:0x80ba0998 "\n ">]>]>, #<Nokogiri::XML::Text:0x80ba0768 "\n ">]>, #<Nokogiri::XML::Element:0x80ba0600 name="ul" attributes=[#<Nokogiri::XML::Attr:0x80ba0524 name="class" value="tabs">] children=[#<Nokogiri::XML::Element:0x80ba00b0 name="li" children=[#<Nokogiri::XML::Element:0x80b9fe1c name="a" attributes=[#<Nokogiri::XML::Attr:0x80b9fd40 name="href" value="http://github.com/peterc/pismo/tree/master">, #<Nokogiri::XML::Attr:0x80b9fd2c name="class" value="selected">, #<Nokogiri::XML::Attr:0x80b9fd18 name="highlight" value="repo_source">] children=[#<Nokogiri::XML::Text:0x80b9f50c "Source">]>]>, #<Nokogiri::XML::Text:0x80b9f2f0 "\n ">, #<Nokogiri::XML::Element:0x80b9f2a0 name="li" children=[#<Nokogiri::XML::Element:0x80b99f94 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b99eb8 name="href" value="http://github.com/peterc/pismo/commits/master">, #<Nokogiri::XML::Attr:0x80b99ea4 name="highlight" value="repo_commits">] children=[#<Nokogiri::XML::Text:0x80b998a0 "Commits">]>]>, #<Nokogiri::XML::Text:0x80b99698 "\n\n \n ">, #<Nokogiri::XML::Element:0x80b99648 name="li" children=[#<Nokogiri::XML::Element:0x80b99350 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b99274 name="href" value="/peterc/pismo/network">, #<Nokogiri::XML::Attr:0x80b99260 name="highlight" value="repo_network">] children=[#<Nokogiri::XML::Text:0x80b98c5c "Network (3)">]>]>, #<Nokogiri::XML::Text:0x80b98a54 "\n\n \n\n \n \n ">, #<Nokogiri::XML::Element:0x80b98a04 name="li" children=[#<Nokogiri::XML::Element:0x80b9870c name="a" attributes=[#<Nokogiri::XML::Attr:0x80b9861c name="href" value="/peterc/pismo/issues">, #<Nokogiri::XML::Attr:0x80b98608 name="highlight" value="issues">] children=[#<Nokogiri::XML::Text:0x80b97d0c "Issues (0)">]>]>, #<Nokogiri::XML::Text:0x80b97a00 "\n \n\n \n \n ">, #<Nokogiri::XML::Element:0x80b97988 name="li" children=[#<Nokogiri::XML::Element:0x80b97514 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b973fc name="href" value="/peterc/pismo/downloads">] children=[#<Nokogiri::XML::Text:0x80b96fc4 "Downloads (10)">]>]>, #<Nokogiri::XML::Text:0x80b96d58 "\n \n\n \n \n ">, #<Nokogiri::XML::Element:0x80b96ce0 name="li" children=[#<Nokogiri::XML::Element:0x80b9645c name="a" attributes=[#<Nokogiri::XML::Attr:0x80b96380 name="href" value="http://wiki.github.com/peterc/pismo/">] children=[#<Nokogiri::XML::Text:0x80b95ea8 "Wiki (1)">]>]>, #<Nokogiri::XML::Text:0x80b95ca0 "\n \n\n ">, #<Nokogiri::XML::Element:0x80b95c50 name="li" children=[#<Nokogiri::XML::Element:0x80b9591c name="a" attributes=[#<Nokogiri::XML::Attr:0x80b95840 name="href" value="/peterc/pismo/graphs">, #<Nokogiri::XML::Attr:0x80b9582c name="highlight" value="repo_graphs">] children=[#<Nokogiri::XML::Text:0x80b95228 "Graphs">]>]>, #<Nokogiri::XML::Text:0x80b95020 "\n\n ">, #<Nokogiri::XML::Element:0x80b94fd0 name="li" attributes=[#<Nokogiri::XML::Attr:0x80b94e7c name="class" value="contextswitch nochoices">] children=[#<Nokogiri::XML::Text:0x80b94a44 "\n ">, #<Nokogiri::XML::Element:0x80b949f4 name="span" attributes=[#<Nokogiri::XML::Attr:0x80b948a0 name="class" value="toggle leftwards">] children=[#<Nokogiri::XML::Text:0x80b94468 "\n ">, #<Nokogiri::XML::Element:0x80b94418 name="em" children=[#<Nokogiri::XML::Text:0x80b94008 "Branch:">]>, #<Nokogiri::XML::Text:0x80b93c84 "\n ">, #<Nokogiri::XML::Element:0x80b93c34 name="code" children=[#<Nokogiri::XML::Text:0x80b9393c "master">]>, #<Nokogiri::XML::Text:0x80b937d4 "\n ">]>, #<Nokogiri::XML::Text:0x80b9366c "\n ">]>, #<Nokogiri::XML::Text:0x80b93504 "\n ">]>, #<Nokogiri::XML::Element:0x80b9339c name="div" attributes=[#<Nokogiri::XML::Attr:0x80b932ac name="style" value="display:none">, #<Nokogiri::XML::Attr:0x80b93298 name="id" value="pl-description">] children=[#<Nokogiri::XML::Element:0x80b92c94 name="p" children=[#<Nokogiri::XML::Element:0x80b92a14 name="em" attributes=[#<Nokogiri::XML::Attr:0x80b92938 name="class" value="placeholder">] children=[#<Nokogiri::XML::Text:0x80b92500 "click here to add a description">]>]>]>, #<Nokogiri::XML::Text:0x80b92258 "\n ">, #<Nokogiri::XML::Element:0x80b92208 name="div" attributes=[#<Nokogiri::XML::Attr:0x80b920b4 name="style" value="display:none">, #<Nokogiri::XML::Attr:0x80b920a0 name="id" value="pl-homepage">] children=[#<Nokogiri::XML::Element:0x80b91a60 name="p" children=[#<Nokogiri::XML::Element:0x80b917cc name="em" attributes=[#<Nokogiri::XML::Attr:0x80b916f0 name="class" value="placeholder">] children=[#<Nokogiri::XML::Text:0x80b912b8 "click here to add a homepage">]>]>]>, #<Nokogiri::XML::Text:0x80b91010 "\n\n ">, #<Nokogiri::XML::Element:0x80b90fc0 name="div" attributes=[#<Nokogiri::XML::Attr:0x80b90e6c name="class" value="subnav-bar">] children=[#<Nokogiri::XML::Text:0x80b90a20 "\n \n ">, #<Nokogiri::XML::Element:0x80b909d0 name="ul" children=[#<Nokogiri::XML::Element:0x80b906d8 name="li" children=[#<Nokogiri::XML::Text:0x80b90458 "\n ">, #<Nokogiri::XML::Element:0x80b90408 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b902b4 name="href" value="#">, #<Nokogiri::XML::Attr:0x80b902a0 name="class" value="dropdown">] children=[#<Nokogiri::XML::Text:0x80b8fc9c "Switch Branches (1)">]>, #<Nokogiri::XML::Text:0x80b8fb34 "\n ">, #<Nokogiri::XML::Element:0x80b8fae4 name="ul" children=[#<Nokogiri::XML::Element:0x80b8f7ec name="li" children=[#<Nokogiri::XML::Element:0x80b8f56c name="strong" children=[#<Nokogiri::XML::Text:0x80b8f2ec "master \342\234\223">]>]>, #<Nokogiri::XML::Text:0x80b8f0e4 "\n \n ">]>]>, #<Nokogiri::XML::Text:0x80b8eedc "\n ">, #<Nokogiri::XML::Element:0x80b8ee8c name="li" children=[#<Nokogiri::XML::Text:0x80b8eb94 "\n ">, #<Nokogiri::XML::Element:0x80b8eb44 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b8e9f0 name="href" value="#">, #<Nokogiri::XML::Attr:0x80b8e9dc name="class" value="dropdown ">] children=[#<Nokogiri::XML::Text:0x80b8e3d8 "Switch Tags (10)">]>, #<Nokogiri::XML::Text:0x80b8e270 "\n ">, #<Nokogiri::XML::Element:0x80b8e220 name="ul" children=[#<Nokogiri::XML::Element:0x80b8df28 name="li" children=[#<Nokogiri::XML::Element:0x80b8dca8 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b8dbcc name="href" value="/peterc/pismo/tree/v0.6.2">] children=[#<Nokogiri::XML::Text:0x80b8d794 "v0.6.2">]>]>, #<Nokogiri::XML::Text:0x80b8d58c "\n \n \n ">, #<Nokogiri::XML::Element:0x80b8d53c name="li" children=[#<Nokogiri::XML::Element:0x80b8d244 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b8d168 name="href" value="/peterc/pismo/tree/v0.6.1">] children=[#<Nokogiri::XML::Text:0x80b8cd30 "v0.6.1">]>]>, #<Nokogiri::XML::Text:0x80b8cb28 "\n \n \n ">, #<Nokogiri::XML::Element:0x80b8cad8 name="li" children=[#<Nokogiri::XML::Element:0x80b8c7e0 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b8c704 name="href" value="/peterc/pismo/tree/v0.6.0">] children=[#<Nokogiri::XML::Text:0x80b8c2cc "v0.6.0">]>]>, #<Nokogiri::XML::Text:0x80b8c0c4 "\n \n \n ">, #<Nokogiri::XML::Element:0x80b8c074 name="li" children=[#<Nokogiri::XML::Element:0x80b8bd7c name="a" attributes=[#<Nokogiri::XML::Attr:0x80b8bca0 name="href" value="/peterc/pismo/tree/v0.5.0">] children=[#<Nokogiri::XML::Text:0x80b8b868 "v0.5.0">]>]>, #<Nokogiri::XML::Text:0x80b8b660 "\n \n \n ">, #<Nokogiri::XML::Element:0x80b8b610 name="li" children=[#<Nokogiri::XML::Element:0x80b8b318 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b8b23c name="href" value="/peterc/pismo/tree/v0.4.0">] children=[#<Nokogiri::XML::Text:0x80b8ae04 "v0.4.0">]>]>, #<Nokogiri::XML::Text:0x80b8abfc "\n \n \n ">, #<Nokogiri::XML::Element:0x80b8abac name="li" children=[#<Nokogiri::XML::Element:0x80b8a8b4 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b8a7d8 name="href" value="/peterc/pismo/tree/v0.2.3">] children=[#<Nokogiri::XML::Text:0x80b8a3a0 "v0.2.3">]>]>, #<Nokogiri::XML::Text:0x80b8a198 "\n \n \n ">, #<Nokogiri::XML::Element:0x80b8a148 name="li" children=[#<Nokogiri::XML::Element:0x80b89e50 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b89d74 name="href" value="/peterc/pismo/tree/v0.2.2">] children=[#<Nokogiri::XML::Text:0x80b8993c "v0.2.2">]>]>, #<Nokogiri::XML::Text:0x80b89734 "\n \n \n ">, #<Nokogiri::XML::Element:0x80b896e4 name="li" children=[#<Nokogiri::XML::Element:0x80b893ec name="a" attributes=[#<Nokogiri::XML::Attr:0x80b89310 name="href" value="/peterc/pismo/tree/v0.2.1">] children=[#<Nokogiri::XML::Text:0x80b88ed8 "v0.2.1">]>]>, #<Nokogiri::XML::Text:0x80b88cd0 "\n \n \n ">, #<Nokogiri::XML::Element:0x80b88c80 name="li" children=[#<Nokogiri::XML::Element:0x80b88988 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b888ac name="href" value="/peterc/pismo/tree/v0.2.0">] children=[#<Nokogiri::XML::Text:0x80b88474 "v0.2.0">]>]>, #<Nokogiri::XML::Text:0x80b8826c "\n \n \n ">, #<Nokogiri::XML::Element:0x80b8821c name="li" children=[#<Nokogiri::XML::Element:0x80b87f24 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b87e48 name="href" value="/peterc/pismo/tree/v0.1.0">] children=[#<Nokogiri::XML::Text:0x80b87a10 "v0.1.0">]>]>, #<Nokogiri::XML::Text:0x80b87808 "\n \n ">]>]>, #<Nokogiri::XML::Text:0x80b87600 "\n ">, #<Nokogiri::XML::Element:0x80b875b0 name="li" children=[#<Nokogiri::XML::Text:0x80b872b8 "\n \n ">, #<Nokogiri::XML::Element:0x80b87268 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b87114 name="href" value="/peterc/pismo/branches">, #<Nokogiri::XML::Attr:0x80b87100 name="class" value="manage">] children=[#<Nokogiri::XML::Text:0x80b86afc "Branch List">]>, #<Nokogiri::XML::Text:0x80b86994 "\n \n ">]>, #<Nokogiri::XML::Text:0x80b8682c "\n ">]>]>, #<Nokogiri::XML::Text:0x80b86624 "\n\n \n \n \n \n \n\n\n \n ">, #<Nokogiri::XML::Element:0x80b865d4 name="div" attributes=[#<Nokogiri::XML::Attr:0x80b86480 name="id" value="repo_details">, #<Nokogiri::XML::Attr:0x80b8646c name="class" value="metabox clearfix">] children=[#<Nokogiri::XML::Text:0x80b85e68 "\n ">, #<Nokogiri::XML::Element:0x80b85e18 name="div" attributes=[#<Nokogiri::XML::Attr:0x80b85cc4 name="id" value="repo_details_loader">, #<Nokogiri::XML::Attr:0x80b85cb0 name="class" value="metabox-loader">, #<Nokogiri::XML::Attr:0x80b85c9c name="style" value="display:none">] children=[#<Nokogiri::XML::Text:0x80b854cc "Sending Request\342\200\246">]>, #<Nokogiri::XML::Text:0x80b85364 "\n\n \n\n ">, #<Nokogiri::XML::Element:0x80b85314 name="div" attributes=[#<Nokogiri::XML::Attr:0x80b851c0 name="id" value="repository_description">, #<Nokogiri::XML::Attr:0x80b851ac name="rel" value="repository_description_edit">] children=[#<Nokogiri::XML::Text:0x80b84ba8 "\n \n ">, #<Nokogiri::XML::Element:0x80b84b58 name="p" children=[#<Nokogiri::XML::Text:0x80b84860 "Extracts machine-readable metadata and content from Web pages\n ">, #<Nokogiri::XML::Element:0x80b84810 name="span" attributes=[#<Nokogiri::XML::Attr:0x80b846bc name="id" value="read_more">, #<Nokogiri::XML::Attr:0x80b846a8 name="style" value="display:none">] children=[#<Nokogiri::XML::Text:0x80b840a4 "\342\200\224 ">, #<Nokogiri::XML::Element:0x80b84054 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b83f00 name="href" value="#readme">] children=[#<Nokogiri::XML::Text:0x80b83ac8 "Read more">]>]>, #<Nokogiri::XML::Text:0x80b838c0 "\n ">]>, #<Nokogiri::XML::Text:0x80b83758 "\n \n ">]>, #<Nokogiri::XML::Text:0x80b835f0 "\n ">, #<Nokogiri::XML::Element:0x80b835a0 name="div" attributes=[#<Nokogiri::XML::Attr:0x80b8344c name="id" value="repository_description_edit">, #<Nokogiri::XML::Attr:0x80b83438 name="style" value="display:none;">, #<Nokogiri::XML::Attr:0x80b83424 name="class" value="inline-edit">] children=[#<Nokogiri::XML::Text:0x80b82c54 "\n ">, #<Nokogiri::XML::Element:0x80b82c04 name="form" attributes=[#<Nokogiri::XML::Attr:0x80b82ab0 name="action" value="/peterc/pismo/edit/update">, #<Nokogiri::XML::Attr:0x80b82a9c name="method" value="post">] children=[#<Nokogiri::XML::Element:0x80b82498 name="div" attributes=[#<Nokogiri::XML::Attr:0x80b823bc name="style" value="margin:0;padding:0">] children=[#<Nokogiri::XML::Element:0x80b81f84 name="input" attributes=[#<Nokogiri::XML::Attr:0x80b81ea8 name="name" value="authenticity_token">, #<Nokogiri::XML::Attr:0x80b81e94 name="type" value="hidden">, #<Nokogiri::XML::Attr:0x80b81e80 name="value" value="652cd7f316708fc9c13d4dc8c2d3189ded826f23">]>]>, #<Nokogiri::XML::Text:0x80b816d8 "\n ">, #<Nokogiri::XML::Element:0x80b81688 name="input" attributes=[#<Nokogiri::XML::Attr:0x80b81534 name="type" value="hidden">, #<Nokogiri::XML::Attr:0x80b81520 name="name" value="field">, #<Nokogiri::XML::Attr:0x80b8150c name="value" value="repository_description">]>, #<Nokogiri::XML::Element:0x80b815c0 name="input" attributes=[#<Nokogiri::XML::Attr:0x80b80d28 name="type" value="text">, #<Nokogiri::XML::Attr:0x80b80d14 name="class" value="textfield">, #<Nokogiri::XML::Attr:0x80b80d00 name="name" value="value">, #<Nokogiri::XML::Attr:0x80b80cec name="value" value="Extracts machine-readable metadata and content from Web pages">]>, #<Nokogiri::XML::Element:0x80b80db4 name="div" attributes=[#<Nokogiri::XML::Attr:0x80b8033c name="class" value="form-actions">] children=[#<Nokogiri::XML::Text:0x80b81ebc "\n ">, #<Nokogiri::XML::Element:0x80b83b7c name="button" attributes=[#<Nokogiri::XML::Attr:0x80b872f4 name="class" value="minibutton">] children=[#<Nokogiri::XML::Element:0x80b8d280 name="span" children=[#<Nokogiri::XML::Text:0x80b90610 "Save">]>]>, #<Nokogiri::XML::Text:0x80b93978 " ">, #<Nokogiri::XML::Element:0x80b940d0 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b96498 name="href" value="#">, #<Nokogiri::XML::Attr:0x80b9654c name="class" value="cancel">] children=[#<Nokogiri::XML::Text:0x80baa2e0 "Cancel">]>, #<Nokogiri::XML::Text:0x80baf470 "\n ">]>, #<Nokogiri::XML::Text:0x80bb34e4 "\n ">]>, #<Nokogiri::XML::Text:0x80bb78b4 "\n ">]>, #<Nokogiri::XML::Text:0x80bbc490 "\n\n \n ">, #<Nokogiri::XML::Element:0x80bbccec name="div" attributes=[#<Nokogiri::XML::Attr:0x80bc0518 name="class" value="repository-homepage">, #<Nokogiri::XML::Attr:0x80bc0590 name="id" value="repository_homepage">, #<Nokogiri::XML::Attr:0x80bc06a8 name="rel" value="repository_homepage_edit">] children=[#<Nokogiri::XML::Text:0x80be3590 "\n ">, #<Nokogiri::XML::Element:0x80be39f0 name="p" children=[#<Nokogiri::XML::Element:0x80bf90d4 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c17f98 name="href" value="http://coder.io/">, #<Nokogiri::XML::Attr:0x80c1b634 name="rel" value="nofollow">] children=[#<Nokogiri::XML::Text:0x80c6c7c8 "http://coder.io/">]>]>, #<Nokogiri::XML::Text:0x80c71ad4 "\n ">]>, #<Nokogiri::XML::Text:0x80c74ea0 "\n ">, #<Nokogiri::XML::Element:0x80c75be8 name="div" attributes=[#<Nokogiri::XML::Attr:0x80c78cbc name="id" value="repository_homepage_edit">, #<Nokogiri::XML::Attr:0x80c78ff0 name="style" value="display:none;">, #<Nokogiri::XML::Attr:0x80c79018 name="class" value="inline-edit">] children=[#<Nokogiri::XML::Text:0x80c85a20 "\n ">, #<Nokogiri::XML::Element:0x80c85e6c name="form" attributes=[#<Nokogiri::XML::Attr:0x80c88360 name="action" value="/peterc/pismo/edit/update">, #<Nokogiri::XML::Attr:0x80c8884c name="method" value="post">] children=[#<Nokogiri::XML::Element:0x80c9a218 name="div" attributes=[#<Nokogiri::XML::Attr:0x80ca02e4 name="style" value="margin:0;padding:0">] children=[#<Nokogiri::XML::Element:0x80ccf850 name="input" attributes=[#<Nokogiri::XML::Attr:0x80cd9440 name="name" value="authenticity_token">, #<Nokogiri::XML::Attr:0x80cdb560 name="type" value="hidden">, #<Nokogiri::XML::Attr:0x80cdbe70 name="value" value="652cd7f316708fc9c13d4dc8c2d3189ded826f23">]>]>, #<Nokogiri::XML::Text:0x80cff9c4 "\n ">, #<Nokogiri::XML::Element:0x80cff910 name="input" attributes=[#<Nokogiri::XML::Attr:0x80cfef10 name="type" value="hidden">, #<Nokogiri::XML::Attr:0x80cfeeac name="name" value="field">, #<Nokogiri::XML::Attr:0x80cfee84 name="value" value="repository_homepage">]>, #<Nokogiri::XML::Element:0x80cff5dc name="input" attributes=[#<Nokogiri::XML::Attr:0x80cfc24c name="type" value="text">, #<Nokogiri::XML::Attr:0x80cfc224 name="class" value="textfield">, #<Nokogiri::XML::Attr:0x80cfc1fc name="name" value="value">, #<Nokogiri::XML::Attr:0x80cfc148 name="value" value="http://coder.io/">]>, #<Nokogiri::XML::Element:0x80cfc3f0 name="div" attributes=[#<Nokogiri::XML::Attr:0x80cfa398 name="class" value="form-actions">] children=[#<Nokogiri::XML::Text:0x80cf9bc8 "\n ">, #<Nokogiri::XML::Element:0x80cf9b50 name="button" attributes=[#<Nokogiri::XML::Attr:0x80cf97b8 name="class" value="minibutton">] children=[#<Nokogiri::XML::Element:0x80cf7b34 name="span" children=[#<Nokogiri::XML::Text:0x80cf68b0 "Save">]>]>, #<Nokogiri::XML::Text:0x80cf56b8 " ">, #<Nokogiri::XML::Element:0x80cf544c name="a" attributes=[#<Nokogiri::XML::Attr:0x80cf4ac4 name="href" value="#">, #<Nokogiri::XML::Attr:0x80cf4ab0 name="class" value="cancel">] children=[#<Nokogiri::XML::Text:0x80cf0f00 "Cancel">]>, #<Nokogiri::XML::Text:0x80cf071c "\n ">]>, #<Nokogiri::XML::Text:0x80cf0064 "\n ">]>, #<Nokogiri::XML::Text:0x80cef8bc "\n ">]>, #<Nokogiri::XML::Text:0x80cef5ec "\n\n ">, #<Nokogiri::XML::Element:0x80cef574 name="div" attributes=[#<Nokogiri::XML::Attr:0x80cef3bc name="class" value="rule ">]>, #<Nokogiri::XML::Text:0x80cef470 "\n\n ">, #<Nokogiri::XML::Element:0x80cedb0c name="div" attributes=[#<Nokogiri::XML::Attr:0x80ced878 name="id" value="url_box">, #<Nokogiri::XML::Attr:0x80ced864 name="class" value="url-box">] children=[#<Nokogiri::XML::Text:0x80cebcd0 "\n ">, #<Nokogiri::XML::Element:0x80cebb2c name="ul" attributes=[#<Nokogiri::XML::Attr:0x80ceb08c name="class" value="clone-urls">] children=[#<Nokogiri::XML::Element:0x80ce9660 name="li" attributes=[#<Nokogiri::XML::Attr:0x80ce9534 name="id" value="http_clone_url">] children=[#<Nokogiri::XML::Element:0x80ce8404 name="a" attributes=[#<Nokogiri::XML::Attr:0x80ce8198 name="href" value="http://github.com/peterc/pismo.git">, #<Nokogiri::XML::Attr:0x80ce8184 name="data-permissions" value="Read-Only">] children=[#<Nokogiri::XML::Text:0x80ce7374 "HTTP">]>]>, #<Nokogiri::XML::Text:0x80ce6be0 "\n ">, #<Nokogiri::XML::Element:0x80ce68fc name="li" attributes=[#<Nokogiri::XML::Attr:0x80ce60dc name="id" value="public_clone_url">] children=[#<Nokogiri::XML::Element:0x80ce568c name="a" attributes=[#<Nokogiri::XML::Attr:0x80ce554c name="href" value="git://github.com/peterc/pismo.git">, #<Nokogiri::XML::Attr:0x80ce5538 name="data-permissions" value="Read-Only">] children=[#<Nokogiri::XML::Text:0x80ce49d0 "Git Read-Only">]>]>, #<Nokogiri::XML::Text:0x80ce446c "\n \n ">]>, #<Nokogiri::XML::Element:0x80ce41c4 name="input" attributes=[#<Nokogiri::XML::Attr:0x80ce3f80 name="type" value="text">, #<Nokogiri::XML::Attr:0x80ce3f6c name="spellcheck" value="false">, #<Nokogiri::XML::Attr:0x80ce3f58 name="id" value="url_field">, #<Nokogiri::XML::Attr:0x80ce3f44 name="class" value="url-field">]>, #<Nokogiri::XML::Element:0x80ce414c name="span" attributes=[#<Nokogiri::XML::Attr:0x80ce2db0 name="style" value="display:none">, #<Nokogiri::XML::Attr:0x80ce2d9c name="id" value="url_box_clippy">]>, #<Nokogiri::XML::Text:0x80ce2e64 "\n ">, #<Nokogiri::XML::Element:0x80ce2284 name="span" attributes=[#<Nokogiri::XML::Attr:0x80ce0dbc name="id" value="clippy_tooltip_url_box_clippy">, #<Nokogiri::XML::Attr:0x80ce0d1c name="class" value="clippy-tooltip tooltipped">, #<Nokogiri::XML::Attr:0x80ce0c04 name="title" value="copy to clipboard">] children=[#<Nokogiri::XML::Text:0x80cde058 "\n ">, #<Nokogiri::XML::Element:0x80cdd888 name="object" attributes=[#<Nokogiri::XML::Attr:0x80cdd5cc name="classid" value="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">, #<Nokogiri::XML::Attr:0x80cdd5a4 name="width" value="14">, #<Nokogiri::XML::Attr:0x80cdd518 name="height" value="14">, #<Nokogiri::XML::Attr:0x80cdd504 name="class" value="clippy">, #<Nokogiri::XML::Attr:0x80cdd450 name="id" value="clippy">] children=[#<Nokogiri::XML::Text:0x80cd8e28 "\n ">, #<Nokogiri::XML::Element:0x80cd8bf8 name="param" attributes=[#<Nokogiri::XML::Attr:0x80cd84dc name="name" value="movie">, #<Nokogiri::XML::Attr:0x80cd84b4 name="value" value="http://assets1.github.com/flash/clippy.swf?v5">]>, #<Nokogiri::XML::Element:0x80cd88c4 name="param" attributes=[#<Nokogiri::XML::Attr:0x80cd53b8 name="name" value="allowScriptAccess">, #<Nokogiri::XML::Attr:0x80cd5340 name="value" value="always">]>, #<Nokogiri::XML::Element:0x80cd5a34 name="param" attributes=[#<Nokogiri::XML::Attr:0x80cd2adc name="name" value="quality">, #<Nokogiri::XML::Attr:0x80cd294c name="value" value="high">]>, #<Nokogiri::XML::Element:0x80cd2d70 name="param" attributes=[#<Nokogiri::XML::Attr:0x80cd0304 name="name" value="scale">, #<Nokogiri::XML::Attr:0x80ccfe54 name="value" value="noscale">]>, #<Nokogiri::XML::Element:0x80cd05ac name="param" attributes=[#<Nokogiri::XML::Attr:0x80ccdfc8 name="name" value="FlashVars">, #<Nokogiri::XML::Attr:0x80ccdf3c name="value" value="id=url_box_clippy&copied=&copyto=">]>, #<Nokogiri::XML::Element:0x80cce068 name="param" attributes=[#<Nokogiri::XML::Attr:0x80ccaaa8 name="name" value="bgcolor">, #<Nokogiri::XML::Attr:0x80ccaa94 name="value" value="#FFFFFF">]>, #<Nokogiri::XML::Element:0x80ccad78 name="param" attributes=[#<Nokogiri::XML::Attr:0x80cc8528 name="name" value="wmode">, #<Nokogiri::XML::Attr:0x80cc8460 name="value" value="opaque">]>, #<Nokogiri::XML::Element:0x80cc8a8c name="embed" attributes=[#<Nokogiri::XML::Attr:0x80cc5a44 name="src" value="http://assets1.github.com/flash/clippy.swf?v5">, #<Nokogiri::XML::Attr:0x80cc5968 name="width" value="14">, #<Nokogiri::XML::Attr:0x80cc5954 name="height" value="14">, #<Nokogiri::XML::Attr:0x80cc5828 name="name" value="clippy">, #<Nokogiri::XML::Attr:0x80cc57ec name="quality" value="high">, #<Nokogiri::XML::Attr:0x80cc57c4 name="allowscriptaccess" value="always">, #<Nokogiri::XML::Attr:0x80cc5738 name="type" value="application/x-shockwave-flash">, #<Nokogiri::XML::Attr:0x80cc56fc name="pluginspage" value="http://www.macromedia.com/go/getflashplayer">, #<Nokogiri::XML::Attr:0x80cc56d4 name="flashvars" value="id=url_box_clippy&copied=&copyto=">, #<Nokogiri::XML::Attr:0x80cc56c0 name="bgcolor" value="#FFFFFF">, #<Nokogiri::XML::Attr:0x80cc5698 name="wmode" value="opaque">]>]>, #<Nokogiri::XML::Text:0x80cbd010 "\n ">]>, #<Nokogiri::XML::Text:0x80cbbddc "\n\n ">, #<Nokogiri::XML::Element:0x80cbbd8c name="p" attributes=[#<Nokogiri::XML::Attr:0x80cbb878 name="id" value="url_description">] children=[#<Nokogiri::XML::Text:0x80cb9910 "This URL has ">, #<Nokogiri::XML::Element:0x80cb9870 name="strong" children=[#<Nokogiri::XML::Text:0x80cb8268 "Read+Write">]>, #<Nokogiri::XML::Text:0x80cb7660 " access">]>, #<Nokogiri::XML::Text:0x80cb6ff8 "\n ">]>, #<Nokogiri::XML::Text:0x80cb6904 "\n ">]>, #<Nokogiri::XML::Text:0x80cb65d0 "\n\n\n \n\n ">]>, #<Nokogiri::XML::Comment:0x80cb6274 " /.pagehead ">, #<Nokogiri::XML::Text:0x80cb5ea0 "\n\n \n\n\n\n\n\n\n\n\n\n\n\n">, #<Nokogiri::XML::Element:0x80cb5770 name="script" attributes=[#<Nokogiri::XML::Attr:0x80cb42d0 name="type" value="text/javascript">] children=[#<Nokogiri::XML::CDATA:0x80cb26c4 "\n GitHub.currentCommitRef = \"master\"\n GitHub.currentRepoOwner = \"peterc\"\n GitHub.currentRepo = \"pismo\"\n GitHub.downloadRepo = '/peterc/pismo/archives/master'\n\n \n\n \n">]>, #<Nokogiri::XML::Element:0x80cb1a80 name="div" attributes=[#<Nokogiri::XML::Attr:0x80cb13b4 name="id" value="commit">] children=[#<Nokogiri::XML::Text:0x80caf640 "\n ">, #<Nokogiri::XML::Element:0x80caf5f0 name="div" attributes=[#<Nokogiri::XML::Attr:0x80caf050 name="class" value="group">] children=[#<Nokogiri::XML::Text:0x80cadf98 "\n \n ">, #<Nokogiri::XML::Element:0x80cadde0 name="div" attributes=[#<Nokogiri::XML::Attr:0x80cabedc name="class" value="envelope commit">] children=[#<Nokogiri::XML::Text:0x80ca9b8c "\n ">, #<Nokogiri::XML::Element:0x80ca9ad8 name="div" attributes=[#<Nokogiri::XML::Attr:0x80ca90c4 name="class" value="human">] children=[#<Nokogiri::XML::Text:0x80ca760c "\n \n ">, #<Nokogiri::XML::Element:0x80ca7314 name="div" attributes=[#<Nokogiri::XML::Attr:0x80ca6720 name="class" value="message">] children=[#<Nokogiri::XML::Element:0x80ca5410 name="pre" children=[#<Nokogiri::XML::Element:0x80ca4790 name="a" attributes=[#<Nokogiri::XML::Attr:0x80ca4678 name="href" value="/peterc/pismo/commit/86b5cedb014a8238a3b12694fd6d4f519cdea989">] children=[#<Nokogiri::XML::Text:0x80ca2a58 "Minor doc tweaks">]>, #<Nokogiri::XML::Text:0x80ca23a0 " ">]>]>, #<Nokogiri::XML::Text:0x80ca1d88 "\n \n\n ">, #<Nokogiri::XML::Element:0x80ca1c98 name="div" attributes=[#<Nokogiri::XML::Attr:0x80ca1784 name="class" value="actor">] children=[#<Nokogiri::XML::Text:0x80ca0884 "\n ">, #<Nokogiri::XML::Element:0x80ca07e4 name="div" attributes=[#<Nokogiri::XML::Attr:0x80ca0398 name="class" value="gravatar">] children=[#<Nokogiri::XML::Text:0x80c9f6f0 "\n \n ">, #<Nokogiri::XML::Element:0x80c9f628 name="img" attributes=[#<Nokogiri::XML::Attr:0x80c9eed0 name="src" value="http://www.gravatar.com/avatar/6268c7528d855f1cef5696a00d159909?s=140&d=http%3A%2F%2Fgithub.com%2Fimages%2Fgravatars%2Fgravatar-140.png">, #<Nokogiri::XML::Attr:0x80c9eea8 name="alt">, #<Nokogiri::XML::Attr:0x80c9ed7c name="width" value="30">, #<Nokogiri::XML::Attr:0x80c9ec64 name="height" value="30">]>]>, #<Nokogiri::XML::Text:0x80c9c7fc "\n ">, #<Nokogiri::XML::Element:0x80c9c798 name="div" attributes=[#<Nokogiri::XML::Attr:0x80c9c3c4 name="class" value="name">] children=[#<Nokogiri::XML::Element:0x80c9afc4 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c9a858 name="href" value="/peterc">] children=[#<Nokogiri::XML::Text:0x80c990ac "peterc">]>, #<Nokogiri::XML::Text:0x80c98490 " ">, #<Nokogiri::XML::Element:0x80c983f0 name="span" children=[#<Nokogiri::XML::Text:0x80c97108 "(author)">]>]>, #<Nokogiri::XML::Text:0x80c96dac "\n ">, #<Nokogiri::XML::Element:0x80c96d5c name="div" attributes=[#<Nokogiri::XML::Attr:0x80c96a3c name="class" value="date">] children=[#<Nokogiri::XML::Text:0x80c9635c "\n ">, #<Nokogiri::XML::Element:0x80c962f8 name="abbr" attributes=[#<Nokogiri::XML::Attr:0x80c95fec name="class" value="relatize">, #<Nokogiri::XML::Attr:0x80c95fd8 name="title" value="2010-06-25 20:38:34">] children=[#<Nokogiri::XML::Text:0x80c951f0 "Fri Jun 25 20:38:34 -0700 2010">]>, #<Nokogiri::XML::Text:0x80c94f48 "\n ">]>, #<Nokogiri::XML::Text:0x80c94b24 "\n ">]>, #<Nokogiri::XML::Text:0x80c947b4 "\n\n \n\n ">]>, #<Nokogiri::XML::Text:0x80c944a8 "\n ">, #<Nokogiri::XML::Element:0x80c943b8 name="div" attributes=[#<Nokogiri::XML::Attr:0x80c93fe4 name="class" value="machine">] children=[#<Nokogiri::XML::Text:0x80c9347c "\n ">, #<Nokogiri::XML::Element:0x80c9329c name="span" children=[#<Nokogiri::XML::Text:0x80c92bbc "c">]>, #<Nokogiri::XML::Text:0x80c92734 "ommit ">, #<Nokogiri::XML::Element:0x80c92644 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c921d0 name="href" value="/peterc/pismo/commit/86b5cedb014a8238a3b12694fd6d4f519cdea989">, #<Nokogiri::XML::Attr:0x80c921a8 name="hotkey" value="c">] children=[#<Nokogiri::XML::Text:0x80c90ab0 "86b5cedb014a8238a3b1">]>, #<Nokogiri::XML::Element:0x80c9081c name="br">, #<Nokogiri::XML::Element:0x80c907b8 name="span" children=[#<Nokogiri::XML::Text:0x80c8fb60 "t">]>, #<Nokogiri::XML::Text:0x80c8ee90 "ree ">, #<Nokogiri::XML::Element:0x80c8edf0 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c8e364 name="href" value="/peterc/pismo/tree/86b5cedb014a8238a3b12694fd6d4f519cdea989/lib/pismo">, #<Nokogiri::XML::Attr:0x80c8e350 name="hotkey" value="t">] children=[#<Nokogiri::XML::Text:0x80c8c5dc "6b3b7715f947c70d2628">]>, #<Nokogiri::XML::Element:0x80c8c35c name="br">, #<Nokogiri::XML::Element:0x80c8c1f4 name="span" children=[#<Nokogiri::XML::Text:0x80c8ba4c "p">]>, #<Nokogiri::XML::Text:0x80c8b704 "arent \n \n ">, #<Nokogiri::XML::Element:0x80c8b664 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c8b2a4 name="href" value="/peterc/pismo/tree/1bc860968d3156563c2683baaec56d7387fcc4e7/lib/pismo">, #<Nokogiri::XML::Attr:0x80c8b27c name="hotkey" value="p">] children=[#<Nokogiri::XML::Text:0x80c893f0 "1bc860968d3156563c26">]>, #<Nokogiri::XML::Text:0x80c88f68 "\n \n\n ">]>, #<Nokogiri::XML::Text:0x80c88860 "\n ">]>, #<Nokogiri::XML::Text:0x80c87b54 "\n\n ">]>, #<Nokogiri::XML::Text:0x80c86dd0 "\n ">]>, #<Nokogiri::XML::Text:0x80c86c18 "\n\n\n\n\n \n ">, #<Nokogiri::XML::Element:0x80c86bb4 name="div" attributes=[#<Nokogiri::XML::Attr:0x80c867a4 name="id" value="path">] children=[#<Nokogiri::XML::Text:0x80c85c3c "\n ">, #<Nokogiri::XML::Element:0x80c85bb0 name="b" children=[#<Nokogiri::XML::Element:0x80c854a8 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c850fc name="href" value="/peterc/pismo/tree/master">] children=[#<Nokogiri::XML::Text:0x80c8424c "pismo">]>]>, #<Nokogiri::XML::Text:0x80c8375c " / \n ">]>, #<Nokogiri::XML::Text:0x80c82bf4 "\n\n \n \n ">, #<Nokogiri::XML::Element:0x80c82b68 name="script" attributes=[#<Nokogiri::XML::Attr:0x80c827f8 name="type" value="text/javascript">] children=[#<Nokogiri::XML::CDATA:0x80c81e20 "\n GitHub.currentTreeSHA = \"86b5cedb014a8238a3b12694fd6d4f519cdea989\";\n GitHub.commitSHA = \"86b5cedb014a8238a3b12694fd6d4f519cdea989\";\n GitHub.currentPath = \"\";\n ">]>, #<Nokogiri::XML::Element:0x80c81bb4 name="div" attributes=[#<Nokogiri::XML::Attr:0x80c819d4 name="id" value="browser">] children=[#<Nokogiri::XML::Text:0x80c81038 "\n ">, #<Nokogiri::XML::Element:0x80c80e94 name="table" attributes=[#<Nokogiri::XML::Attr:0x80c80b38 name="cellpadding" value="0">, #<Nokogiri::XML::Attr:0x80c80b10 name="cellspacing" value="0">] children=[#<Nokogiri::XML::Element:0x80c7f558 name="tr" children=[#<Nokogiri::XML::Element:0x80c7e5b8 name="th">, #<Nokogiri::XML::Text:0x80c7e428 "\n ">, #<Nokogiri::XML::Element:0x80c7d794 name="th" children=[#<Nokogiri::XML::Text:0x80c7c1dc "name">]>, #<Nokogiri::XML::Text:0x80c7b7dc "\n ">, #<Nokogiri::XML::Element:0x80c7b64c name="th" children=[#<Nokogiri::XML::Text:0x80c79fe0 "age">]>, #<Nokogiri::XML::Text:0x80c797c0 "\n ">, #<Nokogiri::XML::Element:0x80c79720 name="th" children=[#<Nokogiri::XML::Text:0x80c784c4 "\n ">, #<Nokogiri::XML::Element:0x80c783fc name="div" attributes=[#<Nokogiri::XML::Attr:0x80c77bb4 name="class" value="history">] children=[#<Nokogiri::XML::Text:0x80c76228 "\n ">, #<Nokogiri::XML::Element:0x80c75ddc name="a" attributes=[#<Nokogiri::XML::Attr:0x80c75724 name="href" value="/peterc/pismo/commits/master/">] children=[#<Nokogiri::XML::Text:0x80c73b7c "history">]>, #<Nokogiri::XML::Text:0x80c73384 "\n ">]>, #<Nokogiri::XML::Text:0x80c7281c "\n message\n ">]>, #<Nokogiri::XML::Text:0x80c71f0c "\n ">]>, #<Nokogiri::XML::Element:0x80c714e4 name="tr" attributes=[#<Nokogiri::XML::Attr:0x80c70ddc name="class" value="alt">] children=[#<Nokogiri::XML::Element:0x80c6f48c name="td" attributes=[#<Nokogiri::XML::Attr:0x80c6eba4 name="class" value="icon">] children=[#<Nokogiri::XML::Text:0x80c6d0d8 " ">, #<Nokogiri::XML::Element:0x80c6cf84 name="img" attributes=[#<Nokogiri::XML::Attr:0x80c6c520 name="alt" value="file">, #<Nokogiri::XML::Attr:0x80c6c50c name="src" value="http://assets3.github.com/images/icons/txt.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779">]>]>, #<Nokogiri::XML::Text:0x80c69b40 "\n ">, #<Nokogiri::XML::Element:0x80c699d8 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c69014 name="class" value="content">] children=[#<Nokogiri::XML::Text:0x80c673a4 " ">, #<Nokogiri::XML::Element:0x80c67264 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c668b4 name="href" value="/peterc/pismo/blob/86b5cedb014a8238a3b12694fd6d4f519cdea989/.document">, #<Nokogiri::XML::Attr:0x80c66828 name="id" value="ecf3673194b8b6963488dabc93d5f16fea93c5e9">] children=[#<Nokogiri::XML::Text:0x80c6395c ".document">]>]>, #<Nokogiri::XML::Text:0x80c629a8 "\n \n ">, #<Nokogiri::XML::Element:0x80c6282c name="td" attributes=[#<Nokogiri::XML::Attr:0x80c61fe4 name="class" value="age">] children=[#<Nokogiri::XML::Text:0x80c61030 " ">, #<Nokogiri::XML::Element:0x80c60fcc name="span" attributes=[#<Nokogiri::XML::Attr:0x80c60e28 name="class" value="relatize">] children=[#<Nokogiri::XML::Text:0x80c5f9d8 "Sun Jan 10 15:57:40 -0800 2010">]>, #<Nokogiri::XML::Text:0x80c5f848 " ">]>, #<Nokogiri::XML::Text:0x80c5f5b4 "\n ">, #<Nokogiri::XML::Element:0x80c5f564 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c5f140 name="class" value="message">] children=[#<Nokogiri::XML::Text:0x80c5dd7c " ">, #<Nokogiri::XML::Element:0x80c5dafc name="a" attributes=[#<Nokogiri::XML::Attr:0x80c5d444 name="href" value="/peterc/pismo/commit/fd655869f0169747f512ea4e39dfd913e2c7cf0b">, #<Nokogiri::XML::Attr:0x80c5d3f4 name="class" value="message">, #<Nokogiri::XML::Attr:0x80c5d2c8 name="title" value="Initial commit to csteamer.">] children=[#<Nokogiri::XML::Text:0x80c5a0a0 "Initial commit to csteamer.">]>, #<Nokogiri::XML::Text:0x80c5963c " [">, #<Nokogiri::XML::Element:0x80c595d8 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c58f34 name="href" value="/peterc">] children=[#<Nokogiri::XML::Text:0x80c5715c "peterc">]>, #<Nokogiri::XML::Text:0x80c56a2c "] ">]>, #<Nokogiri::XML::Text:0x80c56464 "\n ">]>, #<Nokogiri::XML::Element:0x80c55f78 name="tr" attributes=[#<Nokogiri::XML::Attr:0x80c55d84 name="class">] children=[#<Nokogiri::XML::Element:0x80c55474 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c55398 name="class" value="icon">] children=[#<Nokogiri::XML::Text:0x80c54b50 " ">, #<Nokogiri::XML::Element:0x80c5495c name="img" attributes=[#<Nokogiri::XML::Attr:0x80c546a0 name="alt" value="file">, #<Nokogiri::XML::Attr:0x80c5468c name="src" value="http://assets3.github.com/images/icons/txt.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779">]>]>, #<Nokogiri::XML::Text:0x80c53868 "\n ">, #<Nokogiri::XML::Element:0x80c537f0 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c533cc name="class" value="content">] children=[#<Nokogiri::XML::Text:0x80c529cc " ">, #<Nokogiri::XML::Element:0x80c52828 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c52620 name="href" value="/peterc/pismo/blob/86b5cedb014a8238a3b12694fd6d4f519cdea989/.gitignore">, #<Nokogiri::XML::Attr:0x80c525f8 name="id" value="c1e0dafa8d510992f3b6f4633ed790621e6e53c7">] children=[#<Nokogiri::XML::Text:0x80c517fc ".gitignore">]>]>, #<Nokogiri::XML::Text:0x80c51220 "\n \n ">, #<Nokogiri::XML::Element:0x80c511a8 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c50f3c name="class" value="age">] children=[#<Nokogiri::XML::Text:0x80c50578 " ">, #<Nokogiri::XML::Element:0x80c50500 name="span" attributes=[#<Nokogiri::XML::Attr:0x80c5017c name="class" value="relatize">] children=[#<Nokogiri::XML::Text:0x80c4f77c "Sun Jan 10 15:57:40 -0800 2010">]>, #<Nokogiri::XML::Text:0x80c4f358 " ">]>, #<Nokogiri::XML::Text:0x80c4f0ec "\n ">, #<Nokogiri::XML::Element:0x80c4f060 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c4ed04 name="class" value="message">] children=[#<Nokogiri::XML::Text:0x80c4c9f0 " ">, #<Nokogiri::XML::Element:0x80c4c7e8 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c4bd20 name="href" value="/peterc/pismo/commit/fd655869f0169747f512ea4e39dfd913e2c7cf0b">, #<Nokogiri::XML::Attr:0x80c4bc6c name="class" value="message">, #<Nokogiri::XML::Attr:0x80c4bc08 name="title" value="Initial commit to csteamer.">] children=[#<Nokogiri::XML::Text:0x80c45dbc "Initial commit to csteamer.">]>, #<Nokogiri::XML::Text:0x80c4545c " [">, #<Nokogiri::XML::Element:0x80c45380 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c43ff8 name="href" value="/peterc">] children=[#<Nokogiri::XML::Text:0x80c42518 "peterc">]>, #<Nokogiri::XML::Text:0x80c42298 "] ">]>, #<Nokogiri::XML::Text:0x80c42108 "\n ">]>, #<Nokogiri::XML::Element:0x80c41d5c name="tr" attributes=[#<Nokogiri::XML::Attr:0x80c41c80 name="class" value="alt">] children=[#<Nokogiri::XML::Element:0x80c41564 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c41460 name="class" value="icon">] children=[#<Nokogiri::XML::Text:0x80c40d44 " ">, #<Nokogiri::XML::Element:0x80c40cf4 name="img" attributes=[#<Nokogiri::XML::Attr:0x80c40a38 name="alt" value="file">, #<Nokogiri::XML::Attr:0x80c40a24 name="src" value="http://assets3.github.com/images/icons/txt.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779">]>]>, #<Nokogiri::XML::Text:0x80c3dbf8 "\n ">, #<Nokogiri::XML::Element:0x80c3c564 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c3a3b8 name="class" value="content">] children=[#<Nokogiri::XML::Text:0x80c39cc4 " ">, #<Nokogiri::XML::Element:0x80c39c74 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c39990 name="href" value="/peterc/pismo/blob/86b5cedb014a8238a3b12694fd6d4f519cdea989/LICENSE">, #<Nokogiri::XML::Attr:0x80c3997c name="id" value="d9211b0795da65e1ee964e307f431250c81ed931">] children=[#<Nokogiri::XML::Text:0x80c38f40 "LICENSE">]>]>, #<Nokogiri::XML::Text:0x80c38b58 "\n \n ">, #<Nokogiri::XML::Element:0x80c38af4 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c38824 name="class" value="age">] children=[#<Nokogiri::XML::Text:0x80c37fb4 " ">, #<Nokogiri::XML::Element:0x80c37f50 name="span" attributes=[#<Nokogiri::XML::Attr:0x80c37c1c name="class" value="relatize">] children=[#<Nokogiri::XML::Text:0x80c374b0 "Fri Jun 18 20:23:17 -0700 2010">]>, #<Nokogiri::XML::Text:0x80c3730c " ">]>, #<Nokogiri::XML::Text:0x80c3708c "\n ">, #<Nokogiri::XML::Element:0x80c3703c name="td" attributes=[#<Nokogiri::XML::Attr:0x80c36da8 name="class" value="message">] children=[#<Nokogiri::XML::Text:0x80c36588 " ">, #<Nokogiri::XML::Element:0x80c36510 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c36344 name="href" value="/peterc/pismo/commit/925d277cd0779a9e158c4a8881674047801c4101">, #<Nokogiri::XML::Attr:0x80c36330 name="class" value="message">, #<Nokogiri::XML::Attr:0x80c3631c name="title" value="Import of new 'Reader' algorithm to replace Ruby-Readability and test updates">] children=[#<Nokogiri::XML::Text:0x80c35368 "Import of new 'Reader' algorithm to replace Rub...">]>, #<Nokogiri::XML::Text:0x80c34f30 " [">, #<Nokogiri::XML::Element:0x80c34ea4 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c3492c name="href" value="/peterc">] children=[#<Nokogiri::XML::Text:0x80c33a40 "peterc">]>, #<Nokogiri::XML::Text:0x80c335cc "] ">]>, #<Nokogiri::XML::Text:0x80c32974 "\n ">]>, #<Nokogiri::XML::Element:0x80c32244 name="tr" attributes=[#<Nokogiri::XML::Attr:0x80c32028 name="class">] children=[#<Nokogiri::XML::Element:0x80c31254 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c30228 name="class" value="icon">] children=[#<Nokogiri::XML::Text:0x80c2f29c " ">, #<Nokogiri::XML::Element:0x80c2ec70 name="img" attributes=[#<Nokogiri::XML::Attr:0x80c2e7ac name="alt" value="file">, #<Nokogiri::XML::Attr:0x80c2e784 name="src" value="http://assets3.github.com/images/icons/txt.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779">]>]>, #<Nokogiri::XML::Text:0x80c2d474 "\n ">, #<Nokogiri::XML::Element:0x80c2d3d4 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c2cdf8 name="class" value="content">] children=[#<Nokogiri::XML::Text:0x80c2bdf4 " ">, #<Nokogiri::XML::Element:0x80c2bda4 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c2b700 name="href" value="/peterc/pismo/blob/86b5cedb014a8238a3b12694fd6d4f519cdea989/NOTICE">, #<Nokogiri::XML::Attr:0x80c2b6ec name="id" value="98db33464cc5894c89a6a1a5e59ade38dc5192fe">] children=[#<Nokogiri::XML::Text:0x80c29fa4 "NOTICE">]>]>, #<Nokogiri::XML::Text:0x80c29838 "\n \n ">, #<Nokogiri::XML::Element:0x80c297e8 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c2939c name="class" value="age">] children=[#<Nokogiri::XML::Text:0x80c27aec " ">, #<Nokogiri::XML::Element:0x80c27984 name="span" attributes=[#<Nokogiri::XML::Attr:0x80c26f5c name="class" value="relatize">] children=[#<Nokogiri::XML::Text:0x80c25f30 "Sat Jun 19 17:50:45 -0700 2010">]>, #<Nokogiri::XML::Text:0x80c258c8 " ">]>, #<Nokogiri::XML::Text:0x80c254f4 "\n ">, #<Nokogiri::XML::Element:0x80c251c0 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c24e00 name="class" value="message">] children=[#<Nokogiri::XML::Text:0x80c23dc0 " ">, #<Nokogiri::XML::Element:0x80c23d70 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c23a3c name="href" value="/peterc/pismo/commit/594bd5f38e956a5f9506098f57f7ad100534a4ed">, #<Nokogiri::XML::Attr:0x80c23a28 name="class" value="message">, #<Nokogiri::XML::Attr:0x80c23a14 name="title" value="Doc updates">] children=[#<Nokogiri::XML::Text:0x80c2038c "Doc updates">]>, #<Nokogiri::XML::Text:0x80c1fa68 " [">, #<Nokogiri::XML::Element:0x80c1f6e4 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c1f2e8 name="href" value="/peterc">] children=[#<Nokogiri::XML::Text:0x80c1e244 "peterc">]>, #<Nokogiri::XML::Text:0x80c1d8d0 "] ">]>, #<Nokogiri::XML::Text:0x80c1d448 "\n ">]>, #<Nokogiri::XML::Element:0x80c1d18c name="tr" attributes=[#<Nokogiri::XML::Attr:0x80c1cfac name="class" value="alt">] children=[#<Nokogiri::XML::Element:0x80c1b5bc name="td" attributes=[#<Nokogiri::XML::Attr:0x80c1b2c4 name="class" value="icon">] children=[#<Nokogiri::XML::Text:0x80c1a964 " ">, #<Nokogiri::XML::Element:0x80c1a914 name="img" attributes=[#<Nokogiri::XML::Attr:0x80c1a590 name="alt" value="file">, #<Nokogiri::XML::Attr:0x80c1a568 name="src" value="http://assets3.github.com/images/icons/txt.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779">]>]>, #<Nokogiri::XML::Text:0x80c19bf4 "\n ">, #<Nokogiri::XML::Element:0x80c19b90 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c198e8 name="class" value="content">] children=[#<Nokogiri::XML::Text:0x80c1917c " ">, #<Nokogiri::XML::Element:0x80c19118 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c18d58 name="href" value="/peterc/pismo/blob/86b5cedb014a8238a3b12694fd6d4f519cdea989/README.markdown">, #<Nokogiri::XML::Attr:0x80c18d44 name="id" value="c78d8f2c0e8a4e5d6ada2a9db544f741b9ac7467">] children=[#<Nokogiri::XML::Text:0x80c18204 "README.markdown">]>]>, #<Nokogiri::XML::Text:0x80c17e80 "\n \n ">, #<Nokogiri::XML::Element:0x80c17e30 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c17b9c name="class" value="age">] children=[#<Nokogiri::XML::Text:0x80c17480 " ">, #<Nokogiri::XML::Element:0x80c17430 name="span" attributes=[#<Nokogiri::XML::Attr:0x80c171b0 name="class" value="relatize">] children=[#<Nokogiri::XML::Text:0x80c16ad0 "Fri Jun 25 20:38:34 -0700 2010">]>, #<Nokogiri::XML::Text:0x80c167ec " ">]>, #<Nokogiri::XML::Text:0x80c1665c "\n ">, #<Nokogiri::XML::Element:0x80c165d0 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c16378 name="class" value="message">] children=[#<Nokogiri::XML::Text:0x80c15cac " ">, #<Nokogiri::XML::Element:0x80c15c0c name="a" attributes=[#<Nokogiri::XML::Attr:0x80c159a0 name="href" value="/peterc/pismo/commit/86b5cedb014a8238a3b12694fd6d4f519cdea989">, #<Nokogiri::XML::Attr:0x80c15978 name="class" value="message">, #<Nokogiri::XML::Attr:0x80c15964 name="title" value="Minor doc tweaks">] children=[#<Nokogiri::XML::Text:0x80c14c08 "Minor doc tweaks">]>, #<Nokogiri::XML::Text:0x80c14a14 " [">, #<Nokogiri::XML::Element:0x80c14974 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c14528 name="href" value="/peterc">] children=[#<Nokogiri::XML::Text:0x80c13c7c "peterc">]>, #<Nokogiri::XML::Text:0x80c1395c "] ">]>, #<Nokogiri::XML::Text:0x80c13754 "\n ">]>, #<Nokogiri::XML::Element:0x80c12ea8 name="tr" attributes=[#<Nokogiri::XML::Attr:0x80c12c00 name="class">] children=[#<Nokogiri::XML::Element:0x80c11c38 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c116fc name="class" value="icon">] children=[#<Nokogiri::XML::Text:0x80c0ff00 " ">, #<Nokogiri::XML::Element:0x80c0fd98 name="img" attributes=[#<Nokogiri::XML::Attr:0x80c0faf0 name="alt" value="file">, #<Nokogiri::XML::Attr:0x80c0fadc name="src" value="http://assets3.github.com/images/icons/txt.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779">]>]>, #<Nokogiri::XML::Text:0x80c0e27c "\n ">, #<Nokogiri::XML::Element:0x80c0e22c name="td" attributes=[#<Nokogiri::XML::Attr:0x80c0dfd4 name="class" value="content">] children=[#<Nokogiri::XML::Text:0x80c0d8b8 " ">, #<Nokogiri::XML::Element:0x80c0d868 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c0d5fc name="href" value="/peterc/pismo/blob/86b5cedb014a8238a3b12694fd6d4f519cdea989/Rakefile">, #<Nokogiri::XML::Attr:0x80c0d5e8 name="id" value="0822c45bc24822baaa2572c1aa6deba262233685">] children=[#<Nokogiri::XML::Text:0x80c0c850 "Rakefile">]>]>, #<Nokogiri::XML::Text:0x80c0c0bc "\n \n ">, #<Nokogiri::XML::Element:0x80c0bea0 name="td" attributes=[#<Nokogiri::XML::Attr:0x80c0b270 name="class" value="age">] children=[#<Nokogiri::XML::Text:0x80c0a500 " ">, #<Nokogiri::XML::Element:0x80c0a4b0 name="span" attributes=[#<Nokogiri::XML::Attr:0x80c09c54 name="class" value="relatize">] children=[#<Nokogiri::XML::Text:0x80c08b38 "Fri Jun 18 20:31:30 -0700 2010">]>, #<Nokogiri::XML::Text:0x80c085e8 " ">]>, #<Nokogiri::XML::Text:0x80c07e7c "\n ">, #<Nokogiri::XML::Element:0x80c07e2c name="td" attributes=[#<Nokogiri::XML::Attr:0x80c0756c name="class" value="message">] children=[#<Nokogiri::XML::Text:0x80c05ff0 " ">, #<Nokogiri::XML::Element:0x80c05c6c name="a" attributes=[#<Nokogiri::XML::Attr:0x80c05a14 name="href" value="/peterc/pismo/commit/3275e62eda5ee2413786d330da66d2313281bef0">, #<Nokogiri::XML::Attr:0x80c05910 name="class" value="message">, #<Nokogiri::XML::Attr:0x80c058fc name="title" value="Support URLs that have HTTP in all-caps">] children=[#<Nokogiri::XML::Text:0x80c039bc "Support URLs that have HTTP in all-caps">]>, #<Nokogiri::XML::Text:0x80c037dc " [">, #<Nokogiri::XML::Element:0x80c0378c name="a" attributes=[#<Nokogiri::XML::Attr:0x80c0350c name="href" value="/peterc">] children=[#<Nokogiri::XML::Text:0x80c02288 "peterc">]>, #<Nokogiri::XML::Text:0x80bffee8 "] ">]>, #<Nokogiri::XML::Text:0x80bff7b8 "\n ">]>, #<Nokogiri::XML::Element:0x80bff1f0 name="tr" attributes=[#<Nokogiri::XML::Attr:0x80bff010 name="class" value="alt">] children=[#<Nokogiri::XML::Element:0x80bfe4e4 name="td" attributes=[#<Nokogiri::XML::Attr:0x80bfe3f4 name="class" value="icon">] children=[#<Nokogiri::XML::Text:0x80bfdcec " ">, #<Nokogiri::XML::Element:0x80bfdc88 name="img" attributes=[#<Nokogiri::XML::Attr:0x80bfda30 name="alt" value="file">, #<Nokogiri::XML::Attr:0x80bfda08 name="src" value="http://assets3.github.com/images/icons/txt.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779">]>]>, #<Nokogiri::XML::Text:0x80bfcfa4 "\n ">, #<Nokogiri::XML::Element:0x80bfcf54 name="td" attributes=[#<Nokogiri::XML::Attr:0x80bfcdb0 name="class" value="content">] children=[#<Nokogiri::XML::Text:0x80bfc52c " ">, #<Nokogiri::XML::Element:0x80bfc4dc name="a" attributes=[#<Nokogiri::XML::Attr:0x80bfc374 name="href" value="/peterc/pismo/blob/86b5cedb014a8238a3b12694fd6d4f519cdea989/VERSION">, #<Nokogiri::XML::Attr:0x80bfc360 name="id" value="b6160487433ba524a39a93cde5a330f7e71d0d39">] children=[#<Nokogiri::XML::Text:0x80bfb9d8 "VERSION">]>]>, #<Nokogiri::XML::Text:0x80bfb528 "\n \n ">, #<Nokogiri::XML::Element:0x80bfb4d8 name="td" attributes=[#<Nokogiri::XML::Attr:0x80bfb2a8 name="class" value="age">] children=[#<Nokogiri::XML::Text:0x80bfa90c " ">, #<Nokogiri::XML::Element:0x80bfa7f4 name="span" attributes=[#<Nokogiri::XML::Attr:0x80bfa434 name="class" value="relatize">] children=[#<Nokogiri::XML::Text:0x80bf9b74 "Sat Jun 19 20:28:45 -0700 2010">]>, #<Nokogiri::XML::Text:0x80bf98b8 " ">]>, #<Nokogiri::XML::Text:0x80bf93e0 "\n ">, #<Nokogiri::XML::Element:0x80bf91d8 name="td" attributes=[#<Nokogiri::XML::Attr:0x80bf8ddc name="class" value="message">] children=[#<Nokogiri::XML::Text:0x80bf81ac " ">, #<Nokogiri::XML::Element:0x80bf8134 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bf7d24 name="href" value="/peterc/pismo/commit/e440ee4370ca238ab5d332f60387430c377e8ccf">, #<Nokogiri::XML::Attr:0x80bf7d10 name="class" value="message">, #<Nokogiri::XML::Attr:0x80bf7cfc name="title" value="Version bump to 0.6.2">] children=[#<Nokogiri::XML::Text:0x80bf6aa0 "Version bump to 0.6.2">]>, #<Nokogiri::XML::Text:0x80bf66f4 " [">, #<Nokogiri::XML::Element:0x80bf65c8 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bf61e0 name="href" value="/peterc">] children=[#<Nokogiri::XML::Text:0x80bf5740 "peterc">]>, #<Nokogiri::XML::Text:0x80bf54d4 "] ">]>, #<Nokogiri::XML::Text:0x80bf4f84 "\n ">]>, #<Nokogiri::XML::Element:0x80bf4ad4 name="tr" attributes=[#<Nokogiri::XML::Attr:0x80bf487c name="class">] children=[#<Nokogiri::XML::Element:0x80bf3c4c name="td" attributes=[#<Nokogiri::XML::Attr:0x80bf39f4 name="class" value="icon">] children=[#<Nokogiri::XML::Text:0x80bf2f04 " ">, #<Nokogiri::XML::Element:0x80bf2ea0 name="img" attributes=[#<Nokogiri::XML::Attr:0x80bf2b6c name="alt" value="directory">, #<Nokogiri::XML::Attr:0x80bf2b58 name="src" value="http://assets2.github.com/images/icons/dir.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779">]>]>, #<Nokogiri::XML::Text:0x80bf1ce4 "\n ">, #<Nokogiri::XML::Element:0x80bf1c6c name="td" attributes=[#<Nokogiri::XML::Attr:0x80bf17e4 name="class" value="content">] children=[#<Nokogiri::XML::Text:0x80bf0ca4 " ">, #<Nokogiri::XML::Element:0x80bf0c2c name="a" attributes=[#<Nokogiri::XML::Attr:0x80bf0894 name="href" value="/peterc/pismo/tree/86b5cedb014a8238a3b12694fd6d4f519cdea989/bin">, #<Nokogiri::XML::Attr:0x80bf07cc name="id" value="0e25fc5d9fa67a103bbcb195d32e41be71834019">] children=[#<Nokogiri::XML::Text:0x80bef8f4 "bin/">]>]>, #<Nokogiri::XML::Text:0x80bef598 "\n \n ">, #<Nokogiri::XML::Element:0x80bef340 name="td" attributes=[#<Nokogiri::XML::Attr:0x80bef14c name="class" value="age">] children=[#<Nokogiri::XML::Text:0x80bee544 " ">, #<Nokogiri::XML::Element:0x80bee4e0 name="span" attributes=[#<Nokogiri::XML::Attr:0x80bee300 name="class" value="relatize">] children=[#<Nokogiri::XML::Text:0x80bed7e8 "Sat Jun 19 19:49:24 -0700 2010">]>, #<Nokogiri::XML::Text:0x80bed4f0 " ">]>, #<Nokogiri::XML::Text:0x80bed1d0 "\n ">, #<Nokogiri::XML::Element:0x80bed180 name="td" attributes=[#<Nokogiri::XML::Attr:0x80becff0 name="class" value="message">] children=[#<Nokogiri::XML::Text:0x80bec8d4 " ">, #<Nokogiri::XML::Element:0x80bec85c name="a" attributes=[#<Nokogiri::XML::Attr:0x80bec578 name="href" value="/peterc/pismo/commit/096dc0b2dbd90d3a2f6830f3137f0b6c09986462">, #<Nokogiri::XML::Attr:0x80bec564 name="class" value="message">, #<Nokogiri::XML::Attr:0x80bec550 name="title" value="Stopped pismo CLI client catching exceptions">] children=[#<Nokogiri::XML::Text:0x80beb894 "Stopped pismo CLI client catching exceptions">]>, #<Nokogiri::XML::Text:0x80beb718 " [">, #<Nokogiri::XML::Element:0x80beb6c8 name="a" attributes=[#<Nokogiri::XML::Attr:0x80beb358 name="href" value="/peterc">] children=[#<Nokogiri::XML::Text:0x80beacf0 "peterc">]>, #<Nokogiri::XML::Text:0x80beab88 "] ">]>, #<Nokogiri::XML::Text:0x80bea908 "\n ">]>, #<Nokogiri::XML::Element:0x80bea688 name="tr" attributes=[#<Nokogiri::XML::Attr:0x80bea4bc name="class" value="alt">] children=[#<Nokogiri::XML::Element:0x80be99f4 name="td" attributes=[#<Nokogiri::XML::Attr:0x80be98c8 name="class" value="icon">] children=[#<Nokogiri::XML::Text:0x80be901c " ">, #<Nokogiri::XML::Element:0x80be8fa4 name="img" attributes=[#<Nokogiri::XML::Attr:0x80be8ce8 name="alt" value="directory">, #<Nokogiri::XML::Attr:0x80be8cd4 name="src" value="http://assets2.github.com/images/icons/dir.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779">]>]>, #<Nokogiri::XML::Text:0x80be8018 "\n ">, #<Nokogiri::XML::Element:0x80be7f50 name="td" attributes=[#<Nokogiri::XML::Attr:0x80be7bb8 name="class" value="content">] children=[#<Nokogiri::XML::Text:0x80be7398 " ">, #<Nokogiri::XML::Element:0x80be71a4 name="a" attributes=[#<Nokogiri::XML::Attr:0x80be7000 name="href" value="/peterc/pismo/tree/86b5cedb014a8238a3b12694fd6d4f519cdea989/lib">, #<Nokogiri::XML::Attr:0x80be6fd8 name="id" value="12d7f79eb69caae0bd1636916a691d4c22414a57">] children=[#<Nokogiri::XML::Text:0x80be6290 "lib/">]>]>, #<Nokogiri::XML::Text:0x80be5dcc "\n \n ">, #<Nokogiri::XML::Element:0x80be5d68 name="td" attributes=[#<Nokogiri::XML::Attr:0x80be5aac name="class" value="age">] children=[#<Nokogiri::XML::Text:0x80be53e0 " ">, #<Nokogiri::XML::Element:0x80be5390 name="span" attributes=[#<Nokogiri::XML::Attr:0x80be5124 name="class" value="relatize">] children=[#<Nokogiri::XML::Text:0x80be4878 "Fri Jun 25 20:24:16 -0700 2010">]>, #<Nokogiri::XML::Text:0x80be44cc " ">]>, #<Nokogiri::XML::Text:0x80be41e8 "\n ">, #<Nokogiri::XML::Element:0x80be4198 name="td" attributes=[#<Nokogiri::XML::Attr:0x80be3ff4 name="class" value="message">] children=[#<Nokogiri::XML::Text:0x80be375c " ">, #<Nokogiri::XML::Element:0x80be3630 name="a" attributes=[#<Nokogiri::XML::Attr:0x80be339c name="href" value="/peterc/pismo/commit/1bc860968d3156563c2683baaec56d7387fcc4e7">, #<Nokogiri::XML::Attr:0x80be3388 name="class" value="message">, #<Nokogiri::XML::Attr:0x80be3360 name="title" value="Slightly saner author extraction rule ordering">] children=[#<Nokogiri::XML::Text:0x80be249c "Slightly saner author extraction rule ordering">]>, #<Nokogiri::XML::Text:0x80be21e0 " [">, #<Nokogiri::XML::Element:0x80be203c name="a" attributes=[#<Nokogiri::XML::Attr:0x80be1bb4 name="href" value="/peterc">] children=[#<Nokogiri::XML::Text:0x80be1164 "peterc">]>, #<Nokogiri::XML::Text:0x80be0e30 "] ">]>, #<Nokogiri::XML::Text:0x80be0ac0 "\n ">]>, #<Nokogiri::XML::Element:0x80be0818 name="tr" attributes=[#<Nokogiri::XML::Attr:0x80be05e8 name="class">] children=[#<Nokogiri::XML::Element:0x80bdfa6c name="td" attributes=[#<Nokogiri::XML::Attr:0x80bdf940 name="class" value="icon">] children=[#<Nokogiri::XML::Text:0x80bde93c " ">, #<Nokogiri::XML::Element:0x80bde8d8 name="img" attributes=[#<Nokogiri::XML::Attr:0x80bde57c name="alt" value="file">, #<Nokogiri::XML::Attr:0x80bde568 name="src" value="http://assets3.github.com/images/icons/txt.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779">]>]>, #<Nokogiri::XML::Text:0x80bdd668 "\n ">, #<Nokogiri::XML::Element:0x80bdd5f0 name="td" attributes=[#<Nokogiri::XML::Attr:0x80bdd384 name="class" value="content">] children=[#<Nokogiri::XML::Text:0x80bdcb00 " ">, #<Nokogiri::XML::Element:0x80bdca60 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bdc72c name="href" value="/peterc/pismo/blob/86b5cedb014a8238a3b12694fd6d4f519cdea989/pismo.gemspec">, #<Nokogiri::XML::Attr:0x80bdc718 name="id" value="a5372a3694f763e12db70adeada2e8bafa106895">] children=[#<Nokogiri::XML::Text:0x80bdbc8c "pismo.gemspec">]>]>, #<Nokogiri::XML::Text:0x80bdb8cc "\n \n ">, #<Nokogiri::XML::Element:0x80bdb87c name="td" attributes=[#<Nokogiri::XML::Attr:0x80bdb4d0 name="class" value="age">] children=[#<Nokogiri::XML::Text:0x80bdacb0 " ">, #<Nokogiri::XML::Element:0x80bdac60 name="span" attributes=[#<Nokogiri::XML::Attr:0x80bdaa30 name="class" value="relatize">] children=[#<Nokogiri::XML::Text:0x80bda350 "Sat Jun 19 20:28:48 -0700 2010">]>, #<Nokogiri::XML::Text:0x80bda01c " ">]>, #<Nokogiri::XML::Text:0x80bd9e8c "\n ">, #<Nokogiri::XML::Element:0x80bd9d74 name="td" attributes=[#<Nokogiri::XML::Attr:0x80bd9bd0 name="class" value="message">] children=[#<Nokogiri::XML::Text:0x80bd9428 " ">, #<Nokogiri::XML::Element:0x80bd93b0 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bd9108 name="href" value="/peterc/pismo/commit/519b6b8d15542c3b4f05781f42ba62a5681a06fc">, #<Nokogiri::XML::Attr:0x80bd90f4 name="class" value="message">, #<Nokogiri::XML::Attr:0x80bd90e0 name="title" value="Regenerated gemspec for version 0.6.2">] children=[#<Nokogiri::XML::Text:0x80bd844c "Regenerated gemspec for version 0.6.2">]>, #<Nokogiri::XML::Text:0x80bd7dbc " [">, #<Nokogiri::XML::Element:0x80bd7d44 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bd79e8 name="href" value="/peterc">] children=[#<Nokogiri::XML::Text:0x80bd7038 "peterc">]>, #<Nokogiri::XML::Text:0x80bd6e1c "] ">]>, #<Nokogiri::XML::Text:0x80bd6bc4 "\n ">]>, #<Nokogiri::XML::Element:0x80bd68cc name="tr" attributes=[#<Nokogiri::XML::Attr:0x80bd67a0 name="class" value="alt">] children=[#<Nokogiri::XML::Element:0x80bd600c name="td" attributes=[#<Nokogiri::XML::Attr:0x80bd5e54 name="class" value="icon">] children=[#<Nokogiri::XML::Text:0x80bd5788 " ">, #<Nokogiri::XML::Element:0x80bd5738 name="img" attributes=[#<Nokogiri::XML::Attr:0x80bd54cc name="alt" value="directory">, #<Nokogiri::XML::Attr:0x80bd54a4 name="src" value="http://assets2.github.com/images/icons/dir.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779">]>]>, #<Nokogiri::XML::Text:0x80bd42ac "\n ">, #<Nokogiri::XML::Element:0x80bd4234 name="td" attributes=[#<Nokogiri::XML::Attr:0x80bd4004 name="class" value="content">] children=[#<Nokogiri::XML::Text:0x80bd376c " ">, #<Nokogiri::XML::Element:0x80bd371c name="a" attributes=[#<Nokogiri::XML::Attr:0x80bd3488 name="href" value="/peterc/pismo/tree/86b5cedb014a8238a3b12694fd6d4f519cdea989/test">, #<Nokogiri::XML::Attr:0x80bd3474 name="id" value="4c4e73ce3ced7812552610fdf039b22fb2a60bd6">] children=[#<Nokogiri::XML::Text:0x80bd2970 "test/">]>]>, #<Nokogiri::XML::Text:0x80bd2754 "\n \n ">, #<Nokogiri::XML::Element:0x80bd2628 name="td" attributes=[#<Nokogiri::XML::Attr:0x80bd2470 name="class" value="age">] children=[#<Nokogiri::XML::Text:0x80bd1d2c " ">, #<Nokogiri::XML::Element:0x80bd1cb4 name="span" attributes=[#<Nokogiri::XML::Attr:0x80bd1a70 name="class" value="relatize">] children=[#<Nokogiri::XML::Text:0x80bd13e0 "Fri Jun 25 20:18:53 -0700 2010">]>, #<Nokogiri::XML::Text:0x80bd123c " ">]>, #<Nokogiri::XML::Text:0x80bd0f6c "\n ">, #<Nokogiri::XML::Element:0x80bd0f1c name="td" attributes=[#<Nokogiri::XML::Attr:0x80bd0c9c name="class" value="message">] children=[#<Nokogiri::XML::Text:0x80bd05f8 " ">, #<Nokogiri::XML::Element:0x80bd0594 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bd0314 name="href" value="/peterc/pismo/commit/e9efb71c59deb2a74f109a910cc75546f2029939">, #<Nokogiri::XML::Attr:0x80bd0300 name="class" value="message">, #<Nokogiri::XML::Attr:0x80bd02ec name="title" value="Don't check YouTube for content since there isn't any">] children=[#<Nokogiri::XML::Text:0x80bcf6e4 "Don't check YouTube for content since there isn...">]>, #<Nokogiri::XML::Text:0x80bcf450 " [">, #<Nokogiri::XML::Element:0x80bcf3ec name="a" attributes=[#<Nokogiri::XML::Attr:0x80bcee10 name="href" value="/peterc">] children=[#<Nokogiri::XML::Text:0x80bce6e0 "peterc">]>, #<Nokogiri::XML::Text:0x80bce3e8 "] ">]>, #<Nokogiri::XML::Text:0x80bcdfec "\n ">]>]>]>, #<Nokogiri::XML::Text:0x80bcda10 "\n\n \n\n \n\n\n \n\n ">, #<Nokogiri::XML::Element:0x80bcd970 name="div" attributes=[#<Nokogiri::XML::Attr:0x80bcd588 name="id" value="readme">, #<Nokogiri::XML::Attr:0x80bcd574 name="class" value="announce markdown">] children=[#<Nokogiri::XML::Element:0x80bccb38 name="span" attributes=[#<Nokogiri::XML::Attr:0x80bcca20 name="class" value="name">] children=[#<Nokogiri::XML::Text:0x80bcc2a0 "README.markdown">]>, #<Nokogiri::XML::Element:0x80bcbff8 name="div" attributes=[#<Nokogiri::XML::Attr:0x80bcbeb8 name="class" value="wikistyle">] children=[#<Nokogiri::XML::Element:0x80bcb6ac name="h1" children=[#<Nokogiri::XML::Text:0x80bcb2c4 "pismo - Web page content analysis and metadata extraction">]>, #<Nokogiri::XML::Text:0x80bcb030 "\n\n">, #<Nokogiri::XML::Element:0x80bcafcc name="h2" children=[#<Nokogiri::XML::Text:0x80bcab1c "DESCRIPTION:">]>, #<Nokogiri::XML::Text:0x80bca89c "\n\n">, #<Nokogiri::XML::Element:0x80bca838 name="p" children=[#<Nokogiri::XML::Text:0x80bca3ec "Pismo extracts machine-usable metadata from unstructured (or poorly structured) English-language HTML documents.\nData that Pismo can extract include titles, feed URLs, ledes, body text, image URLs, date, and keywords.\nPismo is used heavily in production on http://coder.io/ to extract data from Web pages.">]>, #<Nokogiri::XML::Text:0x80bca16c "\n\n">, #<Nokogiri::XML::Element:0x80bca0f4 name="p" children=[#<Nokogiri::XML::Text:0x80bc9b7c "All tests pass on Ruby 1.8.7 (MRI) and Ruby 1.9.1-p378 (MRI).">]>, #<Nokogiri::XML::Text:0x80bc9a00 "\n\n">, #<Nokogiri::XML::Element:0x80bc9988 name="h2" children=[#<Nokogiri::XML::Text:0x80bc93c0 "USAGE:">]>, #<Nokogiri::XML::Text:0x80bc912c "\n\n">, #<Nokogiri::XML::Element:0x80bc90c8 name="p" children=[#<Nokogiri::XML::Text:0x80bc8cb8 "A basic example of extracting basic metadata from a Web page:">]>, #<Nokogiri::XML::Text:0x80bc8b14 "\n\n">, #<Nokogiri::XML::Element:0x80bc89d4 name="pre" children=[#<Nokogiri::XML::Element:0x80bc8448 name="code" children=[#<Nokogiri::XML::Text:0x80bc7cf0 "require 'pismo'\n\n# Load a Web page (you could pass an IO object or a string with existing HTML data along, as you prefer)\ndoc = Pismo::Document.new('http://www.rubyinside.com/cramp-asychronous-event-driven-ruby-web-app-framework-2928.html')\n\ndoc.title # => \"Cramp: Asychronous Event-Driven Ruby Web App Framework\"\ndoc.author # => \"Peter Cooper\"\ndoc.lede # => \"Cramp (GitHub repo) is a new, asynchronous evented Web app framework by Pratik Naik of 37signals (and the Rails core team). It's built around Ruby's EventMachine library and was designed to use event-driven I/O throughout - making it ideal for situations where you need to handle a large number of open connections (such as Comet systems or streaming APIs.)\"\ndoc.keywords # => [[\"cramp\", 7], [\"controllers\", 3], [\"app\", 3], [\"basic\", 2], ..., ... ]\n">]>]>, #<Nokogiri::XML::Text:0x80bc7ad4 "\n\n">, #<Nokogiri::XML::Element:0x80bc79a8 name="p" children=[#<Nokogiri::XML::Text:0x80bc719c "There's also a shorter \"convenience\" method which might be handy in IRB - it does the same as Pismo::Document.new:">]>, #<Nokogiri::XML::Text:0x80bc6f1c "\n\n">, #<Nokogiri::XML::Element:0x80bc6ecc name="pre" children=[#<Nokogiri::XML::Element:0x80bc6a1c name="code" children=[#<Nokogiri::XML::Text:0x80bc665c "Pismo['http://www.rubyflow.com/items/4082'].title # => \"Install Ruby as a non-root User\"\n">]>]>, #<Nokogiri::XML::Text:0x80bc6350 "\n\n">, #<Nokogiri::XML::Element:0x80bc62ec name="p" children=[#<Nokogiri::XML::Text:0x80bc5ef0 "The current metadata methods are:">]>, #<Nokogiri::XML::Text:0x80bc5b44 "\n\n">, #<Nokogiri::XML::Element:0x80bc5af4 name="ul" children=[#<Nokogiri::XML::Element:0x80bc5694 name="li" children=[#<Nokogiri::XML::Text:0x80bc5310 "title">]>, #<Nokogiri::XML::Text:0x80bc5090 "\n">, #<Nokogiri::XML::Element:0x80bc4f8c name="li" children=[#<Nokogiri::XML::Text:0x80bc4adc "titles">]>, #<Nokogiri::XML::Text:0x80bc48c0 "\n">, #<Nokogiri::XML::Element:0x80bc4758 name="li" children=[#<Nokogiri::XML::Text:0x80bc41b8 "author">]>, #<Nokogiri::XML::Text:0x80bc4000 "\n">, #<Nokogiri::XML::Element:0x80bc3ee8 name="li" children=[#<Nokogiri::XML::Text:0x80bc3a4c "authors">]>, #<Nokogiri::XML::Text:0x80bc35ec "\n">, #<Nokogiri::XML::Element:0x80bc359c name="li" children=[#<Nokogiri::XML::Text:0x80bc3178 "lede">]>, #<Nokogiri::XML::Text:0x80bc2ef8 "\n">, #<Nokogiri::XML::Element:0x80bc2e94 name="li" children=[#<Nokogiri::XML::Text:0x80bc2958 "keywords">]>, #<Nokogiri::XML::Text:0x80bc26ec "\n">, #<Nokogiri::XML::Element:0x80bc269c name="li" children=[#<Nokogiri::XML::Text:0x80bc2160 "sentences(qty)">]>, #<Nokogiri::XML::Text:0x80bc1eb8 "\n">, #<Nokogiri::XML::Element:0x80bc1e54 name="li" children=[#<Nokogiri::XML::Text:0x80bc1940 "body">]>, #<Nokogiri::XML::Text:0x80bc17c4 "\n">, #<Nokogiri::XML::Element:0x80bc165c name="li" children=[#<Nokogiri::XML::Text:0x80bc101c "html_body">]>, #<Nokogiri::XML::Text:0x80bc0e78 "\n">, #<Nokogiri::XML::Element:0x80bc0d38 name="li" children=[#<Nokogiri::XML::Text:0x80bc0914 "feed">]>, #<Nokogiri::XML::Text:0x80bc0630 "\n">, #<Nokogiri::XML::Element:0x80bc05e0 name="li" children=[#<Nokogiri::XML::Text:0x80bc00a4 "feeds">]>, #<Nokogiri::XML::Text:0x80bbff14 "\n">, #<Nokogiri::XML::Element:0x80bbfdd4 name="li" children=[#<Nokogiri::XML::Text:0x80bbf960 "favicon">]>, #<Nokogiri::XML::Text:0x80bbf6e0 "\n">, #<Nokogiri::XML::Element:0x80bbf654 name="li" children=[#<Nokogiri::XML::Text:0x80bbeee8 "description">]>, #<Nokogiri::XML::Text:0x80bbec68 "\n">, #<Nokogiri::XML::Element:0x80bbebdc name="li" children=[#<Nokogiri::XML::Text:0x80bbe6dc "datetime">]>, #<Nokogiri::XML::Text:0x80bbe4fc "\n">]>, #<Nokogiri::XML::Element:0x80bbe2b8 name="p" children=[#<Nokogiri::XML::Text:0x80bbdef8 "These methods are not fully documented here yet - you'll just need to try them out. The plural methods like #titles, #authors, and #feeds will return multiple matches in an array, if present. This is so you can use your own techniques to choose a \"best\" result in ambiguous cases.">]>, #<Nokogiri::XML::Text:0x80bbda84 "\n\n">, #<Nokogiri::XML::Element:0x80bbda0c name="p" children=[#<Nokogiri::XML::Text:0x80bbd584 "The html_body and body methods will be of particular interest. They return the \"body\" of the page as determined by Pismo's \"Reader\" (like Arc90's Readability or Safari Reader) algorithm. #body returns it as plain-text, #html_body maintains some basic HTML styling.">]>, #<Nokogiri::XML::Text:0x80bbd28c "\n\n">, #<Nokogiri::XML::Element:0x80bbd23c name="h2" children=[#<Nokogiri::XML::Text:0x80bbccc4 "CAVEATS AND SHORTCOMINGS:">]>, #<Nokogiri::XML::Text:0x80bbcb20 "\n\n">, #<Nokogiri::XML::Element:0x80bbc9e0 name="p" children=[#<Nokogiri::XML::Text:0x80bbc5bc "There are some shortcomings or problems that I'm aware of and am going to pursue:">]>, #<Nokogiri::XML::Text:0x80bbc404 "\n\n">, #<Nokogiri::XML::Element:0x80bbbf18 name="ul" children=[#<Nokogiri::XML::Element:0x80bbbaf4 name="li" children=[#<Nokogiri::XML::Text:0x80bbb720 "I do not know how Pismo fares on Rubinius or other versions of 1.9 (e.g. 1.9.2) yet">]>, #<Nokogiri::XML::Text:0x80bbb48c "\n">, #<Nokogiri::XML::Element:0x80bbb43c name="li" children=[#<Nokogiri::XML::Text:0x80bbac1c "pismo does not install on JRuby due to a problem in the fast-stemmer dependency">]>, #<Nokogiri::XML::Text:0x80bbaaa0 "\n">, #<Nokogiri::XML::Element:0x80bbaa50 name="li" children=[#<Nokogiri::XML::Text:0x80bba500 "The \"Reader\" content extraction algorithm is not perfect. It can sometimes return crap and can barf on certain types of characters for sentence extraction.">]>, #<Nokogiri::XML::Text:0x80bba280 "\n">, #<Nokogiri::XML::Element:0x80bba230 name="li" children=[#<Nokogiri::XML::Text:0x80bb97a4 "The author name extraction isn't very strong.">]>, #<Nokogiri::XML::Text:0x80bb9358 "\n">, #<Nokogiri::XML::Element:0x80bb92f4 name="li" children=[#<Nokogiri::XML::Text:0x80bb8c00 "The image extraction only handles images with absolute URLs.">]>, #<Nokogiri::XML::Text:0x80bb8980 "\n">, #<Nokogiri::XML::Element:0x80bb891c name="li" children=[#<Nokogiri::XML::Text:0x80bb8390 "The stopword list leaves a bit to be desired. It errs on the side of being too long rather than too short, though (1024 words long!)">]>, #<Nokogiri::XML::Text:0x80bb81ec "\n">]>, #<Nokogiri::XML::Element:0x80bb7f94 name="h2" children=[#<Nokogiri::XML::Text:0x80bb7b98 "OTHER GROOVY STUFF:">]>, #<Nokogiri::XML::Text:0x80bb7878 "\n\n">, #<Nokogiri::XML::Element:0x80bb7828 name="h3" children=[#<Nokogiri::XML::Text:0x80bb7404 "Command Line Tool">]>, #<Nokogiri::XML::Text:0x80bb7148 "\n\n">, #<Nokogiri::XML::Element:0x80bb70e4 name="p" children=[#<Nokogiri::XML::Text:0x80bb6b80 "A command line tool called \"pismo\" is included so that you can get metadata about a page from the command line. This is\ngreat for testing, or perhaps calling it from a non Ruby script. The output is currently in YAML.">]>, #<Nokogiri::XML::Text:0x80bb6914 "\n\n">, #<Nokogiri::XML::Element:0x80bb68b0 name="h4" children=[#<Nokogiri::XML::Text:0x80bb61e4 "Usage:">]>, #<Nokogiri::XML::Text:0x80bb5fc8 "\n\n">, #<Nokogiri::XML::Element:0x80bb5eb0 name="pre" children=[#<Nokogiri::XML::Element:0x80bb5a78 name="code" children=[#<Nokogiri::XML::Text:0x80bb5500 "./bin/pismo http://www.rubyinside.com/cramp-asychronous-event-driven-ruby-web-app-framework-2928.html title lede author datetime\n">]>]>, #<Nokogiri::XML::Text:0x80bb517c "\n\n">, #<Nokogiri::XML::Element:0x80bb512c name="h4" children=[#<Nokogiri::XML::Text:0x80bb4984 "Output:">]>, #<Nokogiri::XML::Text:0x80bb47b8 "\n\n">, #<Nokogiri::XML::Element:0x80bb4664 name="pre" children=[#<Nokogiri::XML::Element:0x80bb40d8 name="code" children=[#<Nokogiri::XML::Text:0x80bb3cf0 "--- \n:url: http://www.rubyinside.com/cramp-asychronous-event-driven-ruby-web-app-framework-2928.html\n:title: \"Cramp: Asychronous Event-Driven Ruby Web App Framework\"\n:lede: Cramp (GitHub repo)is a new, asynchronous evented Web app framework by Pratik Naik of 37signals\n:author: Peter Cooper\n:datetime: 2010-01-07 12:00:00 +00:00\n">]>]>, #<Nokogiri::XML::Text:0x80bb3aac "\n\n">, #<Nokogiri::XML::Element:0x80bb39a8 name="p" children=[#<Nokogiri::XML::Text:0x80bb355c "If you call pismo without any arguments (except a URL), it starts an IRB session so you can directly work in Ruby. The URL provided is loaded\nand assigned to both the constant 'P' and the variable @p.">]>, #<Nokogiri::XML::Text:0x80bb31d8 "\n\n">, #<Nokogiri::XML::Element:0x80bb3188 name="h3" children=[#<Nokogiri::XML::Text:0x80bb2d28 "Stopword access">]>, #<Nokogiri::XML::Text:0x80bb2abc "\n\n">, #<Nokogiri::XML::Element:0x80bb2a6c name="p" children=[#<Nokogiri::XML::Text:0x80bb2120 "You can access Pismo's stopword list directly:">]>, #<Nokogiri::XML::Text:0x80bb1ef0 "\n\n">, #<Nokogiri::XML::Element:0x80bb1ea0 name="pre" children=[#<Nokogiri::XML::Element:0x80bb189c name="code" children=[#<Nokogiri::XML::Text:0x80bb14dc "Pismo.stopwords # => [.., .., ..]\n">]>]>, #<Nokogiri::XML::Text:0x80bb111c "\n\n">, #<Nokogiri::XML::Element:0x80bb10b8 name="h2" children=[#<Nokogiri::XML::Text:0x80bb0bcc "Note on Patches/Pull Requests">]>, #<Nokogiri::XML::Text:0x80bb09c4 "\n\n">, #<Nokogiri::XML::Element:0x80bb0848 name="ul" children=[#<Nokogiri::XML::Element:0x80bb03c0 name="li" children=[#<Nokogiri::XML::Text:0x80bb0064 "Fork the project.">]>, #<Nokogiri::XML::Text:0x80bafda8 "\n">, #<Nokogiri::XML::Element:0x80bafd58 name="li" children=[#<Nokogiri::XML::Text:0x80baf880 "Make your feature addition or bug fix.">]>, #<Nokogiri::XML::Text:0x80baf6f0 "\n">, #<Nokogiri::XML::Element:0x80baf5d8 name="li" children=[#<Nokogiri::XML::Text:0x80baf164 "Add tests for it. This is important so I don't break it in a future version unintentionally.">]>, #<Nokogiri::XML::Text:0x80baeed0 "\n">, #<Nokogiri::XML::Element:0x80baee80 name="li" children=[#<Nokogiri::XML::Text:0x80baea34 "Commit, do not mess with Rakefile, version, or history as it's handled by Jeweler (which is awesome, btw).">]>, #<Nokogiri::XML::Text:0x80bae7c8 "\n">, #<Nokogiri::XML::Element:0x80bae778 name="li" children=[#<Nokogiri::XML::Text:0x80bae32c "Send me a pull request. I may or may not accept it (sorry, practicality rules.. but message me and we can talk!)">]>, #<Nokogiri::XML::Text:0x80bae0ac "\n">]>, #<Nokogiri::XML::Element:0x80bade40 name="h2" children=[#<Nokogiri::XML::Text:0x80bada30 "COPYRIGHT AND LICENSE">]>, #<Nokogiri::XML::Text:0x80bad7d8 "\n\n">, #<Nokogiri::XML::Element:0x80bad774 name="p" children=[#<Nokogiri::XML::Text:0x80bad33c "Apache 2.0 License - See LICENSE for details.\nCopyright (c) 2009, 2010 Peter Cooper">]>, #<Nokogiri::XML::Text:0x80bad0d0 "\n\n">, #<Nokogiri::XML::Element:0x80bad080 name="p" children=[#<Nokogiri::XML::Text:0x80bacb80 "In short, you can use Pismo for whatever you like commercial or not, but please include a brief credit (as in the NOTICE file - as per the Apache 2.0 License) somewhere deep in your license file or similar, and, if you're nice and have the time, let me know if you're using it and/or share any significant changes or improvements you make.">]>, #<Nokogiri::XML::Text:0x80bac9c8 "\n\n">, #<Nokogiri::XML::Element:0x80bac964 name="p" children=[#<Nokogiri::XML::Text:0x80bac3ec "http://github.com/peterc/pismo">]>, #<Nokogiri::XML::Text:0x80bac1a8 "\n">]>]>, #<Nokogiri::XML::Text:0x80babf3c "\n\n\n\n ">]>, #<Nokogiri::XML::Text:0x80babd0c "\n \n \n\n ">, #<Nokogiri::XML::Element:0x80babca8 name="div" attributes=[#<Nokogiri::XML::Attr:0x80bab9ec name="class" value="push">]>, #<Nokogiri::XML::Text:0x80babba4 "\n ">]>, #<Nokogiri::XML::Text:0x80bab2e4 "\n\n ">, #<Nokogiri::XML::Element:0x80bab280 name="div" attributes=[#<Nokogiri::XML::Attr:0x80bab028 name="id" value="footer">] children=[#<Nokogiri::XML::Text:0x80baa934 "\n ">, #<Nokogiri::XML::Element:0x80baa8d0 name="div" attributes=[#<Nokogiri::XML::Attr:0x80baa6b4 name="class" value="site">] children=[#<Nokogiri::XML::Text:0x80ba9fe8 "\n ">, #<Nokogiri::XML::Element:0x80ba9f84 name="div" attributes=[#<Nokogiri::XML::Attr:0x80ba9cc8 name="class" value="info">] children=[#<Nokogiri::XML::Text:0x80ba96b0 "\n ">, #<Nokogiri::XML::Element:0x80ba9660 name="div" attributes=[#<Nokogiri::XML::Attr:0x80ba94d0 name="class" value="links">] children=[#<Nokogiri::XML::Text:0x80ba8d3c "\n ">, #<Nokogiri::XML::Element:0x80ba8cec name="a" attributes=[#<Nokogiri::XML::Attr:0x80ba8b70 name="href" value="http://github.com/blog">] children=[#<Nokogiri::XML::Element:0x80ba8490 name="b" children=[#<Nokogiri::XML::Text:0x80ba8044 "Blog">]>]>, #<Nokogiri::XML::Text:0x80ba7e14 " |\n ">, #<Nokogiri::XML::Element:0x80ba7cd4 name="a" attributes=[#<Nokogiri::XML::Attr:0x80ba7b1c name="href" value="http://support.github.com">] children=[#<Nokogiri::XML::Text:0x80ba7388 "Support">]>, #<Nokogiri::XML::Text:0x80ba7130 " |\n ">, #<Nokogiri::XML::Element:0x80ba70cc name="a" attributes=[#<Nokogiri::XML::Attr:0x80ba6f64 name="href" value="http://github.com/training">] children=[#<Nokogiri::XML::Text:0x80ba6898 "Training">]>, #<Nokogiri::XML::Text:0x80ba65f0 " |\n ">, #<Nokogiri::XML::Element:0x80ba65a0 name="a" attributes=[#<Nokogiri::XML::Attr:0x80ba635c name="href" value="http://github.com/contact">] children=[#<Nokogiri::XML::Text:0x80ba5de4 "Contact">]>, #<Nokogiri::XML::Text:0x80ba5b78 " |\n ">, #<Nokogiri::XML::Element:0x80ba5b28 name="a" attributes=[#<Nokogiri::XML::Attr:0x80ba58bc name="href" value="http://develop.github.com">] children=[#<Nokogiri::XML::Text:0x80ba51a0 "API">]>, #<Nokogiri::XML::Text:0x80ba5010 " |\n ">, #<Nokogiri::XML::Element:0x80ba4fac name="a" attributes=[#<Nokogiri::XML::Attr:0x80ba4d68 name="href" value="http://status.github.com">] children=[#<Nokogiri::XML::Text:0x80ba46d8 "Status">]>, #<Nokogiri::XML::Text:0x80ba4534 " |\n ">, #<Nokogiri::XML::Element:0x80ba44bc name="a" attributes=[#<Nokogiri::XML::Attr:0x80ba423c name="href" value="http://twitter.com/github">] children=[#<Nokogiri::XML::Text:0x80ba3b98 "Twitter">]>, #<Nokogiri::XML::Text:0x80ba3918 " |\n ">, #<Nokogiri::XML::Element:0x80ba38b4 name="a" attributes=[#<Nokogiri::XML::Attr:0x80ba3620 name="href" value="http://help.github.com">] children=[#<Nokogiri::XML::Text:0x80ba2e78 "Help">]>, #<Nokogiri::XML::Text:0x80ba2cc0 " |\n ">, #<Nokogiri::XML::Element:0x80ba2c70 name="a" attributes=[#<Nokogiri::XML::Attr:0x80ba2a04 name="href" value="http://github.com/security">] children=[#<Nokogiri::XML::Text:0x80ba23ec "Security">]>, #<Nokogiri::XML::Text:0x80ba220c "\n ">]>, #<Nokogiri::XML::Text:0x80ba1f3c "\n ">, #<Nokogiri::XML::Element:0x80ba1ec4 name="div" attributes=[#<Nokogiri::XML::Attr:0x80ba1c6c name="class" value="company">] children=[#<Nokogiri::XML::Text:0x80ba162c "\n \302\251\n 2010\n ">, #<Nokogiri::XML::Element:0x80ba15dc name="span" attributes=[#<Nokogiri::XML::Attr:0x80ba135c name="id" value="_rrt">, #<Nokogiri::XML::Attr:0x80ba1348 name="title" value="0.07960s from fe1.rs.github.com">] children=[#<Nokogiri::XML::Text:0x80ba0d30 "GitHub">]>, #<Nokogiri::XML::Text:0x80ba0b78 " Inc.\n All rights reserved. |\n ">, #<Nokogiri::XML::Element:0x80ba0b28 name="a" attributes=[#<Nokogiri::XML::Attr:0x80ba0970 name="href" value="/site/terms">] children=[#<Nokogiri::XML::Text:0x80ba04c0 "Terms of Service">]>, #<Nokogiri::XML::Text:0x80ba0358 " |\n ">, #<Nokogiri::XML::Element:0x80ba0308 name="a" attributes=[#<Nokogiri::XML::Attr:0x80ba01b4 name="href" value="/site/privacy">] children=[#<Nokogiri::XML::Text:0x80b9fca0 "Privacy Policy">]>, #<Nokogiri::XML::Text:0x80b9fb38 "\n ">]>, #<Nokogiri::XML::Text:0x80b9f9d0 "\n ">]>, #<Nokogiri::XML::Text:0x80b9f868 "\n ">, #<Nokogiri::XML::Element:0x80b9f818 name="div" attributes=[#<Nokogiri::XML::Attr:0x80b9f6c4 name="class" value="sponsor">] children=[#<Nokogiri::XML::Text:0x80b9f228 "\n ">, #<Nokogiri::XML::Element:0x80b9f1d8 name="div" children=[#<Nokogiri::XML::Text:0x80b99e40 "\n Powered by the ">, #<Nokogiri::XML::Element:0x80b99df0 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b99c9c name="href" value="http://www.rackspace.com ">] children=[#<Nokogiri::XML::Text:0x80b99828 "Dedicated\n Servers">]>, #<Nokogiri::XML::Text:0x80b996c0 " and">, #<Nokogiri::XML::Element:0x80b9965c name="br">, #<Nokogiri::XML::Element:0x80b99580 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b992ec name="href" value="http://www.rackspacecloud.com">] children=[#<Nokogiri::XML::Text:0x80b98e78 "Cloud\n Computing">]>, #<Nokogiri::XML::Text:0x80b98cfc " of Rackspace Hosting">, #<Nokogiri::XML::Element:0x80b98cac name="span" children=[#<Nokogiri::XML::Text:0x80b98964 "\302\256">]>, #<Nokogiri::XML::Text:0x80b987e8 "\n ">]>, #<Nokogiri::XML::Text:0x80b98644 "\n ">, #<Nokogiri::XML::Element:0x80b985b8 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b98464 name="href" value="http://www.rackspace.com">] children=[#<Nokogiri::XML::Text:0x80b9802c "\n ">, #<Nokogiri::XML::Element:0x80b97fdc name="img" attributes=[#<Nokogiri::XML::Attr:0x80b97e88 name="alt" value="Dedicated Server">, #<Nokogiri::XML::Attr:0x80b97e74 name="src" value="http://assets2.github.com/images/modules/footer/rackspace_logo.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779">]>]>, #<Nokogiri::XML::Text:0x80b97834 "\n ">]>, #<Nokogiri::XML::Text:0x80b976b8 "\n ">]>, #<Nokogiri::XML::Text:0x80b97528 "\n ">]>, #<Nokogiri::XML::Text:0x80b97384 "\n\n \n \n ">, #<Nokogiri::XML::Element:0x80b97334 name="div" attributes=[#<Nokogiri::XML::Attr:0x80b971e0 name="class" value="locales">] children=[#<Nokogiri::XML::Text:0x80b96d6c "\n ">, #<Nokogiri::XML::Element:0x80b96d08 name="div" attributes=[#<Nokogiri::XML::Attr:0x80b96b78 name="class" value="site">] children=[#<Nokogiri::XML::Text:0x80b96740 "\n ">, #<Nokogiri::XML::Element:0x80b966f0 name="ul" attributes=[#<Nokogiri::XML::Attr:0x80b96588 name="class" value="choices">] children=[#<Nokogiri::XML::Element:0x80b960ec name="li" children=[#<Nokogiri::XML::Element:0x80b95e30 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b95d54 name="class" value="current">, #<Nokogiri::XML::Attr:0x80b95d40 name="href" value="#">] children=[#<Nokogiri::XML::Text:0x80b95688 "English">]>]>, #<Nokogiri::XML::Text:0x80b95480 "\n \n \n \n \n ">, #<Nokogiri::XML::Element:0x80b95430 name="li" children=[#<Nokogiri::XML::Element:0x80b950fc name="a" attributes=[#<Nokogiri::XML::Attr:0x80b9500c name="href" value="?locale=ca">] children=[#<Nokogiri::XML::Text:0x80b94b98 "Catal\303\240">]>]>, #<Nokogiri::XML::Text:0x80b94940 "\n \n \n \n \n \n ">, #<Nokogiri::XML::Element:0x80b948f0 name="li" children=[#<Nokogiri::XML::Element:0x80b945d0 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b944e0 name="href" value="?locale=cs">] children=[#<Nokogiri::XML::Text:0x80b94030 "\304\214e\305\241tina">]>]>, #<Nokogiri::XML::Text:0x80b93e14 "\n \n \n \n \n \n ">, #<Nokogiri::XML::Element:0x80b93d10 name="li" children=[#<Nokogiri::XML::Element:0x80b939c8 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b938c4 name="href" value="?locale=de">] children=[#<Nokogiri::XML::Text:0x80b93450 "Deutsch">]>]>, #<Nokogiri::XML::Text:0x80b931e4 "\n \n \n \n \n \n ">, #<Nokogiri::XML::Element:0x80b93194 name="li" children=[#<Nokogiri::XML::Element:0x80b92e9c name="a" attributes=[#<Nokogiri::XML::Attr:0x80b92dc0 name="href" value="?locale=es">] children=[#<Nokogiri::XML::Text:0x80b928d4 "Espa\303\261ol">]>]>, #<Nokogiri::XML::Text:0x80b926cc "\n \n \n \n \n \n ">, #<Nokogiri::XML::Element:0x80b9267c name="li" children=[#<Nokogiri::XML::Element:0x80b92348 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b92244 name="href" value="?locale=fr">] children=[#<Nokogiri::XML::Text:0x80b91d94 "Fran\303\247ais">]>]>, #<Nokogiri::XML::Text:0x80b8c308 "\n \n \n \n \n \n ">, #<Nokogiri::XML::Element:0x80b902c8 name="li" children=[#<Nokogiri::XML::Element:0x80b989a0 name="a" attributes=[#<Nokogiri::XML::Attr:0x80b99f30 name="href" value="?locale=hr">] children=[#<Nokogiri::XML::Text:0x80ba9f34 "Hrvatski">]>]>, #<Nokogiri::XML::Text:0x80baf1a0 "\n \n \n \n \n \n ">, #<Nokogiri::XML::Element:0x80baf9e8 name="li" children=[#<Nokogiri::XML::Element:0x80bb5ac8 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bb76c0 name="href" value="?locale=id">] children=[#<Nokogiri::XML::Text:0x80bc0324 "Indonesia">]>]>, #<Nokogiri::XML::Text:0x80bc4b18 "\n \n \n \n \n \n ">, #<Nokogiri::XML::Element:0x80bc53d8 name="li" children=[#<Nokogiri::XML::Element:0x80bcb300 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bcd59c name="href" value="?locale=it">] children=[#<Nokogiri::XML::Text:0x80bdeb1c "Italiano">]>]>, #<Nokogiri::XML::Text:0x80be7014 "\n \n \n \n \n \n ">, #<Nokogiri::XML::Element:0x80be8cfc name="li" children=[#<Nokogiri::XML::Element:0x80bf59e8 name="a" attributes=[#<Nokogiri::XML::Attr:0x80bfa970 name="href" value="?locale=ja">] children=[#<Nokogiri::XML::Text:0x80c16b0c "\346\227\245\346\234\254\350\252\236">]>]>, #<Nokogiri::XML::Text:0x80c241d0 "\n \n \n \n \n \n ">, #<Nokogiri::XML::Element:0x80c26f98 name="li" children=[#<Nokogiri::XML::Element:0x80c40a4c name="a" attributes=[#<Nokogiri::XML::Attr:0x80c46758 name="href" value="?locale=nl">] children=[#<Nokogiri::XML::Text:0x80c73c30 "Nederlands">]>]>, #<Nokogiri::XML::Text:0x80c81f38 "\n \n \n \n \n \n ">, #<Nokogiri::XML::Element:0x80c844f4 name="li" children=[#<Nokogiri::XML::Element:0x80c96398 name="a" attributes=[#<Nokogiri::XML::Attr:0x80c9b280 name="href" value="?locale=no">] children=[#<Nokogiri::XML::Text:0x80cde3dc "Norsk">]>]>, #<Nokogiri::XML::Text:0x80cf4ad8 "\n \n \n \n \n \n ">, #<Nokogiri::XML::Element:0x80cf7ddc name="li" children=[#<Nokogiri::XML::Element:0x80cffc1c name="a" attributes=[#<Nokogiri::XML::Attr:0x80cff898 name="href" value="?locale=pl">] children=[#<Nokogiri::XML::Text:0x80cfde08 "Polski">]>]>, #<Nokogiri::XML::Text:0x80cfcef4 "\n \n \n \n \n \n ">, #<Nokogiri::XML::Element:0x80cfcea4 name="li" children=[#<Nokogiri::XML::Element:0x80cfc030 name="a" attributes=[#<Nokogiri::XML::Attr:0x80cfbe3c name="href" value="?locale=pt-BR">] children=[#<Nokogiri::XML::Text:0x80cfae9c "Portugu\303\252s (BR)">]>]>, #<Nokogiri::XML::Text:0x80cfa744 "\n \n \n \n \n \n ">, #<Nokogiri::XML::Element:0x80cfa6f4 name="li" children=[#<Nokogiri::XML::Element:0x80cfa1a4 name="a" attributes=[#<Nokogiri::XML::Attr:0x80cf9fd8 name="href" value="?locale=sr">] children=[#<Nokogiri::XML::Text:0x80cf972c "\320\241\321\200\320\277\321\201\320\272\320\270">]>]>, #<Nokogiri::XML::Text:0x80cf8e08 "\n \n \n \n \n \n ">, #<Nokogiri::XML::Element:0x80cf8d04 name="li" children=[#<Nokogiri::XML::Element:0x80cf6dec name="a" attributes=[#<Nokogiri::XML::Attr:0x80cf661c name="href" value="?locale=sv">] children=[#<Nokogiri::XML::Text:0x80cf3b9c "Svenska">]>]>, #<Nokogiri::XML::Text:0x80cf2260 "\n \n \n \n ">]>]>, #<Nokogiri::XML::Text:0x80cf14dc "\n ">]>, #<Nokogiri::XML::Text:0x80cf0c80 "\n \n \n ">, #<Nokogiri::XML::Element:0x80cf0af0 name="script" children=[#<Nokogiri::XML::CDATA:0x80cef920 "window._auth_token = \"652cd7f316708fc9c13d4dc8c2d3189ded826f23\"">]>, #<Nokogiri::XML::Element:0x80cef628 name="script" attributes=[#<Nokogiri::XML::Attr:0x80cef4e8 name="type" value="text/javascript">] children=[#<Nokogiri::XML::CDATA:0x80cedb5c "\n _kmq.push(['trackClick', 'entice_banner_link', 'Entice banner clicked']);\n \n ">]>]>]>]>, @html="\n \n \n\n \n\n\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n <head>\n <meta http-equiv=\"content-type\" content=\"text/html;charset=UTF-8\" />\n <meta http-equiv=\"X-UA-Compatible\" content=\"chrome=1\">\n <title>peterc's pismo at master - GitHub</title>\n <link rel=\"search\" type=\"application/opensearchdescription+xml\" href=\"/opensearch.xml\" title=\"GitHub\" />\n <link rel=\"fluid-icon\" href=\"http://github.com/fluidicon.png\" title=\"GitHub\" />\n\n <link href=\"http://assets0.github.com/stylesheets/bundle_common.css?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"http://assets3.github.com/stylesheets/bundle_github.css?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n\n <script type=\"text/javascript\" charset=\"utf-8\">\n var GitHub = {}\n var github_user = null\n \n </script>\n <script src=\"http://assets2.github.com/javascripts/jquery/jquery-1.4.2.min.js?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" type=\"text/javascript\"></script>\n <script src=\"http://assets2.github.com/javascripts/bundle_common.js?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" type=\"text/javascript\"></script>\n<script src=\"http://assets3.github.com/javascripts/bundle_github.js?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" type=\"text/javascript\"></script>\n\n <script type=\"text/javascript\" charset=\"utf-8\">\n GitHub.spy({\n repo: \"peterc/pismo\"\n })\n </script>\n\n \n \n \n \n\n <link href=\"http://github.com/peterc/pismo/commits/master.atom\" rel=\"alternate\" title=\"Recent Commits to pismo:master\" type=\"application/atom+xml\" />\n\n <meta name=\"description\" content=\"Extracts machine-readable metadata and content from Web pages\" />\n <script type=\"text/javascript\">\n GitHub.nameWithOwner = GitHub.nameWithOwner || \"peterc/pismo\";\n GitHub.currentRef = \"master\";\n </script>\n \n\n <script type=\"text/javascript\">\n var _gaq = _gaq || [];\n _gaq.push(['_setAccount', 'UA-3769691-2']);\n _gaq.push(['_trackPageview']);\n (function() {\n var ga = document.createElement('script');\n ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\n ga.setAttribute('async', 'true');\n document.documentElement.firstChild.appendChild(ga);\n })();\n </script>\n\n </head>\n\n \n\n <body>\n \n\n \n <script type=\"text/javascript\">\n var _kmq = _kmq || [];\n function _kms(u){\n var s = document.createElement('script'); var f = document.getElementsByTagName('script')[0]; s.type = 'text/javascript'; s.async = true;\n s.src = u; f.parentNode.insertBefore(s, f);\n }\n _kms('//i.kissmetrics.com/i.js');_kms('//doug1izaerwt3.cloudfront.net/406e8bf3a2b8846ead55afb3cfaf6664523e3a54.1.js');\n </script>\n \n\n \n\n \n\n \n\n <div class=\"subnavd\" id=\"main\">\n <div id=\"header\" class=\"pageheaded\">\n <div class=\"site\">\n <div class=\"logo\">\n <a href=\"http://github.com\"><img src=\"/images/modules/header/logov3.png\" alt=\"github\" /></a>\n </div>\n \n <div class=\"topsearch\">\n \n <form action=\"/search\" id=\"top_search_form\" method=\"get\">\n <a href=\"/search\" class=\"advanced-search tooltipped downwards\" title=\"Advanced Search\">Advanced Search</a>\n <input type=\"search\" class=\"search my_repos_autocompleter\" name=\"q\" results=\"5\" placeholder=\"Search&hellip;\" /> <input type=\"submit\" value=\"Search\" class=\"button\" />\n <input type=\"hidden\" name=\"type\" value=\"Everything\" />\n <input type=\"hidden\" name=\"repo\" value=\"\" />\n <input type=\"hidden\" name=\"langOverride\" value=\"\" />\n <input type=\"hidden\" name=\"start_value\" value=\"1\" />\n </form>\n \n \n <ul class=\"nav logged_out\">\n \n <li><a href=\"http://github.com\">Home</a></li>\n <li class=\"pricing\"><a href=\"/plans\">Pricing and Signup</a></li>\n <li><a href=\"http://github.com/explore\">Explore GitHub</a></li>\n \n <li><a href=\"/blog\">Blog</a></li>\n \n <li><a href=\"https://github.com/login\">Login</a></li>\n </ul>\n \n</div>\n\n </div>\n </div>\n\n \n \n \n <div class=\"site\">\n <div class=\"pagehead repohead vis-public \">\n <h1>\n <a href=\"/peterc\">peterc</a> / <strong><a href=\"http://github.com/peterc/pismo\">pismo</a></strong>\n \n \n </h1>\n\n \n <ul class=\"actions\">\n \n\n \n <li class=\"for-owner\" style=\"display:none\"><a href=\"https://github.com/peterc/pismo/edit\" class=\"minibutton btn-admin \"><span><span class=\"icon\"></span>Admin</span></a></li>\n <li>\n <a href=\"/peterc/pismo/toggle_watch\" class=\"minibutton btn-watch \" id=\"watch_button\" style=\"display:none\"><span><span class=\"icon\"></span>Watch</span></a>\n <a href=\"/peterc/pismo/toggle_watch\" class=\"minibutton btn-watch \" id=\"unwatch_button\" style=\"display:none\"><span><span class=\"icon\"></span>Unwatch</span></a>\n </li>\n \n \n <li class=\"for-notforked\" style=\"display:none\"><a href=\"/peterc/pismo/fork\" class=\"minibutton btn-fork \" id=\"fork_button\" onclick=\"var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'POST'; f.action = this.href;var s = document.createElement('input'); s.setAttribute('type', 'hidden'); s.setAttribute('name', 'authenticity_token'); s.setAttribute('value', '652cd7f316708fc9c13d4dc8c2d3189ded826f23'); f.appendChild(s);f.submit();return false;\"><span><span class=\"icon\"></span>Fork</span></a></li>\n <li class=\"for-hasfork\" style=\"display:none\"><a href=\"#\" class=\"minibutton btn-fork \" id=\"your_fork_button\"><span><span class=\"icon\"></span>Your Fork</span></a></li>\n \n\n \n <li id=\"pull_request_item\" class='ospr' style=\"display:none\"><a href=\"/peterc/pismo/pull_request/\" class=\"minibutton btn-pull-request \"><span><span class=\"icon\"></span>Pull Request</span></a></li>\n \n\n <li><a href=\"#\" class=\"minibutton btn-download \" id=\"download_button\"><span><span class=\"icon\"></span>Download Source</span></a></li>\n \n \n \n <li class=\"repostats\">\n <ul class=\"repo-stats\">\n <li class=\"watchers\"><a href=\"/peterc/pismo/watchers\" title=\"Watchers\" class=\"tooltipped downwards\">52</a></li>\n <li class=\"forks\"><a href=\"/peterc/pismo/network\" title=\"Forks\" class=\"tooltipped downwards\">3</a></li>\n </ul>\n </li>\n </ul>\n\n\n \n <ul class=\"tabs\">\n <li><a href=\"http://github.com/peterc/pismo/tree/master\" class=\"selected\" highlight=\"repo_source\">Source</a></li>\n <li><a href=\"http://github.com/peterc/pismo/commits/master\" highlight=\"repo_commits\">Commits</a></li>\n\n \n <li><a href=\"/peterc/pismo/network\" highlight=\"repo_network\">Network (3)</a></li>\n\n \n\n \n \n <li><a href=\"/peterc/pismo/issues\" highlight=\"issues\">Issues (0)</a></li>\n \n\n \n \n <li><a href=\"/peterc/pismo/downloads\">Downloads (10)</a></li>\n \n\n \n \n <li><a href=\"http://wiki.github.com/peterc/pismo/\">Wiki (1)</a></li>\n \n\n <li><a href=\"/peterc/pismo/graphs\" highlight=\"repo_graphs\">Graphs</a></li>\n\n <li class=\"contextswitch nochoices\">\n <span class=\"toggle leftwards\" >\n <em>Branch:</em>\n <code>master</code>\n </span>\n </li>\n </ul>\n\n <div style=\"display:none\" id=\"pl-description\"><p><em class=\"placeholder\">click here to add a description</em></p></div>\n <div style=\"display:none\" id=\"pl-homepage\"><p><em class=\"placeholder\">click here to add a homepage</em></p></div>\n\n <div class=\"subnav-bar\">\n \n <ul>\n <li>\n <a href=\"#\" class=\"dropdown\">Switch Branches (1)</a>\n <ul>\n \n \n <li><strong>master &#x2713;</strong></li>\n \n </ul>\n </li>\n <li>\n <a href=\"#\" class=\"dropdown \">Switch Tags (10)</a>\n <ul>\n \n <li><a href=\"/peterc/pismo/tree/v0.6.2\">v0.6.2</a></li>\n \n \n <li><a href=\"/peterc/pismo/tree/v0.6.1\">v0.6.1</a></li>\n \n \n <li><a href=\"/peterc/pismo/tree/v0.6.0\">v0.6.0</a></li>\n \n \n <li><a href=\"/peterc/pismo/tree/v0.5.0\">v0.5.0</a></li>\n \n \n <li><a href=\"/peterc/pismo/tree/v0.4.0\">v0.4.0</a></li>\n \n \n <li><a href=\"/peterc/pismo/tree/v0.2.3\">v0.2.3</a></li>\n \n \n <li><a href=\"/peterc/pismo/tree/v0.2.2\">v0.2.2</a></li>\n \n \n <li><a href=\"/peterc/pismo/tree/v0.2.1\">v0.2.1</a></li>\n \n \n <li><a href=\"/peterc/pismo/tree/v0.2.0\">v0.2.0</a></li>\n \n \n <li><a href=\"/peterc/pismo/tree/v0.1.0\">v0.1.0</a></li>\n \n </ul>\n \n </li>\n <li>\n \n <a href=\"/peterc/pismo/branches\" class=\"manage\">Branch List</a>\n \n </li>\n </ul>\n</div>\n\n \n \n \n \n \n\n\n \n <div id=\"repo_details\" class=\"metabox clearfix\">\n <div id=\"repo_details_loader\" class=\"metabox-loader\" style=\"display:none\">Sending Request&hellip;</div>\n\n \n\n <div id=\"repository_description\" rel=\"repository_description_edit\">\n \n <p>Extracts machine-readable metadata and content from Web pages\n <span id=\"read_more\" style=\"display:none\">&mdash; <a href=\"#readme\">Read more</a></span>\n </p>\n \n </div>\n <div id=\"repository_description_edit\" style=\"display:none;\" class=\"inline-edit\">\n <form action=\"/peterc/pismo/edit/update\" method=\"post\"><div style=\"margin:0;padding:0\"><input name=\"authenticity_token\" type=\"hidden\" value=\"652cd7f316708fc9c13d4dc8c2d3189ded826f23\" /></div>\n <input type=\"hidden\" name=\"field\" value=\"repository_description\">\n <input type=\"text\" class=\"textfield\" name=\"value\" value=\"Extracts machine-readable metadata and content from Web pages\">\n <div class=\"form-actions\">\n <button class=\"minibutton\"><span>Save</span></button> <a href=\"#\" class=\"cancel\">Cancel</a>\n </div>\n </form>\n </div>\n\n \n <div class=\"repository-homepage\" id=\"repository_homepage\" rel=\"repository_homepage_edit\">\n <p><a href=\"http://coder.io/\" rel=\"nofollow\">http://coder.io/</a></p>\n </div>\n <div id=\"repository_homepage_edit\" style=\"display:none;\" class=\"inline-edit\">\n <form action=\"/peterc/pismo/edit/update\" method=\"post\"><div style=\"margin:0;padding:0\"><input name=\"authenticity_token\" type=\"hidden\" value=\"652cd7f316708fc9c13d4dc8c2d3189ded826f23\" /></div>\n <input type=\"hidden\" name=\"field\" value=\"repository_homepage\">\n <input type=\"text\" class=\"textfield\" name=\"value\" value=\"http://coder.io/\">\n <div class=\"form-actions\">\n <button class=\"minibutton\"><span>Save</span></button> <a href=\"#\" class=\"cancel\">Cancel</a>\n </div>\n </form>\n </div>\n\n <div class=\"rule \"></div>\n\n <div id=\"url_box\" class=\"url-box\">\n <ul class=\"clone-urls\">\n \n \n <li id=\"http_clone_url\"><a href=\"http://github.com/peterc/pismo.git\" data-permissions=\"Read-Only\">HTTP</a></li>\n <li id=\"public_clone_url\"><a href=\"git://github.com/peterc/pismo.git\" data-permissions=\"Read-Only\">Git Read-Only</a></li>\n \n </ul>\n <input type=\"text\" spellcheck=\"false\" id=\"url_field\" class=\"url-field\" />\n <span style=\"display:none\" id=\"url_box_clippy\"></span>\n <span id=\"clippy_tooltip_url_box_clippy\" class=\"clippy-tooltip tooltipped\" title=\"copy to clipboard\">\n <object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\"\n width=\"14\"\n height=\"14\"\n class=\"clippy\"\n id=\"clippy\" >\n <param name=\"movie\" value=\"http://assets1.github.com/flash/clippy.swf?v5\"/>\n <param name=\"allowScriptAccess\" value=\"always\" />\n <param name=\"quality\" value=\"high\" />\n <param name=\"scale\" value=\"noscale\" />\n <param NAME=\"FlashVars\" value=\"id=url_box_clippy&amp;copied=&amp;copyto=\">\n <param name=\"bgcolor\" value=\"#FFFFFF\">\n <param name=\"wmode\" value=\"opaque\">\n <embed src=\"http://assets1.github.com/flash/clippy.swf?v5\"\n width=\"14\"\n height=\"14\"\n name=\"clippy\"\n quality=\"high\"\n allowScriptAccess=\"always\"\n type=\"application/x-shockwave-flash\"\n pluginspage=\"http://www.macromedia.com/go/getflashplayer\"\n FlashVars=\"id=url_box_clippy&amp;copied=&amp;copyto=\"\n bgcolor=\"#FFFFFF\"\n wmode=\"opaque\"\n />\n </object>\n </span>\n\n <p id=\"url_description\">This URL has <strong>Read+Write</strong> access</p>\n </div>\n </div>\n\n\n \n\n </div><!-- /.pagehead -->\n\n \n\n\n\n\n\n\n\n\n\n\n\n<script type=\"text/javascript\">\n GitHub.currentCommitRef = \"master\"\n GitHub.currentRepoOwner = \"peterc\"\n GitHub.currentRepo = \"pismo\"\n GitHub.downloadRepo = '/peterc/pismo/archives/master'\n\n \n\n \n</script>\n\n\n\n\n\n\n\n\n\n\n <div id=\"commit\">\n <div class=\"group\">\n \n <div class=\"envelope commit\">\n <div class=\"human\">\n \n <div class=\"message\"><pre><a href=\"/peterc/pismo/commit/86b5cedb014a8238a3b12694fd6d4f519cdea989\">Minor doc tweaks</a> </pre></div>\n \n\n <div class=\"actor\">\n <div class=\"gravatar\">\n \n <img src=\"http://www.gravatar.com/avatar/6268c7528d855f1cef5696a00d159909?s=140&d=http%3A%2F%2Fgithub.com%2Fimages%2Fgravatars%2Fgravatar-140.png\" alt=\"\" width=\"30\" height=\"30\" />\n </div>\n <div class=\"name\"><a href=\"/peterc\">peterc</a> <span>(author)</span></div>\n <div class=\"date\">\n <abbr class=\"relatize\" title=\"2010-06-25 20:38:34\">Fri Jun 25 20:38:34 -0700 2010</abbr>\n </div>\n </div>\n\n \n\n </div>\n <div class=\"machine\">\n <span>c</span>ommit <a href=\"/peterc/pismo/commit/86b5cedb014a8238a3b12694fd6d4f519cdea989\" hotkey=\"c\">86b5cedb014a8238a3b1</a><br />\n <span>t</span>ree <a href=\"/peterc/pismo/tree/86b5cedb014a8238a3b12694fd6d4f519cdea989/lib/pismo\" hotkey=\"t\">6b3b7715f947c70d2628</a><br />\n \n <span>p</span>arent \n \n <a href=\"/peterc/pismo/tree/1bc860968d3156563c2683baaec56d7387fcc4e7/lib/pismo\" hotkey=\"p\">1bc860968d3156563c26</a>\n \n\n </div>\n </div>\n\n </div>\n </div>\n\n\n\n\n \n <div id=\"path\">\n <b><a href=\"/peterc/pismo/tree/master\">pismo</a></b> / \n </div>\n\n \n \n <script type=\"text/javascript\">\n GitHub.currentTreeSHA = \"86b5cedb014a8238a3b12694fd6d4f519cdea989\";\n GitHub.commitSHA = \"86b5cedb014a8238a3b12694fd6d4f519cdea989\";\n GitHub.currentPath = \"\";\n </script>\n\n\n<div id=\"browser\">\n <table cellpadding=\"0\" cellspacing=\"0\">\n <tr>\n <th></th>\n <th>name</th>\n <th>age</th>\n <th>\n <div class=\"history\">\n <a href=\"/peterc/pismo/commits/master/\">history</a>\n </div>\n message\n </th>\n </tr>\n\n \n\n \n <tr class=\"alt\">\n <td class=\"icon\"> <img alt=\"file\" src=\"http://assets3.github.com/images/icons/txt.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" /> </td>\n <td class=\"content\"> <a href=\"/peterc/pismo/blob/86b5cedb014a8238a3b12694fd6d4f519cdea989/.document\" id=\"ecf3673194b8b6963488dabc93d5f16fea93c5e9\">.document</a></td>\n \n <td class=\"age\"> <span class=\"relatize\">Sun Jan 10 15:57:40 -0800 2010</span> </td>\n <td class=\"message\"> <a href=\"/peterc/pismo/commit/fd655869f0169747f512ea4e39dfd913e2c7cf0b\" class=\"message\" title=\"Initial commit to csteamer.\">Initial commit to csteamer.</a> [<a href=\"/peterc\">peterc</a>] </td>\n </tr>\n \n <tr class=\"\">\n <td class=\"icon\"> <img alt=\"file\" src=\"http://assets3.github.com/images/icons/txt.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" /> </td>\n <td class=\"content\"> <a href=\"/peterc/pismo/blob/86b5cedb014a8238a3b12694fd6d4f519cdea989/.gitignore\" id=\"c1e0dafa8d510992f3b6f4633ed790621e6e53c7\">.gitignore</a></td>\n \n <td class=\"age\"> <span class=\"relatize\">Sun Jan 10 15:57:40 -0800 2010</span> </td>\n <td class=\"message\"> <a href=\"/peterc/pismo/commit/fd655869f0169747f512ea4e39dfd913e2c7cf0b\" class=\"message\" title=\"Initial commit to csteamer.\">Initial commit to csteamer.</a> [<a href=\"/peterc\">peterc</a>] </td>\n </tr>\n \n <tr class=\"alt\">\n <td class=\"icon\"> <img alt=\"file\" src=\"http://assets3.github.com/images/icons/txt.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" /> </td>\n <td class=\"content\"> <a href=\"/peterc/pismo/blob/86b5cedb014a8238a3b12694fd6d4f519cdea989/LICENSE\" id=\"d9211b0795da65e1ee964e307f431250c81ed931\">LICENSE</a></td>\n \n <td class=\"age\"> <span class=\"relatize\">Fri Jun 18 20:23:17 -0700 2010</span> </td>\n <td class=\"message\"> <a href=\"/peterc/pismo/commit/925d277cd0779a9e158c4a8881674047801c4101\" class=\"message\" title=\"Import of new 'Reader' algorithm to replace Ruby-Readability and test updates\">Import of new 'Reader' algorithm to replace Rub...</a> [<a href=\"/peterc\">peterc</a>] </td>\n </tr>\n \n <tr class=\"\">\n <td class=\"icon\"> <img alt=\"file\" src=\"http://assets3.github.com/images/icons/txt.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" /> </td>\n <td class=\"content\"> <a href=\"/peterc/pismo/blob/86b5cedb014a8238a3b12694fd6d4f519cdea989/NOTICE\" id=\"98db33464cc5894c89a6a1a5e59ade38dc5192fe\">NOTICE</a></td>\n \n <td class=\"age\"> <span class=\"relatize\">Sat Jun 19 17:50:45 -0700 2010</span> </td>\n <td class=\"message\"> <a href=\"/peterc/pismo/commit/594bd5f38e956a5f9506098f57f7ad100534a4ed\" class=\"message\" title=\"Doc updates\">Doc updates</a> [<a href=\"/peterc\">peterc</a>] </td>\n </tr>\n \n <tr class=\"alt\">\n <td class=\"icon\"> <img alt=\"file\" src=\"http://assets3.github.com/images/icons/txt.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" /> </td>\n <td class=\"content\"> <a href=\"/peterc/pismo/blob/86b5cedb014a8238a3b12694fd6d4f519cdea989/README.markdown\" id=\"c78d8f2c0e8a4e5d6ada2a9db544f741b9ac7467\">README.markdown</a></td>\n \n <td class=\"age\"> <span class=\"relatize\">Fri Jun 25 20:38:34 -0700 2010</span> </td>\n <td class=\"message\"> <a href=\"/peterc/pismo/commit/86b5cedb014a8238a3b12694fd6d4f519cdea989\" class=\"message\" title=\"Minor doc tweaks\">Minor doc tweaks</a> [<a href=\"/peterc\">peterc</a>] </td>\n </tr>\n \n <tr class=\"\">\n <td class=\"icon\"> <img alt=\"file\" src=\"http://assets3.github.com/images/icons/txt.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" /> </td>\n <td class=\"content\"> <a href=\"/peterc/pismo/blob/86b5cedb014a8238a3b12694fd6d4f519cdea989/Rakefile\" id=\"0822c45bc24822baaa2572c1aa6deba262233685\">Rakefile</a></td>\n \n <td class=\"age\"> <span class=\"relatize\">Fri Jun 18 20:31:30 -0700 2010</span> </td>\n <td class=\"message\"> <a href=\"/peterc/pismo/commit/3275e62eda5ee2413786d330da66d2313281bef0\" class=\"message\" title=\"Support URLs that have HTTP in all-caps\">Support URLs that have HTTP in all-caps</a> [<a href=\"/peterc\">peterc</a>] </td>\n </tr>\n \n <tr class=\"alt\">\n <td class=\"icon\"> <img alt=\"file\" src=\"http://assets3.github.com/images/icons/txt.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" /> </td>\n <td class=\"content\"> <a href=\"/peterc/pismo/blob/86b5cedb014a8238a3b12694fd6d4f519cdea989/VERSION\" id=\"b6160487433ba524a39a93cde5a330f7e71d0d39\">VERSION</a></td>\n \n <td class=\"age\"> <span class=\"relatize\">Sat Jun 19 20:28:45 -0700 2010</span> </td>\n <td class=\"message\"> <a href=\"/peterc/pismo/commit/e440ee4370ca238ab5d332f60387430c377e8ccf\" class=\"message\" title=\"Version bump to 0.6.2\">Version bump to 0.6.2</a> [<a href=\"/peterc\">peterc</a>] </td>\n </tr>\n \n <tr class=\"\">\n <td class=\"icon\"> <img alt=\"directory\" src=\"http://assets2.github.com/images/icons/dir.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" /> </td>\n <td class=\"content\"> <a href=\"/peterc/pismo/tree/86b5cedb014a8238a3b12694fd6d4f519cdea989/bin\" id=\"0e25fc5d9fa67a103bbcb195d32e41be71834019\">bin/</a></td>\n \n <td class=\"age\"> <span class=\"relatize\">Sat Jun 19 19:49:24 -0700 2010</span> </td>\n <td class=\"message\"> <a href=\"/peterc/pismo/commit/096dc0b2dbd90d3a2f6830f3137f0b6c09986462\" class=\"message\" title=\"Stopped pismo CLI client catching exceptions\">Stopped pismo CLI client catching exceptions</a> [<a href=\"/peterc\">peterc</a>] </td>\n </tr>\n \n <tr class=\"alt\">\n <td class=\"icon\"> <img alt=\"directory\" src=\"http://assets2.github.com/images/icons/dir.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" /> </td>\n <td class=\"content\"> <a href=\"/peterc/pismo/tree/86b5cedb014a8238a3b12694fd6d4f519cdea989/lib\" id=\"12d7f79eb69caae0bd1636916a691d4c22414a57\">lib/</a></td>\n \n <td class=\"age\"> <span class=\"relatize\">Fri Jun 25 20:24:16 -0700 2010</span> </td>\n <td class=\"message\"> <a href=\"/peterc/pismo/commit/1bc860968d3156563c2683baaec56d7387fcc4e7\" class=\"message\" title=\"Slightly saner author extraction rule ordering\">Slightly saner author extraction rule ordering</a> [<a href=\"/peterc\">peterc</a>] </td>\n </tr>\n \n <tr class=\"\">\n <td class=\"icon\"> <img alt=\"file\" src=\"http://assets3.github.com/images/icons/txt.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" /> </td>\n <td class=\"content\"> <a href=\"/peterc/pismo/blob/86b5cedb014a8238a3b12694fd6d4f519cdea989/pismo.gemspec\" id=\"a5372a3694f763e12db70adeada2e8bafa106895\">pismo.gemspec</a></td>\n \n <td class=\"age\"> <span class=\"relatize\">Sat Jun 19 20:28:48 -0700 2010</span> </td>\n <td class=\"message\"> <a href=\"/peterc/pismo/commit/519b6b8d15542c3b4f05781f42ba62a5681a06fc\" class=\"message\" title=\"Regenerated gemspec for version 0.6.2\">Regenerated gemspec for version 0.6.2</a> [<a href=\"/peterc\">peterc</a>] </td>\n </tr>\n \n <tr class=\"alt\">\n <td class=\"icon\"> <img alt=\"directory\" src=\"http://assets2.github.com/images/icons/dir.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" /> </td>\n <td class=\"content\"> <a href=\"/peterc/pismo/tree/86b5cedb014a8238a3b12694fd6d4f519cdea989/test\" id=\"4c4e73ce3ced7812552610fdf039b22fb2a60bd6\">test/</a></td>\n \n <td class=\"age\"> <span class=\"relatize\">Fri Jun 25 20:18:53 -0700 2010</span> </td>\n <td class=\"message\"> <a href=\"/peterc/pismo/commit/e9efb71c59deb2a74f109a910cc75546f2029939\" class=\"message\" title=\"Don't check YouTube for content since there isn't any\">Don't check YouTube for content since there isn...</a> [<a href=\"/peterc\">peterc</a>] </td>\n </tr>\n \n </table>\n</div>\n\n \n\n \n\n\n \n\n <div id=\"readme\" class=\"announce markdown\"><span class=\"name\">README.markdown</span><div class=\"wikistyle\"><h1>pismo - Web page content analysis and metadata extraction</h1>\n\n<h2>DESCRIPTION:</h2>\n\n<p>Pismo extracts machine-usable metadata from unstructured (or poorly structured) English-language HTML documents.\nData that Pismo can extract include titles, feed URLs, ledes, body text, image URLs, date, and keywords.\nPismo is used heavily in production on http://coder.io/ to extract data from Web pages.</p>\n\n<p>All tests pass on Ruby 1.8.7 (MRI) and Ruby 1.9.1-p378 (MRI).</p>\n\n<h2>USAGE:</h2>\n\n<p>A basic example of extracting basic metadata from a Web page:</p>\n\n<pre><code>require 'pismo'\n\n# Load a Web page (you could pass an IO object or a string with existing HTML data along, as you prefer)\ndoc = Pismo::Document.new('http://www.rubyinside.com/cramp-asychronous-event-driven-ruby-web-app-framework-2928.html')\n\ndoc.title # =&gt; \"Cramp: Asychronous Event-Driven Ruby Web App Framework\"\ndoc.author # =&gt; \"Peter Cooper\"\ndoc.lede # =&gt; \"Cramp (GitHub repo) is a new, asynchronous evented Web app framework by Pratik Naik of 37signals (and the Rails core team). It's built around Ruby's EventMachine library and was designed to use event-driven I/O throughout - making it ideal for situations where you need to handle a large number of open connections (such as Comet systems or streaming APIs.)\"\ndoc.keywords # =&gt; [[\"cramp\", 7], [\"controllers\", 3], [\"app\", 3], [\"basic\", 2], ..., ... ]\n</code></pre>\n\n<p>There's also a shorter \"convenience\" method which might be handy in IRB - it does the same as Pismo::Document.new:</p>\n\n<pre><code>Pismo['http://www.rubyflow.com/items/4082'].title # =&gt; \"Install Ruby as a non-root User\"\n</code></pre>\n\n<p>The current metadata methods are:</p>\n\n<ul>\n<li>title</li>\n<li>titles</li>\n<li>author</li>\n<li>authors</li>\n<li>lede</li>\n<li>keywords</li>\n<li>sentences(qty)</li>\n<li>body</li>\n<li>html_body</li>\n<li>feed</li>\n<li>feeds</li>\n<li>favicon</li>\n<li>description</li>\n<li>datetime</li>\n</ul>\n\n\n<p>These methods are not fully documented here yet - you'll just need to try them out. The plural methods like #titles, #authors, and #feeds will return multiple matches in an array, if present. This is so you can use your own techniques to choose a \"best\" result in ambiguous cases.</p>\n\n<p>The html_body and body methods will be of particular interest. They return the \"body\" of the page as determined by Pismo's \"Reader\" (like Arc90's Readability or Safari Reader) algorithm. #body returns it as plain-text, #html_body maintains some basic HTML styling.</p>\n\n<h2>CAVEATS AND SHORTCOMINGS:</h2>\n\n<p>There are some shortcomings or problems that I'm aware of and am going to pursue:</p>\n\n<ul>\n<li>I do not know how Pismo fares on Rubinius or other versions of 1.9 (e.g. 1.9.2) yet</li>\n<li>pismo does not install on JRuby due to a problem in the fast-stemmer dependency</li>\n<li>The \"Reader\" content extraction algorithm is not perfect. It can sometimes return crap and can barf on certain types of characters for sentence extraction.</li>\n<li>The author name extraction isn't very strong.</li>\n<li>The image extraction only handles images with absolute URLs.</li>\n<li>The stopword list leaves a bit to be desired. It errs on the side of being too long rather than too short, though (1024 words long!)</li>\n</ul>\n\n\n<h2>OTHER GROOVY STUFF:</h2>\n\n<h3>Command Line Tool</h3>\n\n<p>A command line tool called \"pismo\" is included so that you can get metadata about a page from the command line. This is\ngreat for testing, or perhaps calling it from a non Ruby script. The output is currently in YAML.</p>\n\n<h4>Usage:</h4>\n\n<pre><code>./bin/pismo http://www.rubyinside.com/cramp-asychronous-event-driven-ruby-web-app-framework-2928.html title lede author datetime\n</code></pre>\n\n<h4>Output:</h4>\n\n<pre><code>--- \n:url: http://www.rubyinside.com/cramp-asychronous-event-driven-ruby-web-app-framework-2928.html\n:title: \"Cramp: Asychronous Event-Driven Ruby Web App Framework\"\n:lede: Cramp (GitHub repo)is a new, asynchronous evented Web app framework by Pratik Naik of 37signals\n:author: Peter Cooper\n:datetime: 2010-01-07 12:00:00 +00:00\n</code></pre>\n\n<p>If you call pismo without any arguments (except a URL), it starts an IRB session so you can directly work in Ruby. The URL provided is loaded\nand assigned to both the constant 'P' and the variable @p.</p>\n\n<h3>Stopword access</h3>\n\n<p>You can access Pismo's stopword list directly:</p>\n\n<pre><code>Pismo.stopwords # =&gt; [.., .., ..]\n</code></pre>\n\n<h2>Note on Patches/Pull Requests</h2>\n\n<ul>\n<li>Fork the project.</li>\n<li>Make your feature addition or bug fix.</li>\n<li>Add tests for it. This is important so I don't break it in a future version unintentionally.</li>\n<li>Commit, do not mess with Rakefile, version, or history as it's handled by Jeweler (which is awesome, btw).</li>\n<li>Send me a pull request. I may or may not accept it (sorry, practicality rules.. but message me and we can talk!)</li>\n</ul>\n\n\n<h2>COPYRIGHT AND LICENSE</h2>\n\n<p>Apache 2.0 License - See LICENSE for details.\nCopyright (c) 2009, 2010 Peter Cooper</p>\n\n<p>In short, you can use Pismo for whatever you like commercial or not, but please include a brief credit (as in the NOTICE file - as per the Apache 2.0 License) somewhere deep in your license file or similar, and, if you're nice and have the time, let me know if you're using it and/or share any significant changes or improvements you make.</p>\n\n<p>http://github.com/peterc/pismo</p>\n</div></div>\n\n\n\n </div>\n \n \n\n <div class=\"push\"></div>\n </div>\n\n <div id=\"footer\">\n <div class=\"site\">\n <div class=\"info\">\n <div class=\"links\">\n <a href=\"http://github.com/blog\"><b>Blog</b></a> |\n <a href=\"http://support.github.com\">Support</a> |\n <a href=\"http://github.com/training\">Training</a> |\n <a href=\"http://github.com/contact\">Contact</a> |\n <a href=\"http://develop.github.com\">API</a> |\n <a href=\"http://status.github.com\">Status</a> |\n <a href=\"http://twitter.com/github\">Twitter</a> |\n <a href=\"http://help.github.com\">Help</a> |\n <a href=\"http://github.com/security\">Security</a>\n </div>\n <div class=\"company\">\n &copy;\n 2010\n <span id=\"_rrt\" title=\"0.07960s from fe1.rs.github.com\">GitHub</span> Inc.\n All rights reserved. |\n <a href=\"/site/terms\">Terms of Service</a> |\n <a href=\"/site/privacy\">Privacy Policy</a>\n </div>\n </div>\n <div class=\"sponsor\">\n <div>\n Powered by the <a href=\"http://www.rackspace.com \">Dedicated\n Servers</a> and<br/> <a href=\"http://www.rackspacecloud.com\">Cloud\n Computing</a> of Rackspace Hosting<span>&reg;</span>\n </div>\n <a href=\"http://www.rackspace.com\">\n <img alt=\"Dedicated Server\" src=\"http://assets2.github.com/images/modules/footer/rackspace_logo.png?4145dfae543db1df6d2a0c8c31d5916c23ba6779\" />\n </a>\n </div>\n </div>\n </div>\n\n \n \n <div class=\"locales\">\n <div class=\"site\">\n <ul class=\"choices\">\n \n \n <li><a class=\"current\" href=\"#\">English</a></li>\n \n \n \n \n <li><a href=\"?locale=ca\">Catal\303\240</a></li>\n \n \n \n \n \n <li><a href=\"?locale=cs\">\304\214e\305\241tina</a></li>\n \n \n \n \n \n <li><a href=\"?locale=de\">Deutsch</a></li>\n \n \n \n \n \n <li><a href=\"?locale=es\">Espa\303\261ol</a></li>\n \n \n \n \n \n <li><a href=\"?locale=fr\">Fran\303\247ais</a></li>\n \n \n \n \n \n <li><a href=\"?locale=hr\">Hrvatski</a></li>\n \n \n \n \n \n <li><a href=\"?locale=id\">Indonesia</a></li>\n \n \n \n \n \n <li><a href=\"?locale=it\">Italiano</a></li>\n \n \n \n \n \n <li><a href=\"?locale=ja\">\346\227\245\346\234\254\350\252\236</a></li>\n \n \n \n \n \n <li><a href=\"?locale=nl\">Nederlands</a></li>\n \n \n \n \n \n <li><a href=\"?locale=no\">Norsk</a></li>\n \n \n \n \n \n <li><a href=\"?locale=pl\">Polski</a></li>\n \n \n \n \n \n <li><a href=\"?locale=pt-BR\">Portugu\303\252s (BR)</a></li>\n \n \n \n \n \n <li><a href=\"?locale=sr\">\320\241\321\200\320\277\321\201\320\272\320\270</a></li>\n \n \n \n \n \n <li><a href=\"?locale=sv\">Svenska</a></li>\n \n \n \n </ul>\n </div>\n </div>\n \n \n <script>window._auth_token = \"652cd7f316708fc9c13d4dc8c2d3189ded826f23\"</script>\n \n\n <script type=\"text/javascript\">\n _kmq.push(['trackClick', 'entice_banner_link', 'Entice banner clicked']);\n \n </script>\n \n </body>\n</html>\n\n", @url="http://github.com/peterc/pismo">
>> pismo.keywords
/Users/briandoll/.rvm/gems/ruby-1.8.7-p249/gems/pismo-0.6.2/lib/pismo/reader.rb:144: [BUG] Segmentation fault
ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-darwin10.3.1]
Abort trap
#
# If we omit the display of the pismo content to our irb session, it works
>> require 'pismo'
=> true
>> pismo = Pismo::Document.new("http://github.com/peterc/pismo"); puts nil
nil
=> nil
>> pismo.keywords
=> [["pismo", 10], ["description", 10], ["ruby", 6], ["script", 5], ["body", 5], ["web", 5], ["io", 5], ["license", 5], ["extraction", 4], ["methods", 3], ["command", 3], ["cramp", 3], ["titles", 3], ["page", 3], ["html", 3], ["data", 3], ["return", 3], ["metadata", 3], ["reader", 3], ["urls", 3]]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment