<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>TODO.textile</filename>
    </added>
    <added>
      <filename>app/controllers/clearance/confirmations_controller.rb</filename>
    </added>
    <added>
      <filename>app/controllers/clearance/passwords_controller.rb</filename>
    </added>
    <added>
      <filename>app/controllers/clearance/sessions_controller.rb</filename>
    </added>
    <added>
      <filename>app/controllers/clearance/users_controller.rb</filename>
    </added>
    <added>
      <filename>app/models/clearance_mailer.rb</filename>
    </added>
    <added>
      <filename>app/views/clearance_mailer/change_password.html.erb</filename>
    </added>
    <added>
      <filename>app/views/clearance_mailer/confirmation.html.erb</filename>
    </added>
    <added>
      <filename>app/views/passwords/edit.html.erb</filename>
    </added>
    <added>
      <filename>app/views/passwords/new.html.erb</filename>
    </added>
    <added>
      <filename>app/views/sessions/new.html.erb</filename>
    </added>
    <added>
      <filename>app/views/users/_form.html.erb</filename>
    </added>
    <added>
      <filename>app/views/users/new.html.erb</filename>
    </added>
    <added>
      <filename>config/clearance_routes.rb</filename>
    </added>
    <added>
      <filename>generators/clearance/templates/factories.rb</filename>
    </added>
    <added>
      <filename>generators/clearance/templates/migrations/create_users.rb</filename>
    </added>
    <added>
      <filename>generators/clearance/templates/migrations/update_users.rb</filename>
    </added>
    <added>
      <filename>generators/clearance/templates/user.rb</filename>
    </added>
    <added>
      <filename>lib/clearance/authentication.rb</filename>
    </added>
    <added>
      <filename>lib/clearance/extensions/errors.rb</filename>
    </added>
    <added>
      <filename>lib/clearance/extensions/rescue.rb</filename>
    </added>
    <added>
      <filename>lib/clearance/user.rb</filename>
    </added>
    <added>
      <filename>test/controllers/confirmations_controller_test.rb</filename>
    </added>
    <added>
      <filename>test/controllers/passwords_controller_test.rb</filename>
    </added>
    <added>
      <filename>test/controllers/sessions_controller_test.rb</filename>
    </added>
    <added>
      <filename>test/controllers/users_controller_test.rb</filename>
    </added>
    <added>
      <filename>test/models/clearance_mailer_test.rb</filename>
    </added>
    <added>
      <filename>test/models/user_test.rb</filename>
    </added>
    <added>
      <filename>test/test_helper.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,9 +1,33 @@
+h1. 0.6.0 (04/21/2009)
+
+* Converted Clearance to a Rails engine. (Dan Croak &amp; Joe Ferris)
+* Include Clearance::User in User model in app. (Dan Croak &amp; Joe Ferris)
+* Include Clearance::Authentication in ApplicationController. (Dan Croak &amp; Joe Ferris)
+* Namespace controllers under Clearance. (Dan Croak &amp; Joe Ferris)
+* Routes move to engine, use namespaced controllers but publicly the same. (Dan Croak &amp; Joe Ferris)
+* If you want to override a controller, subclass it like SessionsController &lt;
+Clearance::SessionsController. This gives you access to usual hooks such as
+url_after_create. (Dan Croak &amp; Joe Ferris)
+* Controllers, mailer, model, routes all unit tested inside engine. Use
+script/generate clearance_features to test integration of Clearance with your
+Rails app. No longer including modules in your app's test files. (Dan Croak &amp; Joe Ferris)
+* Moved views to engine. (Joe Ferris)
+* Converted generated test/factories/clearance.rb to use inheritence for
+email_confirmed_user. (Dan Croak)
+* Corrected some spelling errors with methods (Nick Quaranto)
+* Converted &quot;I should see error messages&quot; to use a regex in the features (Nick
+Quaranto)
+* Loading clearance routes after rails routes via some monkeypatching (Nick
+Quaranto)
+* Made the clearance controllers unloadable to stop constant loading errors in
+development mode (Nick Quaranto)
+
 h2. 0.5.6 (4/11/2009)
 
 * [#57] Step definition changed for &quot;User should see error messages&quot; so
 features won't fail for certain validations. (Nick Quaranto)
 
-h2. 0.5.5 (3/23/2009)
+h1. 0.5.5 (3/23/2009)
 
 * Removing duplicate test to get rid of warning. (Nick Quaranto)
 </diff>
      <filename>CHANGELOG.textile</filename>
    </modified>
    <modified>
      <diff>@@ -4,6 +4,10 @@ Rails authentication with email &amp; password.
 
 &quot;We have clearance, Clarence.&quot;:http://www.youtube.com/v/mNRXJEE3Nz8
 
+h2. Engine
+
+Clearance is a Rails engine. It works with versions of Rails greater than 2.3.
+
 h2. Wiki
 
 Most information regarding Clearance is on the &quot;Github Wiki&quot;:http://wiki.github.com/thoughtbot/clearance.
@@ -12,30 +16,30 @@ h2. Integration with Suspenders
 
 Clearance is based on the same conventions and tools as &quot;Suspenders&quot;:http://github.com/thoughtbot/suspenders If you use it, you already have some configuration mentioned below.
 
-h2. Gem installation (Rails 2.1+)
+h2. Gem installation
 
 In config/environment.rb:
 
     config.gem &quot;thoughtbot-clearance&quot;, 
       :lib     =&gt; 'clearance', 
       :source  =&gt; 'http://gems.github.com', 
-      :version =&gt; '0.5.5'
+      :version =&gt; '0.6.0'
 
 In config/environments/test.rb:
 
     config.gem 'thoughtbot-shoulda',
       :lib     =&gt; 'shoulda',
       :source  =&gt; &quot;http://gems.github.com&quot;, 
-      :version =&gt; '2.10.0'
+      :version =&gt; '2.10.1'
     config.gem 'thoughtbot-factory_girl',
       :lib     =&gt; 'factory_girl',
       :source  =&gt; &quot;http://gems.github.com&quot;, 
-      :version =&gt; '1.2.0'
+      :version =&gt; '1.2.1'
 
 Then:
 
     rake gems:install
-    rake gems:unpack 
+    rake gems:unpack
     rake gems:install RAILS_ENV=test
     rake gems:unpack  RAILS_ENV=test
 
@@ -74,3 +78,12 @@ h2. Authors
 Clearance was extracted out of &quot;Hoptoad&quot;:http://hoptoadapp.com. We merged the authentication code from two of thoughtbot's client's Rails apps. The following people have made significant contributions, suggestions, and generally improved the library. Thank you!
 
 Dan Croak, Mike Burns, Jason Morrison, Joe Ferris, Eugene Bolshakov, Josh Nichols, Mike Breen, Marcel G&#246;rner, Bence Nagy, Ben Mabey, Eloy Duran, Tim Pope, Mihai Anca, &amp; Mark Cornick.
+
+h2. Questions?
+
+* Ask the &quot;mailing list&quot;:http://groups.google.com/group/thoughtbot-clearance
+
+h2. Bugs?
+
+* Open up a &quot;Lighthouse ticket&quot;:https://thoughtbot.lighthouseapp.com/projects/18503-clearance
+</diff>
      <filename>README.textile</filename>
    </modified>
    <modified>
      <diff>@@ -2,19 +2,17 @@ require 'rake'
 require 'rake/testtask'
 require 'cucumber/rake/task'
 
-test_files_pattern = 'test/rails_root/test/{unit,functional,other}/**/*_test.rb'
-
 namespace :test do
   Rake::TestTask.new(:all =&gt; ['generator:cleanup', 
                               'generator:generate']) do |task|
     task.libs &lt;&lt; 'lib'
-    task.libs &lt;&lt; File.join(File.dirname(__FILE__), &quot;test/rails_root/test&quot;)
-    task.pattern = test_files_pattern
+    task.libs &lt;&lt; &quot;test&quot;
+    task.pattern = 'test/**/*_test.rb'
     task.verbose = false
   end
 
   Cucumber::Rake::Task.new(:features) do |t|
-    t.cucumber_opts = &quot;--format pretty&quot;
+    t.cucumber_opts = &quot;--format progress&quot;
     t.feature_pattern = 'test/rails_root/features/*.feature'
   end
 end
@@ -35,14 +33,15 @@ namespace :generator do
       FileUtils.rm_rf(each)
     end
     FileUtils.rm_rf(&quot;test/rails_root/vendor/plugins/clearance&quot;)
-    system &quot;mkdir -p test/rails_root/vendor/plugins/clearance&quot;
-    system &quot;cp -R generators test/rails_root/vendor/plugins/clearance&quot;
+    FileUtils.mkdir_p(&quot;test/rails_root/vendor/plugins&quot;)
+    clearance_root = File.expand_path(File.dirname(__FILE__))
+    system(&quot;ln -s #{clearance_root} test/rails_root/vendor/plugins/clearance&quot;)
   end
 
   desc &quot;Run the generator on the tests&quot;
   task :generate do
     generators.each do |generator|
-      system &quot;cd test/rails_root &amp;&amp; ./script/generate #{generator}&quot;
+      system &quot;cd test/rails_root &amp;&amp; ./script/generate #{generator} &amp;&amp; rake db:migrate db:test:prepare&quot;
     end
   end
 end
@@ -52,7 +51,7 @@ task :default =&gt; ['test:all', 'test:features']
 
 gem_spec = Gem::Specification.new do |gem_spec|
   gem_spec.name        = &quot;clearance&quot;
-  gem_spec.version     = &quot;0.5.6&quot;
+  gem_spec.version     = &quot;0.6.0&quot;
   gem_spec.summary     = &quot;Rails authentication for developers who write tests.&quot;
   gem_spec.email       = &quot;support@thoughtbot.com&quot;
   gem_spec.homepage    = &quot;http://github.com/thoughtbot/clearance&quot;
@@ -62,7 +61,7 @@ gem_spec = Gem::Specification.new do |gem_spec|
                           &quot;Mike Breen&quot;, &quot;Joe Ferris&quot;, &quot;Bence Nagy&quot;, 
                           &quot;Marcel G&#246;rner&quot;, &quot;Ben Mabey&quot;, &quot;Tim Pope&quot;, 
                           &quot;Eloy Duran&quot;, &quot;Mihai Anca&quot;, &quot;Mark Cornick&quot;]
-  gem_spec.files       = FileList[&quot;[A-Z]*&quot;, &quot;{generators,lib,shoulda_macros,rails}/**/*&quot;]
+  gem_spec.files       = FileList[&quot;[A-Z]*&quot;, &quot;{app,config,generators,lib,shoulda_macros,rails}/**/*&quot;]
 end
 
 desc &quot;Generate a gemspec file&quot;</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 --- !ruby/object:Gem::Specification 
 name: clearance
 version: !ruby/object:Gem::Version 
-  version: 0.5.6
+  version: 0.6.0
 platform: ruby
 authors: 
 - thoughtbot, inc.
@@ -23,7 +23,7 @@ autorequire:
 bindir: bin
 cert_chain: []
 
-date: 2009-04-11 00:00:00 -04:00
+date: 2009-04-21 00:00:00 -04:00
 default_executable: 
 dependencies: []
 
@@ -40,51 +40,40 @@ files:
 - LICENSE
 - Rakefile
 - README.textile
+- TODO.textile
+- app/controllers
+- app/controllers/clearance
+- app/controllers/clearance/confirmations_controller.rb
+- app/controllers/clearance/passwords_controller.rb
+- app/controllers/clearance/sessions_controller.rb
+- app/controllers/clearance/users_controller.rb
+- app/models
+- app/models/clearance_mailer.rb
+- app/views
+- app/views/clearance_mailer
+- app/views/clearance_mailer/change_password.html.erb
+- app/views/clearance_mailer/confirmation.html.erb
+- app/views/passwords
+- app/views/passwords/edit.html.erb
+- app/views/passwords/new.html.erb
+- app/views/sessions
+- app/views/sessions/new.html.erb
+- app/views/users
+- app/views/users/_form.html.erb
+- app/views/users/new.html.erb
+- config/clearance_routes.rb
 - generators/clearance
 - generators/clearance/clearance_generator.rb
 - generators/clearance/lib
 - generators/clearance/lib/insert_commands.rb
 - generators/clearance/lib/rake_commands.rb
 - generators/clearance/templates
-- generators/clearance/templates/app
-- generators/clearance/templates/app/controllers
-- generators/clearance/templates/app/controllers/application.rb
-- generators/clearance/templates/app/controllers/confirmations_controller.rb
-- generators/clearance/templates/app/controllers/passwords_controller.rb
-- generators/clearance/templates/app/controllers/sessions_controller.rb
-- generators/clearance/templates/app/controllers/users_controller.rb
-- generators/clearance/templates/app/models
-- generators/clearance/templates/app/models/clearance_mailer.rb
-- generators/clearance/templates/app/models/user.rb
-- generators/clearance/templates/app/views
-- generators/clearance/templates/app/views/clearance_mailer
-- generators/clearance/templates/app/views/clearance_mailer/change_password.html.erb
-- generators/clearance/templates/app/views/clearance_mailer/confirmation.html.erb
-- generators/clearance/templates/app/views/passwords
-- generators/clearance/templates/app/views/passwords/edit.html.erb
-- generators/clearance/templates/app/views/passwords/new.html.erb
-- generators/clearance/templates/app/views/sessions
-- generators/clearance/templates/app/views/sessions/new.html.erb
-- generators/clearance/templates/app/views/users
-- generators/clearance/templates/app/views/users/_form.html.erb
-- generators/clearance/templates/app/views/users/edit.html.erb
-- generators/clearance/templates/app/views/users/new.html.erb
-- generators/clearance/templates/db
-- generators/clearance/templates/db/migrate
-- generators/clearance/templates/db/migrate/create_users_with_clearance_columns.rb
-- generators/clearance/templates/db/migrate/update_users_with_clearance_columns.rb
+- generators/clearance/templates/factories.rb
+- generators/clearance/templates/migrations
+- generators/clearance/templates/migrations/create_users.rb
+- generators/clearance/templates/migrations/update_users.rb
 - generators/clearance/templates/README
-- generators/clearance/templates/test
-- generators/clearance/templates/test/factories
-- generators/clearance/templates/test/factories/clearance.rb
-- generators/clearance/templates/test/functional
-- generators/clearance/templates/test/functional/confirmations_controller_test.rb
-- generators/clearance/templates/test/functional/passwords_controller_test.rb
-- generators/clearance/templates/test/functional/sessions_controller_test.rb
-- generators/clearance/templates/test/functional/users_controller_test.rb
-- generators/clearance/templates/test/unit
-- generators/clearance/templates/test/unit/clearance_mailer_test.rb
-- generators/clearance/templates/test/unit/user_test.rb
+- generators/clearance/templates/user.rb
 - generators/clearance/USAGE
 - generators/clearance_features
 - generators/clearance_features/clearance_features_generator.rb
@@ -101,29 +90,11 @@ files:
 - generators/clearance_features/templates/features/support/paths.rb
 - generators/clearance_features/USAGE
 - lib/clearance
-- lib/clearance/app
-- lib/clearance/app/controllers
-- lib/clearance/app/controllers/application_controller.rb
-- lib/clearance/app/controllers/confirmations_controller.rb
-- lib/clearance/app/controllers/passwords_controller.rb
-- lib/clearance/app/controllers/sessions_controller.rb
-- lib/clearance/app/controllers/users_controller.rb
-- lib/clearance/app/models
-- lib/clearance/app/models/clearance_mailer.rb
-- lib/clearance/app/models/user.rb
-- lib/clearance/lib
-- lib/clearance/lib/extensions
-- lib/clearance/lib/extensions/errors.rb
-- lib/clearance/lib/extensions/rescue.rb
-- lib/clearance/test
-- lib/clearance/test/functional
-- lib/clearance/test/functional/confirmations_controller_test.rb
-- lib/clearance/test/functional/passwords_controller_test.rb
-- lib/clearance/test/functional/sessions_controller_test.rb
-- lib/clearance/test/functional/users_controller_test.rb
-- lib/clearance/test/unit
-- lib/clearance/test/unit/clearance_mailer_test.rb
-- lib/clearance/test/unit/user_test.rb
+- lib/clearance/authentication.rb
+- lib/clearance/extensions
+- lib/clearance/extensions/errors.rb
+- lib/clearance/extensions/rescue.rb
+- lib/clearance/user.rb
 - lib/clearance.rb
 - shoulda_macros/clearance.rb
 - rails/init.rb</diff>
      <filename>clearance.gemspec</filename>
    </modified>
    <modified>
      <diff>@@ -6,90 +6,30 @@ class ClearanceGenerator &lt; Rails::Generator::Base
 
   def manifest
     record do |m|
-      m.directory File.join(&quot;app&quot;, &quot;controllers&quot;)
-      if Rails.version &gt;= &quot;2.3.0&quot;
-        file = &quot;app/controllers/application_controller.rb&quot;
-      else
-        file = &quot;app/controllers/application.rb&quot;
-      end
-      if File.exists?(file)
-        m.insert_into file, &quot;include Clearance::App::Controllers::ApplicationController&quot;
-      else
-        m.file file, file 
-      end
-
-      [&quot;app/controllers/confirmations_controller.rb&quot;,
-       &quot;app/controllers/passwords_controller.rb&quot;, 
-       &quot;app/controllers/sessions_controller.rb&quot;, 
-       &quot;app/controllers/users_controller.rb&quot;].each do |file|
-        m.file file, file
-      end
+      m.insert_into &quot;app/controllers/application_controller.rb&quot;,
+                    &quot;include Clearance::Authentication&quot;
 
       m.directory File.join(&quot;app&quot;, &quot;models&quot;)
-      [&quot;app/models/user.rb&quot;, &quot;app/models/clearance_mailer.rb&quot;].each do |file|
-        m.file file, file
-      end
-
-      m.directory File.join(&quot;app&quot;, &quot;views&quot;)
-
-      m.directory File.join(&quot;app&quot;, &quot;views&quot;, &quot;passwords&quot;)
-      [&quot;app/views/passwords/new.html.erb&quot;,
-       &quot;app/views/passwords/edit.html.erb&quot;].each do |file|
-        m.file file, file
-      end
-
-      m.directory File.join(&quot;app&quot;, &quot;views&quot;, &quot;sessions&quot;)
-      [&quot;app/views/sessions/new.html.erb&quot;].each do |file|
-        m.file file, file
-      end
-
-      m.directory File.join(&quot;app&quot;, &quot;views&quot;, &quot;clearance_mailer&quot;)
-      [&quot;app/views/clearance_mailer/change_password.html.erb&quot;,
-       &quot;app/views/clearance_mailer/confirmation.html.erb&quot;].each do |file|
-        m.file file, file
-      end
-
-      m.directory File.join(&quot;app&quot;, &quot;views&quot;, &quot;users&quot;)
-      [&quot;app/views/users/_form.html.erb&quot;,
-       &quot;app/views/users/edit.html.erb&quot;,
-       &quot;app/views/users/new.html.erb&quot;].each do |file|
-        m.file file, file
-      end
-
-      m.directory File.join(&quot;test&quot;, &quot;functional&quot;)
-      [&quot;test/functional/confirmations_controller_test.rb&quot;,
-       &quot;test/functional/passwords_controller_test.rb&quot;,
-       &quot;test/functional/sessions_controller_test.rb&quot;,
-       &quot;test/functional/users_controller_test.rb&quot;].each do |file|
-        m.file file, file
-      end
-
-      m.directory File.join(&quot;test&quot;, &quot;unit&quot;)
-      [&quot;test/unit/clearance_mailer_test.rb&quot;,
-       &quot;test/unit/user_test.rb&quot;].each do |file|
-        m.file file, file
-      end
+      m.file &quot;user.rb&quot;, &quot;app/models/user.rb&quot;
 
       m.directory File.join(&quot;test&quot;, &quot;factories&quot;)
-      [&quot;test/factories/clearance.rb&quot;].each do |file|
-        m.file file, file
-      end
+      m.file &quot;factories.rb&quot;, &quot;test/factories/clearance.rb&quot;
 
-      m.route_resources ':passwords'
-      m.route_resource  ':session'
-      m.route_resources ':users, :has_one =&gt; [:password, :confirmation]'
+      m.migration_template &quot;migrations/#{migration_name}.rb&quot;,
+                           'db/migrate',
+                           :migration_file_name =&gt; &quot;clearance_#{migration_name}&quot;
 
-      if ActiveRecord::Base.connection.table_exists?(:users)
-        m.migration_template 'db/migrate/update_users_with_clearance_columns.rb', 
-          'db/migrate', :migration_file_name =&gt; 'create_or_update_users_with_clearance_columns'
-      else
-        m.migration_template 'db/migrate/create_users_with_clearance_columns.rb', 
-          'db/migrate', :migration_file_name =&gt; 'create_or_update_users_with_clearance_columns'
-      end
+      m.readme &quot;README&quot;
+    end
+  end
 
-      m.rake_db_migrate
+  private
 
-      m.readme &quot;README&quot;
+  def migration_name
+    if ActiveRecord::Base.connection.table_exists?(:users)
+      'update_users'
+    else
+      'create_users'
     end
   end
 </diff>
      <filename>generators/clearance/clearance_generator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,42 +3,25 @@
 
 Ok, enough fancy automatic stuff. Time for some old school monkey copy-pasting.
 
-1. For any other file(s) that you already had and didn't want to overwrite, add 
-the corresponding Clearance module. They are namespaced exactly like the 
-directory structure of a Rails app.
-
-Application controller example:
-
-    class ApplicationController &lt; ActionController::Base
-      include Clearance::App::Controllers::ApplicationController
-    end
-
-User model example:
+1. If you already had a User model, include the Clearance::User module now:
 
     class User &lt; ActiveRecord::Base
-      include Clearance::App::Models::User
-    end
-
-User test example:
-
-    class UserTest &lt; ActiveSupport::TestCase
-      include Clearance::Test::Unit::UserTest
+      include Clearance::User
     end
 
-2. You need to define HOST constant in your environments files. 
+2. Define a HOST constant in your environments files.
 In config/environments/test.rb and config/environments/development.rb it can be:
 
     HOST = &quot;localhost&quot;
 
-In production.rb it must be the actual host your application is deployed to. 
+In production.rb it must be the actual host your application is deployed to.
 The constant is used by mailers to generate URLs in emails.
 
-In config/environment.rb:
+3. In config/environment.rb:
 
     DO_NOT_REPLY = &quot;donotreply@example.com&quot;
 
-3. Clearance depends on root_url, so please make sure that it is defined to
-*something* in your config/routes.rb:
+4. Define root_url to *something* in your config/routes.rb:
 
     map.root :controller =&gt; 'home'
 </diff>
      <filename>generators/clearance/templates/README</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 # General
 
 Then /^I should see error messages$/ do
-  response.should contain(/error(s)? prohibited/)
+  assert_match /error(s)? prohibited/m, response.body
 end
 
 # Database</diff>
      <filename>generators/clearance_features/templates/features/step_definitions/clearance_steps.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,15 +1,15 @@
-require 'clearance/lib/extensions/errors'
-require 'clearance/lib/extensions/rescue'
-require 'clearance/app/controllers/application_controller'
-require 'clearance/app/controllers/confirmations_controller'
-require 'clearance/app/controllers/passwords_controller'
-require 'clearance/app/controllers/sessions_controller'
-require 'clearance/app/controllers/users_controller'
-require 'clearance/app/models/clearance_mailer'
-require 'clearance/app/models/user'
-require 'clearance/test/functional/confirmations_controller_test'
-require 'clearance/test/functional/passwords_controller_test'
-require 'clearance/test/functional/sessions_controller_test'
-require 'clearance/test/functional/users_controller_test'
-require 'clearance/test/unit/clearance_mailer_test'
-require 'clearance/test/unit/user_test'
+require 'clearance/extensions/errors'
+require 'clearance/extensions/rescue'
+
+require 'clearance/authentication'
+require 'clearance/user'
+
+class ActionController::Routing::RouteSet
+  def load_routes_with_clearance!
+    clearance_routes = File.join(File.dirname(__FILE__), *%w[.. config clearance_routes.rb])
+    add_configuration_file(clearance_routes) unless configuration_files.include? clearance_routes
+    load_routes_without_clearance!
+  end
+
+  alias_method_chain :load_routes!, :clearance
+end</diff>
      <filename>lib/clearance.rb</filename>
    </modified>
    <modified>
      <diff>@@ -31,10 +31,17 @@ module Clearance
       end
     end
 
-    def should_deny_access_on(command, opts = {})
-      context &quot;on #{command}&quot; do
-        setup { eval command }
-        should_deny_access(opts)
+    # Examples:
+    #   should_deny_access_on :get, :index, :flash =&gt; /not authorized/i
+    #   should_deny_access_on :get, :show, :id =&gt; '1'
+    def should_deny_access_on(http_method, action, opts = {})
+      flash_message = opts.delete(:flash)
+      context &quot;on #{http_method} to #{action}&quot; do
+        setup do
+          send(http_method, action, opts)
+        end
+
+        should_deny_access(:flash =&gt; flash_message)
       end
     end
 </diff>
      <filename>shoulda_macros/clearance.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 class ApplicationController &lt; ActionController::Base
   helper :all
   protect_from_forgery
-  include Clearance::App::Controllers::ApplicationController
+  include Clearance::Authentication
 end</diff>
      <filename>test/rails_root/app/controllers/application_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,4 @@
 ActionController::Routing::Routes.draw do |map|
-  map.resources :users, :has_one =&gt; [:password, :confirmation]
-  map.resources :passwords
-  map.resource  :session
   map.resource  :account
 
   map.root :controller =&gt; 'accounts', :action =&gt; 'edit'</diff>
      <filename>test/rails_root/config/routes.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,10 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require 'test_helper'
 
 class AccountsControllerTest &lt; ActionController::TestCase
+
   public_context do
-    should_deny_access_on 'get :edit'
-    should_deny_access_on 'put :update'
+    should_deny_access_on :get, :edit
+    should_deny_access_on :put, :update
   end
 
   context &quot;on POST to create&quot; do</diff>
      <filename>test/rails_root/test/functional/accounts_controller_test.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>generators/clearance/templates/app/controllers/application.rb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/app/controllers/confirmations_controller.rb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/app/controllers/passwords_controller.rb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/app/controllers/sessions_controller.rb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/app/controllers/users_controller.rb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/app/models/clearance_mailer.rb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/app/models/user.rb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/app/views/clearance_mailer/change_password.html.erb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/app/views/clearance_mailer/confirmation.html.erb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/app/views/passwords/edit.html.erb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/app/views/passwords/new.html.erb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/app/views/sessions/new.html.erb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/app/views/users/_form.html.erb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/app/views/users/edit.html.erb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/app/views/users/new.html.erb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/db/migrate/create_users_with_clearance_columns.rb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/db/migrate/update_users_with_clearance_columns.rb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/test/factories/clearance.rb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/test/functional/confirmations_controller_test.rb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/test/functional/passwords_controller_test.rb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/test/functional/sessions_controller_test.rb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/test/functional/users_controller_test.rb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/test/unit/clearance_mailer_test.rb</filename>
    </removed>
    <removed>
      <filename>generators/clearance/templates/test/unit/user_test.rb</filename>
    </removed>
    <removed>
      <filename>lib/clearance/app/controllers/application_controller.rb</filename>
    </removed>
    <removed>
      <filename>lib/clearance/app/controllers/confirmations_controller.rb</filename>
    </removed>
    <removed>
      <filename>lib/clearance/app/controllers/passwords_controller.rb</filename>
    </removed>
    <removed>
      <filename>lib/clearance/app/controllers/sessions_controller.rb</filename>
    </removed>
    <removed>
      <filename>lib/clearance/app/controllers/users_controller.rb</filename>
    </removed>
    <removed>
      <filename>lib/clearance/app/models/clearance_mailer.rb</filename>
    </removed>
    <removed>
      <filename>lib/clearance/app/models/user.rb</filename>
    </removed>
    <removed>
      <filename>lib/clearance/lib/extensions/errors.rb</filename>
    </removed>
    <removed>
      <filename>lib/clearance/lib/extensions/rescue.rb</filename>
    </removed>
    <removed>
      <filename>lib/clearance/test/functional/confirmations_controller_test.rb</filename>
    </removed>
    <removed>
      <filename>lib/clearance/test/functional/passwords_controller_test.rb</filename>
    </removed>
    <removed>
      <filename>lib/clearance/test/functional/sessions_controller_test.rb</filename>
    </removed>
    <removed>
      <filename>lib/clearance/test/functional/users_controller_test.rb</filename>
    </removed>
    <removed>
      <filename>lib/clearance/test/unit/clearance_mailer_test.rb</filename>
    </removed>
    <removed>
      <filename>lib/clearance/test/unit/user_test.rb</filename>
    </removed>
    <removed>
      <filename>test/rails_root/test/test_helper.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>7680f61dd5628ade00191b79d739b186fbfca6f5</id>
    </parent>
    <parent>
      <id>b947402fd2dfbcb9f0a48dcd093a4ebf48653dfb</id>
    </parent>
  </parents>
  <author>
    <name>Nick Quaranto</name>
    <email>nick@quaran.to</email>
  </author>
  <url>http://github.com/thoughtbot/clearance/commit/698050a67eb18d8af5487dd14562fe37aa109ea9</url>
  <id>698050a67eb18d8af5487dd14562fe37aa109ea9</id>
  <committed-date>2009-04-21T14:50:57-07:00</committed-date>
  <authored-date>2009-04-21T14:50:57-07:00</authored-date>
  <message>Merging in engine branch</message>
  <tree>d209378426f29ae2226fae6a1f7ec6b89b40248f</tree>
  <committer>
    <name>Nick Quaranto</name>
    <email>nick@quaran.to</email>
  </committer>
</commit>
