<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -10,8 +10,8 @@ Scraper
       element :title
       
       elements 'div.hentry' =&gt; :articles do
-        element 'h2' =&gt; :title
-        element 'a/@href' =&gt; :url
+        element :title =&gt; h2'
+        element :url =&gt; 'a/@href'
       end
     end
     </diff>
      <filename>README.md</filename>
    </modified>
    <modified>
      <diff>@@ -9,24 +9,24 @@ require 'date'
 
 # extracts data from a single bookmark
 class Bookmark &lt; Scraper
-  element 'h4 a' =&gt; :title
-  element '.description' =&gt; :description
+  element :title =&gt; 'h4 a'
+  element :description =&gt; '.description'
   
   # extract attribute with xpath
-  element './/h4/a/@href' =&gt; :url
+  element :url =&gt; './/h4/a/@href'
   
   # tags are plural
-  elements 'ul.tag-chain li span' =&gt; :tags
+  elements :tags =&gt; 'ul.tag-chain li span'
   
   # dates are in form &quot;22 OCT 09&quot;
-  element '.dateGroup span' =&gt; :date, :with =&gt; lambda { |span|
+  element :date =&gt; '.dateGroup span', :with =&gt; lambda { |span|
     Date.strptime(span.inner_text.strip, '%d %b %y')
   }
 end
 
 # finds all bookmarks on the page
 class Delicious &lt; Scraper
-  elements '#bookmarklist div.bookmark' =&gt; :bookmarks, :with =&gt; Bookmark
+  elements :bookmarks =&gt; '#bookmarklist div.bookmark', :with =&gt; Bookmark
 end
 
 mislav = Delicious.parse open('http://delicious.com/mislav/ruby')</diff>
      <filename>examples/delicious.rb</filename>
    </modified>
    <modified>
      <diff>@@ -21,7 +21,7 @@ class Scraper
 
   # Specify a new singular scraping rule
   def self.element(*args, &amp;block)
-    selector, name, delegate = parse_rule_declaration(*args, &amp;block)
+    name, selector, delegate = parse_rule_declaration(*args, &amp;block)
     rules[name] = [selector, delegate]
     attr_accessor name
     name
@@ -52,7 +52,7 @@ class Scraper
   # Defines accessors on the fly from lambda
   #
   # class LinkScraper &lt; Scraper
-  #   element 'a/@href' =&gt; :link, :with =&gt; lambda { |link|
+  #   element :link =&gt; 'a/@href', :with =&gt; lambda { |link|
   #     link.inner_text =~ /http:\/\/(.*?)\.(.*)/
   #     self.domain = $2
   #     self.subdomain = $1
@@ -60,7 +60,7 @@ class Scraper
   #   }
   # end
   #
-  # scraper = LinkScraper.scrape(HTML)
+  # scraper = LinkScraper.parse(HTML)
   # scraper.domain, scraper.subdomain, scraper.link #=&gt; ...
   class Proxy
     def initialize(target)
@@ -94,19 +94,19 @@ class Scraper
 
   # Rule declaration is in Hash or single argument form:
   #
-  #   { '//some/selector' =&gt; :name, :with =&gt; MyClass }
-  #     #=&gt; ['//some/selector', :name, MyClass]
+  #   { :name =&gt; '//some/selector', :with =&gt; MyClass }
+  #     #=&gt; [:name, '//some/selector', MyClass]
   #
   #   :title
-  #     #=&gt; ['title', :title, nil]
+  #     #=&gt; [:title, 'title', nil]
   def self.parse_rule_declaration(*args, &amp;block)
     options, name = Hash === args.last ? args.pop : {}, args.first
     delegate = options.delete(:with)
-    selector, property = name ? [name.to_s, name.to_sym] : options.to_a.flatten
+    property, selector = name ? [name.to_sym, name.to_s] : options.to_a.flatten
     raise ArgumentError, &quot;invalid rule declaration: #{args.inspect}&quot; unless property
     # eval block in context of a new scraper subclass
     delegate = Class.new(delegate || Scraper, &amp;block) if block_given?
-    return selector, property, delegate
+    return property, selector, delegate
   end
 
   def self.rules
@@ -141,12 +141,12 @@ if __FILE__ == $0
   HTML = DATA.read
 
   class Article &lt; Scraper
-    element 'h1' =&gt; :title
-    element 'a/@href' =&gt; :link
+    element :title =&gt; 'h1'
+    element :link =&gt; 'a/@href'
   end
 
   class TimestampedArticle &lt; Article
-    element 'p.pubdate' =&gt; :published, :with =&gt; lambda { |node|
+    element :published =&gt; 'p.pubdate', :with =&gt; lambda { |node|
       node.inner_text.sub('Published on ', '')
     }
 
@@ -161,25 +161,25 @@ if __FILE__ == $0
 
   class BlogScraper &lt; Scraper
     element :title
-    elements '#nav li' =&gt; :navigation_items
+    elements :navigation_items =&gt; '#nav li'
   end
 
   class OverrideBlogScraper &lt; BlogScraper
     elements :title
-    element '#nav li' =&gt; :navigation_items
+    element :navigation_items =&gt; '#nav li'
   end
 
   class BlogWithArticles &lt; BlogScraper
-    elements 'div.hentry' =&gt; :articles, :with =&gt; Article
+    elements :articles =&gt; 'div.hentry', :with =&gt; Article
   end
 
   class BlogWithTimestampedArticles &lt; BlogScraper
-    elements 'div.hentry' =&gt; :articles, :with =&gt; TimestampedArticle
+    elements :articles =&gt; 'div.hentry', :with =&gt; TimestampedArticle
   end
 
   class BlogWithArticlesBlock &lt; BlogScraper
-    elements 'div.hentry' =&gt; :articles do
-      element 'h1' =&gt; :title
+    elements :articles =&gt; 'div.hentry' do
+      element :title =&gt; 'h1'
     end
   end
 
@@ -313,7 +313,7 @@ if __FILE__ == $0
   describe &quot;setting instance variables on the fly from lambda&quot; do
     it &quot;should be able to set scraper instance variables dinamically&quot; do
       scraper = Scraper.define do
-        element 'span/a/@href' =&gt; :link, :with =&gt; lambda { |link|
+        element :link =&gt; 'span/a/@href', :with =&gt; lambda { |link|
           href = link.inner_text
           href =~ /http:\/\/(.*?)\.(.*)/
           self.domain = $2</diff>
      <filename>scraper.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>fb64c07e8ca3df0a190dc691b5bbf0046135d59a</id>
    </parent>
  </parents>
  <author>
    <name>David Krmpotic</name>
    <email>david.krmpotic@gmail.com</email>
  </author>
  <url>http://github.com/davidhq/scraper/commit/3baf43c16d3bece015205a3f7673cf9cd9a14d95</url>
  <id>3baf43c16d3bece015205a3f7673cf9cd9a14d95</id>
  <committed-date>2009-10-24T17:18:02-07:00</committed-date>
  <authored-date>2009-10-24T17:02:43-07:00</authored-date>
  <message>make API more sensible, so it's :name =&gt; &quot;selector&quot; now</message>
  <tree>ed19174d7cbc0be5faf5d1d307f8a8649834b15a</tree>
  <committer>
    <name>David Krmpotic</name>
    <email>david.krmpotic@gmail.com</email>
  </committer>
</commit>
