<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>bin/common.rb</filename>
    </added>
    <added>
      <filename>tasks/merb.thor/app_script.rb</filename>
    </added>
    <added>
      <filename>tasks/merb.thor/common.rb</filename>
    </added>
    <added>
      <filename>tasks/merb.thor/gem_ext.rb</filename>
    </added>
    <added>
      <filename>tasks/merb.thor/main.thor</filename>
    </added>
    <added>
      <filename>tasks/merb.thor/ops.rb</filename>
    </added>
    <added>
      <filename>tasks/merb.thor/utils.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -16,6 +16,9 @@ src/*
 .hgignore
 .hg/*
 .svn/*
+gems/gems/*
+gems/specifications/*
+merb_profile_results
 config/database.yml
 pkg/*
 app/plugins</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1,2 @@
-Autotest.add_discovery { &quot;merb&quot; }
\ No newline at end of file
+Autotest.add_discovery { &quot;merb&quot; }
+Autotest.add_discovery { &quot;rspec&quot; }</diff>
      <filename>autotest/discover.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,81 +2,84 @@
 require 'autotest'
 
 class Autotest::Merb &lt; Autotest
-  
+
   # +model_tests_dir+::      the directory to find model-centric tests
   # +controller_tests_dir+:: the directory to find controller-centric tests
   # +view_tests_dir+::       the directory to find view-centric tests
   # +fixtures_dir+::         the directory to find fixtures in
   attr_accessor :model_tests_dir, :controller_tests_dir, :view_tests_dir, :fixtures_dir
-  
+
   def initialize
     super
-    
+
     initialize_test_layout
-    
+
     # Ignore any happenings in these directories
-    add_exception %r%^\./(?:doc|log|public|tmp)%
-    
+    add_exception %r%^\./(?:doc|log|public|tmp|\.git|\.hg|\.svn|framework|gems|schema|\.DS_Store|autotest|bin|.*\.sqlite3)%
+    # Ignore SCM directories and custom Autotest mappings
+    %w[.svn .hg .git .autotest].each { |exception| add_exception(exception) }
+
+
     # Ignore any mappings that Autotest may have already set up
     clear_mappings
-    
-    # Any changes to a file in the root of the 'lib' directory will run any 
+
+    # Any changes to a file in the root of the 'lib' directory will run any
     # model test with a corresponding name.
     add_mapping %r%^lib\/.*\.rb% do |filename, _|
       files_matching Regexp.new([&quot;^#{model_test_for(filename)}$&quot;])
     end
-    
-    # Any changes to a fixture will run corresponding view, controller and 
+
+    # Any changes to a fixture will run corresponding view, controller and
     # model tests
     add_mapping %r%^#{fixtures_dir}/(.*)s.yml% do |_, m|
       [
-        model_test_for(m[1]), 
-        controller_test_for(m[1]), 
+        model_test_for(m[1]),
+        controller_test_for(m[1]),
         view_test_for(m[1])
       ]
     end
-    
-    # Any change to a test or test will cause it to be run
+
+    # Any change to a test will cause it to be run
     add_mapping %r%^test/(unit|models|integration|controllers|views|functional)/.*rb$% do |filename, _|
       filename
     end
-    
+
     # Any change to a model will cause it's corresponding test to be run
     add_mapping %r%^app/models/(.*)\.rb$% do |_, m|
       model_test_for(m[1])
     end
-    
-    # Any change to the global helper will result in all view and controller 
+
+    # Any change to the global helper will result in all view and controller
     # tests being run
     add_mapping %r%^app/helpers/global_helpers.rb% do
       files_matching %r%^test/(views|functional|controllers)/.*_test\.rb$%
     end
-    
-    # Any change to a helper will run it's corresponding view and controller 
-    # tests, unless the helper is the global helper. Changes to the global 
+
+    # Any change to a helper will run it's corresponding view and controller
+    # tests, unless the helper is the global helper. Changes to the global
     # helper run all view and controller tests.
     add_mapping %r%^app/helpers/(.*)_helper(s)?.rb% do |_, m|
       if m[1] == &quot;global&quot; then
         files_matching %r%^test/(views|functional|controllers)/.*_test\.rb$%
       else
         [
-          view_test_for(m[1]), 
+          view_test_for(m[1]),
           controller_test_for(m[1])
         ]
       end
     end
-    
-    # Changes to views result in their corresponding view and controller test 
+
+    # Changes to views result in their corresponding view and controller test
     # being run
     add_mapping %r%^app/views/(.*)/% do |_, m|
       [
-        view_test_for(m[1]), 
+        view_test_for(m[1]),
         controller_test_for(m[1])
       ]
     end
-    
-    # Changes to a controller result in its corresponding test being run. If 
-    # the controller is the exception or application controller, all 
+
+    # Changes to a controller result in its corresponding test being run. If
+    # the controller is the exception or application controller, all
     # controller tests are run.
     add_mapping %r%^app/controllers/(.*)\.rb$% do |_, m|
       if [&quot;application&quot;, &quot;exception&quot;].include?(m[1])
@@ -91,16 +94,16 @@ class Autotest::Merb &lt; Autotest
       files_matching %r%^test/(controllers|views|functional)/.*_test\.rb$%
     end
 
-    # If any of the major files governing the environment are altered, run 
+    # If any of the major files governing the environment are altered, run
     # everything
     add_mapping %r%^test/test_helper.rb|config/(init|rack|environments/test.rb|database.yml)% do # FIX
       files_matching %r%^test/(unit|models|controllers|views|functional)/.*_test\.rb$%
     end
   end
-  
+
 private
 
-  # Determines the paths we can expect tests or specs to reside, as well as 
+  # Determines the paths we can expect tests or specs to reside, as well as
   # corresponding fixtures.
   def initialize_test_layout
     self.model_tests_dir      = &quot;test/unit&quot;
@@ -108,19 +111,19 @@ private
     self.view_tests_dir       = &quot;test/views&quot;
     self.fixtures_dir         = &quot;test/fixtures&quot;
   end
-  
-  # Given a filename and the test type, this method will return the 
+
+  # Given a filename and the test type, this method will return the
   # corresponding test's or spec's name.
-  # 
+  #
   # ==== Arguments
   # +filename+&lt;String&gt;:: the file name of the model, view, or controller
   # +kind_of_test+&lt;Symbol&gt;:: the type of test we that we should run
-  # 
+  #
   # ==== Returns
   # String:: the name of the corresponding test or spec
-  # 
+  #
   # ==== Example
-  # 
+  #
   #   &gt; test_for(&quot;user&quot;, :model)
   #   =&gt; &quot;user_test.rb&quot;
   #   &gt; test_for(&quot;login&quot;, :controller)
@@ -133,17 +136,17 @@ private
     name &lt;&lt; &quot;test&quot;
     return name.join(&quot;_&quot;) + &quot;.rb&quot;
   end
-  
+
   def model_test_for(filename)
     [model_tests_dir, test_for(filename, :model)].join(&quot;/&quot;)
   end
-  
+
   def controller_test_for(filename)
     [controller_tests_dir, test_for(filename, :controller)].join(&quot;/&quot;)
   end
-  
+
   def view_test_for(filename)
     [view_tests_dir, test_for(filename, :view)].join(&quot;/&quot;)
   end
-  
-end
\ No newline at end of file
+
+end</diff>
      <filename>autotest/merb.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,18 +3,18 @@ require 'autotest'
 
 class RspecCommandError &lt; StandardError; end
 
-# This class maps your application's structure so Autotest can understand what 
+# This class maps your application's structure so Autotest can understand what
 # specs to run when files change.
 #
-# Fixtures are _not_ covered by this class. If you change a fixture file, you 
-# will have to run your spec suite manually, or, better yet, provide your own 
+# Fixtures are _not_ covered by this class. If you change a fixture file, you
+# will have to run your spec suite manually, or, better yet, provide your own
 # Autotest map explaining how your fixtures are set up.
 class Autotest::MerbRspec &lt; Autotest
   def initialize
     super
 
     # Ignore any happenings in these directories
-    add_exception %r%^\./(?:doc|log|public|tmp|\.git|\.hg|\.svn|framework|gems|schema|\.DS_Store|autotest|bin|.*\.sqlite3)% 
+    add_exception %r%^\./(?:doc|log|public|tmp|\.git|\.hg|\.svn|framework|gems|schema|\.DS_Store|autotest|bin|.*\.sqlite3|.*\.thor)%
     # Ignore SCM directories and custom Autotest mappings
     %w[.svn .hg .git .autotest].each { |exception| add_exception(exception) }
 
@@ -44,7 +44,7 @@ class Autotest::MerbRspec &lt; Autotest
     # Any change to global_helpers will result in all view and controller
     # tests being run
     add_mapping %r%^app/helpers/global_helpers\.rb% do
-      files_matching %r%^spec/(views|controllers|helpers)/.*_spec\.rb$%
+      files_matching %r%^spec/(views|controllers|helpers|requests)/.*_spec\.rb$%
     end
 
     # Any change to a helper will cause its spec to be run
@@ -75,7 +75,7 @@ class Autotest::MerbRspec &lt; Autotest
 
     # If any of the major files governing the environment are altered, run
     # everything
-    add_mapping %r%^config/(init|rack|environments/test).*\.rb|database\.yml% do 
+    add_mapping %r%^config/(init|rack|environments/test).*\.rb|database\.yml% do
       all_specs
     end
   end</diff>
      <filename>autotest/merb_rspec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,25 +1,32 @@
-# For more information about each component, please read http://wiki.merbivore.com/faqs/merb_components
-dependency &quot;merb-action-args&quot;
-dependency &quot;merb-assets&quot;
+# dependencies are generated using a strict version, don't forget to edit the dependency versions when upgrading.
+merb_gems_version = &quot;1.0.9&quot;
+dm_gems_version   = &quot;0.9.10&quot;
+do_gems_version   = &quot;0.9.11&quot;
+
+dependency &quot;merb-core&quot;, merb_gems_version
+dependency &quot;merb-action-args&quot;, merb_gems_version
+dependency &quot;merb-assets&quot;, merb_gems_version
 dependency &quot;merb-cache&quot;
-dependency &quot;merb-helpers&quot;
-dependency &quot;merb-mailer&quot;
-dependency &quot;merb-slices&quot;
-dependency &quot;merb-auth-core&quot;
-dependency &quot;merb-auth-more&quot;
-dependency &quot;merb-auth-slice-password&quot;
-dependency &quot;merb-param-protection&quot;
-dependency &quot;merb-exceptions&quot;
- 
-dependency &quot;dm-core&quot;
-dependency &quot;dm-aggregates&quot;
-dependency &quot;dm-migrations&quot;
-dependency &quot;dm-timestamps&quot;
-dependency &quot;dm-types&quot;
-dependency &quot;dm-validations&quot;
+dependency &quot;merb-helpers&quot;, merb_gems_version
+dependency &quot;merb-mailer&quot;, merb_gems_version
+dependency &quot;merb-slices&quot;, merb_gems_version
+dependency &quot;merb-auth-core&quot;, merb_gems_version
+dependency &quot;merb-auth-more&quot;, merb_gems_version
+dependency &quot;merb-auth-slice-password&quot;, merb_gems_version
+dependency &quot;merb-param-protection&quot;, merb_gems_version
+dependency &quot;merb-exceptions&quot;, merb_gems_version
+
+dependency &quot;data_objects&quot;, do_gems_version
+dependency &quot;dm-core&quot;, dm_gems_version
+dependency &quot;dm-aggregates&quot;, dm_gems_version
+dependency &quot;dm-migrations&quot;, dm_gems_version
+dependency &quot;dm-timestamps&quot;, dm_gems_version
+dependency &quot;dm-types&quot;, dm_gems_version
+dependency &quot;dm-validations&quot;, dm_gems_version
+dependency &quot;dm-serializer&quot;, dm_gems_version
 dependency &quot;dm-is-paginated&quot;
 
+dependency &quot;merb_datamapper&quot;, merb_gems_version
 dependency &quot;tzinfo&quot;
 
-gem &quot;archive-tar-minitar&quot;
-require &quot;archive/tar/minitar&quot;
\ No newline at end of file
+dependency &quot;archive-tar-minitar&quot;, :require_as =&gt; 'archive/tar/minitar'</diff>
      <filename>config/dependencies.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ Merb::Config.use { |c|
   c[:exception_details] = false
   c[:reload_classes] = false
   c[:log_level] = :error
-  
+
   c[:log_file]  = Merb.root / &quot;log&quot; / &quot;production.log&quot;
   # or redirect logger using IO handle
   # c[:log_stream] = STDOUT</diff>
      <filename>config/environments/production.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,9 @@
+require 'config/dependencies.rb'
+
+use_orm :datamapper
+use_test :rspec
+use_template_engine :erb
+
 # Make the app's &quot;gems&quot; directory a place where gems are loaded from
 Gem.clear_paths
 Gem.path.unshift(Merb.root / &quot;gems&quot;)
@@ -6,40 +12,27 @@ Gem.path.unshift(Merb.root / &quot;gems&quot;)
 $LOAD_PATH.unshift(Merb.root / &quot;lib&quot;)
 
 Merb::Config.use do |c|
-  
+
   ### Sets up a custom session id key, if you want to piggyback sessions of other applications
   ### with the cookie session store. If not specified, defaults to '_session_id'.
   # c[:session_id_key] = '_session_id'
-  
+
   c[:session_secret_key]  = '95bf50e5bb36b2a455611792c271f2581e6b21db'
   c[:session_store] = 'datamapper'
   c[:use_mutex] = false
   c[:logfile] = Merb.log_path + &quot;/merb.log&quot;
-  
-end
-
-### Merb doesn't come with database support by default.  You need
-### an ORM plugin.  Install one, and uncomment one of the following lines,
-### if you need a database.
 
-### Uncomment for DataMapper ORM
-require &quot;dm-core&quot;
-use_orm :datamapper
-
-use_test :test_unit
-# use_test :rspec
-
-require 'config/dependencies.rb'
+end
 
 Merb::BootLoader.before_app_loads do
   Dir.glob(&quot;app/models/*/*.rb&quot;).each { |f| require f }
   Merb::Authentication.user_class = Feather::User
-  
+
   Merb::Slices.config[:merb_auth] = {
     :layout =&gt; :admin,
     :login_field =&gt; :login
   }
-  
+
   require &quot;tzinfo&quot;
   require &quot;net/http&quot;
   require &quot;uri&quot;
@@ -57,7 +50,7 @@ end
 
 Merb::BootLoader.after_app_loads do
   Merb::Mailer.delivery_method = :sendmail
-  
+
   Merb::Cache.setup do
     register(:feather, Merb::Cache::MemcachedStore, :namespace =&gt; &quot;feather&quot;)
   end
@@ -70,4 +63,4 @@ end
 #   :store =&gt; &quot;file&quot;,
 #   :cache_directory =&gt; Merb.root_path(&quot;tmp/cache&quot;),
 #   :disable =&gt; &quot;development&quot;
-# }
\ No newline at end of file
+# }</diff>
      <filename>config/init.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,3 @@
-
 # use PathPrefix Middleware if :path_prefix is set in Merb::Config
 if prefix = ::Merb::Config[:path_prefix]
   use Merb::Rack::PathPrefix, prefix
@@ -9,4 +8,4 @@ end
 use Merb::Rack::Static, Merb.dir_for(:public)
 
 # this is our main merb application
-run Merb::Rack::Application.new
\ No newline at end of file
+run Merb::Rack::Application.new</diff>
      <filename>config/rack.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,7 @@
 #
 #   match(&quot;/books/:book_id/:action&quot;).
 #     to(:controller =&gt; &quot;books&quot;)
-#   
+#
 # Or, use placeholders in the &quot;to&quot; results for more complicated routing, e.g.:
 #
 #   match(&quot;/admin/:module/:controller/:action/:id&quot;).
@@ -34,10 +34,10 @@ Merb::Router.prepare do |router|
   rescue Exception =&gt; e
     Merb.logger.info(&quot;Error loading plugins: #{e.message}&quot;)
   end
-  
+
   # Load all plugin routes
   Feather::Hooks::Routing.load_routes(router)
-  
+
   slice(:merb_auth_slice_password, :name_prefix =&gt; nil, :path_prefix =&gt; &quot;&quot;)
   # This deferred route allows permalinks to be handled, without a separate rack handler
   match(/.*/).defer_to do |request, params|
@@ -45,7 +45,7 @@ Merb::Router.prepare do |router|
       {:controller =&gt; &quot;feather/articles&quot;, :action =&gt; &quot;show&quot;, :id =&gt; id}
     end
   end
-  
+
   # Admin namespace
   namespace &quot;feather/admin&quot;, :path =&gt; &quot;admin&quot;, :name_prefix =&gt; &quot;admin&quot; do
     resource :configuration
@@ -60,9 +60,9 @@ Merb::Router.prepare do |router|
   match(&quot;/:year&quot;).to(:controller =&gt; &quot;feather/articles&quot;, :action =&gt; &quot;index&quot;).name(:year)
   match(&quot;/:year/:month&quot;).to(:controller =&gt; &quot;feather/articles&quot;, :action =&gt; &quot;index&quot;).name(:month)
   match(&quot;/:year/:month/:day&quot;).to(:controller =&gt; &quot;feather/articles&quot;, :action =&gt; &quot;index&quot;).name(:day)
-  
+
   # Default routes, and index
-  default_routes  
+  default_routes
   match(&quot;/&quot;).to(:controller =&gt; 'feather/articles', :action =&gt;'index')
 end
 </diff>
      <filename>config/router.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,10 +5,10 @@ module Merb
       return nil unless user
       user.id
     end
-  
+
     def fetch_user(session_info)
       ::Feather::User.get(session_info)
     end
-    
+
   end # Authentication
-end
\ No newline at end of file
+end</diff>
      <filename>lib/merb_auth_setup.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,19 +4,19 @@
 #
 # To change the parameter names for the password or login field you may set either of these two options
 #
-# Merb::Plugins.config[:&quot;merb-auth&quot;][:login_param]    = :email 
+# Merb::Plugins.config[:&quot;merb-auth&quot;][:login_param]    = :email
 # Merb::Plugins.config[:&quot;merb-auth&quot;][:password_param] = :my_password_field_name
 
 begin
-  # Sets the default class ofr authentication.  This is primarily used for 
+  # Sets the default class ofr authentication.  This is primarily used for
   # Plugins and the default strategies
-  Merb::Authentication.user_class = User 
-  
-  
+  Merb::Authentication.user_class = User
+
+
   # Mixin the salted user mixin
   require 'merb-auth-more/mixins/salted_user'
   Merb::Authentication.user_class.class_eval{ include Merb::Authentication::Mixins::SaltedUser }
-    
+
   # Setup the session serialization
   class Merb::Authentication
 
@@ -28,16 +28,16 @@ begin
       user.nil? ? user : user.id
     end
   end
-  
+
 rescue
   Merb.logger.error &lt;&lt;-TEXT
-  
-    You need to setup some kind of user class with merb-auth.  
+
+    You need to setup some kind of user class with merb-auth.
     Merb::Authentication.user_class = User
-    
-    If you want to fully customize your authentication you should use merb-core directly.  
-    
-    See lib/authentication/setup.rb and strategies.rb to customize your setup
+
+    If you want to fully customize your authentication you should use merb-core directly.
+
+    See merb/merb-auth/setup.rb and strategies.rb to customize your setup
 
     TEXT
 end</diff>
      <filename>merb/merb-auth/setup.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
-# This file is specifically for you to define your strategies 
+# This file is specifically for you to define your strategies
 #
-# You should declare you strategies directly and/or use 
+# You should declare you strategies directly and/or use
 # Merb::Authentication.activate!(:label_of_strategy)
 #
 # To load and set the order of strategy processing
@@ -8,4 +8,4 @@
 Merb::Slices::config[:&quot;merb-auth-slice-password&quot;][:no_default_strategies] = true
 
 Merb::Authentication.activate!(:default_password_form)
-Merb::Authentication.activate!(:default_basic_auth)
\ No newline at end of file
+Merb::Authentication.activate!(:default_basic_auth)</diff>
      <filename>merb/merb-auth/strategies.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,9 @@
 module Merb
   module Session
-    
-    # The Merb::Session module gets mixed into Merb::SessionContainer to allow 
-    # app-level functionality; it will be included and methods will be available 
+
+    # The Merb::Session module gets mixed into Merb::SessionContainer to allow
+    # app-level functionality; it will be included and methods will be available
     # through request.session as instance methods.
-    
+
   end
-end
\ No newline at end of file
+end</diff>
      <filename>merb/session/session.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,15 +1,15 @@
 require File.join(File.dirname(__FILE__), &quot;../..&quot;, 'spec_helper.rb')
 
-module Admin
+module Feather::Admin
   describe Articles do
     before(:each) do
       @article = mock(:article)
       @articles = [@article]
     end
-    
+
     describe &quot;/admin/articles&quot; do
       it &quot;should get all articles in descending created order&quot; do
-        Article.should_receive(:all).with(:order =&gt; [:created_at.desc], :offset =&gt; 0, :limit =&gt; 10).and_return(@articles)
+        ::Feather::Article.should_receive(:all).with(:order =&gt; [:created_at.desc], :offset =&gt; 0, :limit =&gt; 10).and_return(@articles)
         controller = dispatch_to(Articles, :index) do |controller|
           controller.should_receive(:login_required).and_return(true)
           controller.should_receive(:display).with(@articles)
@@ -21,7 +21,7 @@ module Admin
 
     describe &quot;/admin/articles/1&quot; do
       it &quot;should display the article matching the id&quot; do
-        Article.should_receive(&quot;[]&quot;).with(&quot;1&quot;).and_return(@article)
+        ::Feather::Article.should_receive(&quot;[]&quot;).with(&quot;1&quot;).and_return(@article)
         controller = dispatch_to(Articles, :show, :id =&gt; &quot;1&quot;) do |controller|
           controller.should_receive(:login_required).and_return(true)
           controller.should_receive(:display).with(@article)</diff>
      <filename>spec/controllers/admin/articles_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require File.join(File.dirname(__FILE__), &quot;../..&quot;, 'spec_helper.rb')
 
-module Admin
+module Feather::Admin
   describe Configurations do
     before(:each) do
       @configuration = mock(:configuration)
@@ -8,7 +8,7 @@ module Admin
 
     describe &quot;/admin/configurations&quot; do
       it &quot;should get current configuration&quot; do
-        Configuration.stub!(:current).and_return(@configuration)
+        ::Feather::Configuration.stub!(:current).and_return(@configuration)
         controller = dispatch_to(Configurations, :show) do |controller|
           controller.should_receive(:login_required).and_return(true)
           controller.should_receive(:display).with(@configuration)</diff>
      <filename>spec/controllers/admin/configurations_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,15 +1,15 @@
 require File.join(File.dirname(__FILE__), &quot;../..&quot;, 'spec_helper.rb')
 
-module Admin
-  describe Dashboard do
+module Feather::Admin
+  describe Dashboards do
     before(:each) do
       @activity = [mock(:activity)]
     end
 
     describe &quot;/admin&quot; do
       it &quot;should request dashboard&quot; do
-        Activity.should_receive(:all).with(:order =&gt; [:created_at.desc], :limit =&gt; 5).and_return(@activity)
-        controller = dispatch_to(Dashboard, :index) do |controller|
+        ::Feather::Activity.should_receive(:all).with(:order =&gt; [:created_at.desc], :limit =&gt; 5).and_return(@activity)
+        controller = dispatch_to(Dashboards, :index) do |controller|
           controller.should_receive(:login_required).and_return(true)
           controller.should_receive(:display).with(@activity)
         end</diff>
      <filename>spec/controllers/admin/dashboard_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,15 +1,15 @@
 require File.join(File.dirname(__FILE__), &quot;../..&quot;, 'spec_helper.rb')
 
-module Admin
+module Feather::Admin
   describe Plugins do
     before(:each) do
       @plugin = mock(:plugin)
       @plugins = [@plugin]
     end
-    
+
     describe &quot;/admin/plugins&quot; do
       it &quot;should get all plugins&quot; do
-        Plugin.should_receive(:all).and_return(@plugins)
+        ::Feather::Plugin.should_receive(:all).and_return(@plugins)
         controller = dispatch_to(Plugins, :index) do |controller|
           controller.should_receive(:login_required).and_return(true)
           controller.should_receive(:load_plugins).and_return(true)
@@ -22,7 +22,7 @@ module Admin
 
     describe &quot;/admin/plugins/1&quot; do
       it &quot;should display the plugin matching the id&quot; do
-        Plugin.should_receive(&quot;[]&quot;).with(&quot;1&quot;).and_return(@plugin)
+        ::Feather::Plugin.should_receive(&quot;[]&quot;).with(&quot;1&quot;).and_return(@plugin)
         controller = dispatch_to(Plugins, :show, :id =&gt; &quot;1&quot;) do |controller|
           controller.should_receive(:login_required).and_return(true)
           controller.should_receive(:load_plugins).and_return(true)</diff>
      <filename>spec/controllers/admin/plugins_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,15 +1,15 @@
 require File.join(File.dirname(__FILE__), &quot;..&quot;, 'spec_helper.rb')
 
-describe Articles do
+describe Feather::Articles do
   before(:each) do
     @article = mock(:article)
     @articles = [@article]
   end
-  
+
   describe &quot;/&quot; do
     it &quot;should return recent articles&quot; do
-      Article.should_receive(:find_recent).and_return @articles
-      controller = dispatch_to(Articles, :index) do |controller|
+      Feather::Article.should_receive(:find_recent).and_return @articles
+      controller = dispatch_to(Feather::Articles, :index) do |controller|
         controller.expire_all_pages
         controller.should_receive(:display).with(@articles)
       end</diff>
      <filename>spec/controllers/articles_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
 require File.join(File.dirname(__FILE__), &quot;../..&quot;, 'spec_helper.rb')
 
-describe Merb::Admin::ArticlesHelper do
+describe Merb::Feather::Admin::ArticlesHelper do
 end</diff>
      <filename>spec/helpers/admin/articles_helper_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
 require File.join(File.dirname(__FILE__), &quot;../..&quot;, 'spec_helper.rb')
 
-describe Merb::Admin::ConfigurationsHelper do
+describe Merb::Feather::Admin::ConfigurationsHelper do
 end</diff>
      <filename>spec/helpers/admin/configurations_helper_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
 require File.join(File.dirname(__FILE__), &quot;../..&quot;, 'spec_helper.rb')
 
-describe Merb::Admin::DashboardHelper do
+describe Merb::Feather::Admin::DashboardHelper do
 end</diff>
      <filename>spec/helpers/admin/dashboard_helper_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
 require File.join(File.dirname(__FILE__), &quot;../..&quot;, 'spec_helper.rb')
 
-describe Merb::Admin::PluginsHelper do
+describe Merb::Feather::Admin::PluginsHelper do
 end</diff>
      <filename>spec/helpers/admin/plugins_helper_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
 require File.join(File.dirname(__FILE__), &quot;..&quot;, 'spec_helper.rb')
 
-describe Merb::ArticlesHelper do
+describe Merb::Feather::ArticlesHelper do
 end</diff>
      <filename>spec/helpers/articles_helper_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,14 +1,14 @@
 require File.join( File.dirname(__FILE__), &quot;..&quot;, &quot;spec_helper&quot; )
 
-describe Article do
+describe Feather::Article do
   before(:all) do
     @article = mock(:article)
     @articles = [@article]
     end
-    
-    describe Article do
+
+    describe Feather::Article do
       it 'should create a new article' do
-        b = Article.new
+        b = Feather::Article.new
         b.user_id = 1
         b.title = &quot;hai&quot;
         b.content = &quot;bai&quot;</diff>
      <filename>spec/models/article_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,22 @@
-$TESTING=true
 require 'rubygems'
+
+# Add the local gems dir if found within the app root; any dependencies loaded
+# hereafter will try to load from the local gems before loading system gems.
+if (local_gem_dir = File.join(File.dirname(__FILE__), '..', 'gems')) &amp;&amp; $BUNDLE.nil?
+  $BUNDLE = true; Gem.clear_paths; Gem.path.unshift(local_gem_dir)
+end
+
 require 'merb-core'
+require &quot;spec&quot; # Satisfies Autotest and anyone else not using the Rake tasks
 
-Merb.start_environment :environment =&gt; (ENV['MERB_ENV'] || 'test'), :merb_root =&gt; File.join(File.dirname(__FILE__), &quot;..&quot; )
+Merb.start_environment(:testing =&gt; true, :adapter =&gt; 'runner', :environment =&gt; ENV['MERB_ENV'] || 'test')
 
 Spec::Runner.configure do |config|
   config.include(Merb::Test::ViewHelper)
   config.include(Merb::Test::RouteHelper)
   config.include(Merb::Test::ControllerHelper)
+
+  config.before(:all) do
+    DataMapper.auto_migrate! if Merb.orm == :datamapper
+  end
 end</diff>
      <filename>spec/spec_helper.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>autotest/rspec.rb</filename>
    </removed>
    <removed>
      <filename>config/dependencies.yml</filename>
    </removed>
    <removed>
      <filename>tasks/merb.thor</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>305523dd0b660080b14e4933d9ea4afab590acd5</id>
    </parent>
  </parents>
  <author>
    <name>Alex Coles</name>
    <email>alex@alexcolesportfolio.com</email>
  </author>
  <url>http://github.com/mleung/feather/commit/486e5c02dcae93c1b9485599b576620d1d0c0190</url>
  <id>486e5c02dcae93c1b9485599b576620d1d0c0190</id>
  <committed-date>2009-03-13T10:59:31-07:00</committed-date>
  <authored-date>2009-03-13T10:26:00-07:00</authored-date>
  <message>Upgrade to bring app in line with latest Merb 1.0.9 series

* Remove dependencies.yml, update dependencies.rb to use
  strict versions (so its Merb bundler compatible).
* Reorganize init.rb and spec_helper.rb.
* Update thor scripts.
* Update autotest config.
* Cleanup whitespace.
* Fix uninitialized constant errors in specs (don't actually
  fix the specs themselves -- they're quite broken).

Signed-off-by: Alex Coles &lt;alex@alexcolesportfolio.com&gt;</message>
  <tree>9a510abfe7c1b493b25cbb920b52d70d591c2e79</tree>
  <committer>
    <name>Alex Coles</name>
    <email>alex@alexcolesportfolio.com</email>
  </committer>
</commit>
