<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lib/spec/rails/example/routing_helpers.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,5 +1,6 @@
 dir = File.dirname(__FILE__)
 
+require 'spec/rails/example/routing_helpers'
 require 'spec/rails/example/assigns_hash_proxy'
 require &quot;spec/rails/example/render_observer&quot;
 require &quot;spec/rails/example/model_example_group&quot;</diff>
      <filename>lib/spec/rails/example.rb</filename>
    </modified>
    <modified>
      <diff>@@ -84,6 +84,8 @@ module Spec
           end
         end
         
+        include ::Spec::Rails::Example::RoutingHelpers
+        
         before(:each) do
           # Some Rails apps explicitly disable ActionMailer in environment.rb
           if defined?(ActionMailer)
@@ -116,54 +118,6 @@ module Spec
           @integrate_views = self.class.integrate_views?
         end
         
-        class RouteForMatcher
-          def initialize(example, options)
-            @example, @options = example, options
-          end
-          
-          def ==(expected)
-            if Hash === expected
-              path, querystring = expected[:path].split('?')
-              path = expected.merge(:path =&gt; path)
-            else
-              path, querystring = expected.split('?')
-            end
-            params = querystring.blank? ? {} : @example.params_from_querystring(querystring)
-            @example.assert_recognizes(@options, path, params)
-            true
-          end
-        end
-
-        # Uses ActionController::Routing::Routes to generate
-        # the correct route for a given set of options.
-        # == Example
-        #   route_for(:controller =&gt; 'registrations', :action =&gt; 'edit', :id =&gt; 1)
-        #     =&gt; '/registrations/1;edit'
-        def route_for(options)
-          RouteForMatcher.new(self, options)
-        end
-
-        # Uses ActionController::Routing::Routes to parse
-        # an incoming path so the parameters it generates can be checked
-        # == Example
-        #   params_from(:get, '/registrations/1/edit')
-        #     =&gt; :controller =&gt; 'registrations', :action =&gt; 'edit', :id =&gt; 1
-        def params_from(method, path)
-          ensure_that_routes_are_loaded
-          path, querystring = path.split('?')
-          params = ActionController::Routing::Routes.recognize_path(path, :method =&gt; method)
-          querystring.blank? ? params : params.merge(params_from_querystring(querystring))
-        end
-
-        def params_from_querystring(querystring) # :nodoc:
-          params = {}
-          querystring.split('&amp;').each do |piece|
-            key, value = piece.split('=')
-            params[key.to_sym] = value
-          end
-          params
-        end
-
       protected
 
         def _assigns_hash_proxy</diff>
      <filename>lib/spec/rails/example/controller_example_group.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>b578d76777d596c5737e18c4c373233dc0cff8b6</id>
    </parent>
  </parents>
  <author>
    <name>David Chelimsky</name>
    <email>dchelimsky@gmail.com</email>
  </author>
  <url>http://github.com/dchelimsky/rspec-rails/commit/bdcf8d21c10a56af98113765f509daf063bfaaa5</url>
  <id>bdcf8d21c10a56af98113765f509daf063bfaaa5</id>
  <committed-date>2009-02-11T22:47:41-08:00</committed-date>
  <authored-date>2009-02-11T22:46:49-08:00</authored-date>
  <message>move routing helpers out to its own module</message>
  <tree>7a1a77adda924c8d696bb0f4f1e1b4e437afca37</tree>
  <committer>
    <name>David Chelimsky</name>
    <email>dchelimsky@gmail.com</email>
  </committer>
</commit>
