<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>merb-core/spec/Gemfile</filename>
    </added>
    <added>
      <filename>merb-core/spec/public/webrat/test_app/Gemfile</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -16,8 +16,8 @@ require __DIR__ + &quot;/tools/annotation_extract&quot;
 
 include FileUtils
 
-require &quot;lib/merb-core/version&quot;
-require 'lib/merb-core/tasks/merb_rake_helper'
+require __DIR__ + &quot;/lib/merb-core/version&quot;
+require __DIR__ + &quot;/lib/merb-core/tasks/merb_rake_helper&quot;
 
 ##############################################################################
 # Package &amp;&amp; release</diff>
      <filename>merb-core/Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,5 @@
 #!/usr/bin/env ruby
 
-require 'rubygems'
-require 'bundler'
 require 'merb-core'
 
 ARGV.push '-H' if ARGV[0] &amp;&amp; ARGV[0] =~ /^[^-]/</diff>
      <filename>merb-core/bin/merb</filename>
    </modified>
    <modified>
      <diff>@@ -1,20 +1,19 @@
 # require 'merb' must happen after Merb::Config is instantiated
-require &quot;rubygems&quot;
 
 # 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.
 root_key = %w[-m --merb-root].detect { |o| ARGV.index(o) }
 root = ARGV[ARGV.index(root_key) + 1] if root_key
 root = root.to_a.empty? ? Dir.getwd : root
-if File.directory?(gems_dir = File.join(root, &quot;gems&quot;)) &amp;&amp; !$BUNDLE
-  $BUNDLE = true; Gem.clear_paths; Gem.path.unshift(gems_dir)
+if File.directory?(gems_dir = File.join(root, &quot;vendor&quot;, &quot;gems&quot;)) &amp;&amp; !$BUNDLE
   # Warn if local merb-core is available but not loaded.
   if File.expand_path($0).index(root) != 0 &amp;&amp; 
     (local_mc = Dir[File.join(gems_dir, &quot;specifications&quot;, &quot;merb-core-*.gemspec&quot;)].last)
-    puts &quot;Warning: please use bin/#{File.basename($0)} to load #{File.basename(local_mc, &quot;.gemspec&quot;)} from ./gems&quot;
+    puts &quot;Warning: please use bin/#{File.basename($0)} to load #{File.basename(local_mc, &quot;.gemspec&quot;)} from ./vendor/gems&quot;
   end
 end
 
+require 'bundler'
 require &quot;thread&quot;
 require &quot;set&quot;
 require &quot;fileutils&quot;</diff>
      <filename>merb-core/lib/merb-core.rb</filename>
    </modified>
    <modified>
      <diff>@@ -362,6 +362,7 @@ class Merb::BootLoader::Dependencies &lt; Merb::BootLoader
   # Array[Gem::Dependency]:: The dependencies registered in init.rb.
   #
   # :api: plugin
+  # FIXME: PK: This should go, there is no need for this anymore?
   cattr_accessor :dependencies
   self.dependencies = []
 
@@ -389,8 +390,8 @@ class Merb::BootLoader::Dependencies &lt; Merb::BootLoader
       load_env_config
     end
     expand_ruby_path
-    enable_json_gem unless Merb::disabled?(:json)
     load_dependencies
+    enable_json_gem unless Merb::disabled?(:json)
     update_logger
     nil
   end
@@ -402,7 +403,21 @@ class Merb::BootLoader::Dependencies &lt; Merb::BootLoader
   #
   # :api: private
   def self.load_dependencies
-    Bundler.require_env(Merb.environment)
+    begin
+      if (ENV['DEBUG'] || $DEBUG || Merb::Config[:verbose]) &amp;&amp; Merb.logger
+        if Merb::Config[:gemfile]
+          Merb.logger.debug!(&quot;Loading Gemfile from #{Merb::Config[:gemfile]}&quot;)
+        else
+          Merb.logger.debug!(&quot;Loading default Gemfile from Merb.root/Gemfile&quot;)
+        end
+      end
+      
+      Bundler::Environment.load(Merb::Config[:gemfile]).require_env(Merb.environment)
+    rescue Bundler::DefaultManifestNotFound =&gt; e
+      Merb.fatal! &quot;You didn't create Bundler Gemfile manifest or you are not &quot; \
+                  &quot;in a Merb application. If you are trying to create a new &quot; \
+                  &quot;merb application, use merb-gen app.&quot;
+    end
     nil
   end
 
@@ -416,6 +431,7 @@ class Merb::BootLoader::Dependencies &lt; Merb::BootLoader
     require &quot;json/ext&quot;
   rescue LoadError
     require &quot;json/pure&quot;
+    # FIXME: PK: Remove this and add the json 1.1.7 dependency instead
     require &quot;merb-core/core_ext/json_pure_fix&quot;
   end
 </diff>
      <filename>merb-core/lib/merb-core/bootloader.rb</filename>
    </modified>
    <modified>
      <diff>@@ -29,7 +29,8 @@ module Merb
           :disabled_components    =&gt; Merb.on_windows? ? [:signals] : [],
           :deferred_actions       =&gt; [],
           :verbose                =&gt; false,
-          :name                   =&gt; &quot;merb&quot;
+          :name                   =&gt; &quot;merb&quot;,
+          :gemfile                =&gt; nil
         }
       end
 </diff>
      <filename>merb-core/lib/merb-core/config.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,9 +3,6 @@ module Kernel
   # after the logger has been instantiated and the framework directory
   # structure is defined.
   #
-  # If that has already happened, the gem will be activated
-  # immediately, but it will still be registered.
-  # 
   # ==== Parameters
   # name&lt;String&gt; The name of the gem to load.
   # *ver&lt;Gem::Requirement, Gem::Version, Array, #to_str&gt;
@@ -18,68 +15,13 @@ module Kernel
   # :immediate   when true, gem is loaded immediately even if framework is not yet ready.
   # :require_as  file name to require for this gem.
   #
-  # See examples below.
-  #
-  # ==== Notes
-  #
-  # If block is given, it is called after require is called. If you use a block to
-  # require multiple files, require first using :require_as option and the rest
-  # in the block.
-  #
-  # ==== Examples
-  #
-  # Usage scenario is typically one of the following:
-  #
-  # 1. Gem name and loaded file names are the same (ex.: amqp gem uses amqp.rb).
-  #    In this case no extra options needed.
-  #
-  # dependency &quot;amqp&quot;
-  #
-  # 2. Gem name is different from the file needs to be required
-  #    (ex.: ParseTree gem uses parse_tree.rb as main file).
-  #
-  # dependency &quot;ParseTree&quot;, :require_as =&gt; &quot;parse_tree&quot;
-  #
-  # 3. You need to require a number of files from the library explicitly
-  #    (ex.: cherry pick features from xmpp4r). Pass an array to :require_as.
-  #
-  # dependency &quot;xmpp4r&quot;, :require_as =&gt; %w(xmpp4r/client xmpp4r/sasl xmpp4r/vcard)
-  #
-  # 4. You need to require a specific version of the gem.
-  #
-  # dependency &quot;RedCloth&quot;, &quot;3.0.4&quot;
-  #
-  # 5. You want to load dependency as soon as the method is called.
-  #
-  # dependency &quot;syslog&quot;, :immediate =&gt; true
-  #
-  # 6. You need to execute some arbitraty code after dependency is loaded:
-  #
-  # dependency &quot;ruby-growl&quot; do
-  #   g = Growl.new &quot;localhost&quot;, &quot;ruby-growl&quot;,
-  #              [&quot;ruby-growl Notification&quot;]
-  #   g.notify &quot;ruby-growl Notification&quot;, &quot;Ruby-Growl is set up&quot;,
-  #         &quot;Ruby-Growl is set up&quot;
-  # end
-  #
-  # When specifying a gem version to use, you can use the same syntax RubyGems
-  # support, for instance, &gt;= 3.0.2 or &gt;~ 1.2.
-  #
-  # See rubygems.org/read/chapter/16 for a complete reference.
-  #
   # ==== Returns
   # Gem::Dependency:: The dependency information.
   #
   # :api: public
   def dependency(name, *opts, &amp;blk)
-    warn('User bundler for dependencies.')
+    warn(&quot;DEPRECATED: Use bundler to setup and load dependency #{name}.&quot;)
     return
-    immediate = opts.last.delete(:immediate) if opts.last.is_a?(Hash)
-    if immediate || Merb::BootLoader.finished?(Merb::BootLoader::Dependencies)
-      load_dependency(name, caller, *opts, &amp;blk)
-    else
-      track_dependency(name, caller, *opts, &amp;blk)
-    end
   end
 
   # Loads both gem and library dependencies that are passed in as arguments.
@@ -94,15 +36,8 @@ module Kernel
   #
   # :api: public
   def dependencies(*args)
-    warn('User bundler for dependencies.')
+    warn(&quot;DEPRECATED: Use bundler to setup and load dependencies #{args.join(', ')}.&quot;)
     return
-    args.map do |arg|
-      case arg
-      when String then dependency(arg)
-      when Hash   then arg.map { |r,v| dependency(r, v) }
-      when Array  then arg.map { |r|   dependency(r)    }
-      end
-    end
   end
   
   # Used in Merb.root/config/init.rb to tell Merb which ORM (Object Relational
@@ -127,16 +62,7 @@ module Kernel
   #
   # :api: public
   def use_orm(orm, &amp;blk)
-    begin
-      Merb.orm = orm
-      orm_plugin = &quot;merb_#{orm}&quot;
-      require orm_plugin
-      #TODO: Handle block
-    rescue LoadError =&gt; e
-      Merb.logger.warn!(&quot;The #{orm_plugin} gem was not found.  You may need to install it.&quot;)
-      raise e
-    end
-    nil
+    Merb.orm = orm
   end
 
   # Used in Merb.root/config/init.rb to tell Merb which testing framework to
@@ -157,14 +83,7 @@ module Kernel
   #
   # :api: public
   def use_testing_framework(test_framework, *test_dependencies)
-    begin
-      Merb.test_framework = test_framework
-      require test_framework if Merb.env == &quot;test&quot; || Merb.env.nil?
-      nil
-    rescue LoadError =&gt; e
-      Merb.logger.warn!(&quot;The #{test_framework} gem was not found.  You may need to install it.&quot;)
-      raise e
-    end
+    Merb.test_framework = test_framework
   end
 
   def use_test(*args)
@@ -189,24 +108,7 @@ module Kernel
   #
   # :api: public
   def use_template_engine(template_engine, &amp;blk)
-    begin
-      Merb.template_engine = template_engine
-
-      if template_engine != :erb
-        if template_engine.in?(:haml, :builder)
-          template_engine_plugin = &quot;merb-#{template_engine}&quot;
-        else
-          template_engine_plugin = &quot;merb_#{template_engine}&quot;
-        end
-        require template_engine_plugin
-        #TODO: Handle block
-      end
-
-      nil
-    rescue LoadError =&gt; e
-      Merb.logger.warn!(&quot;The #{template_engine_plugin} gem was not found.  You may need to install it.&quot;)
-      raise e
-    end
+    Merb.template_engine = template_engine
   end
 
 </diff>
      <filename>merb-core/lib/merb-core/core_ext/kernel.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,12 +8,11 @@ module Spec
     module Formatter
       class BaseTextFormatter
         def dump_failure(counter, failure)
-          output = @options.error_stream
-          output.puts
-          output.puts &quot;#{counter.to_s})&quot;
-          output.puts colourise(&quot;#{failure.header}\n#{failure.exception.message}&quot;, failure)
-          output.puts format_backtrace(failure.exception.backtrace)
-          output.flush
+          @output.puts
+          @output.puts &quot;#{counter.to_s})&quot;
+          @output.puts colorize_failure(&quot;#{failure.header}\n#{failure.exception.message}&quot;, failure)
+          @output.puts format_backtrace(failure.exception.backtrace)
+          @output.flush
         end
       end
     end</diff>
      <filename>merb-core/lib/merb-core/test/run_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,3 @@
-require 'rubygems'
 require 'benchmark'
 require 'spec'
 require 'spec/runner/formatter/base_text_formatter'
@@ -111,9 +110,13 @@ def run_specs(globs, spec_cmd='spec', run_opts = &quot;-c&quot;, except = [])
         else
           `NOW=1 #{Gem.ruby} #{File.dirname(__FILE__) / &quot;run_spec.rb&quot;} \&quot;#{spec}\&quot;`
         end
-        out = File.read(base_dir / &quot;results&quot; / &quot;#{File.basename(spec)}_out&quot;)
-        err = File.read(base_dir / &quot;results&quot; / &quot;#{File.basename(spec)}_err&quot;)
-        counter.add(spec, out, err)        
+        begin
+          out = File.read(base_dir / &quot;results&quot; / &quot;#{File.basename(spec)}_out&quot;)
+          err = File.read(base_dir / &quot;results&quot; / &quot;#{File.basename(spec)}_err&quot;)
+          counter.add(spec, out, err)        
+        rescue Errno::ENOENT =&gt; e
+          STDOUT.puts e.message
+        end
       end
     end
   end</diff>
      <filename>merb-core/lib/merb-core/test/run_specs.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,7 +13,6 @@ describe &quot;Kernel#caller&quot; do
 end
 
 
-
 describe &quot;Kernel#extract_options_from_args!&quot; do
   it &quot;should extract options from args&quot; do
     args = [&quot;foo&quot;, &quot;bar&quot;, {:baz =&gt; :bar}]
@@ -24,71 +23,17 @@ end
 
 
 describe &quot;Kernel#dependencies&quot; do
-  it &quot;deferres load of dependencies given as String&quot; do
-    self.should_receive(:dependency).with(&quot;hpricot&quot;).and_return(true)
-
-    begin
-      dependencies(&quot;hpricot&quot;)
-    rescue LoadError =&gt; e
-      # sanity check, should never happen
-    end
-  end
-
-  it &quot;deferres load of dependencies given as Array&quot; do
-    self.should_receive(:dependency).with(&quot;hpricot&quot;).and_return(true)
-    self.should_receive(:dependency).with(&quot;rake&quot;).and_return(true)
-
-    begin
-      dependencies(&quot;hpricot&quot;, &quot;rake&quot;)
-    rescue LoadError =&gt; e
-      # sanity check, should never happen
-    end
-  end
-
-  it &quot;defers load of dependencies given as Hash&quot; do
-    self.should_receive(:dependency).with(&quot;hpricot&quot;, &quot;0.6&quot;).and_return(true)
-    self.should_receive(:dependency).with(&quot;rake&quot;, &quot;0.8.1&quot;).and_return(true)
-
-    begin
-      dependencies(&quot;hpricot&quot; =&gt; &quot;0.6&quot;, &quot;rake&quot; =&gt; &quot;0.8.1&quot;)
-    rescue LoadError =&gt; e
-      # sanity check, should never happen
-    end
-  end
-end
-
-
 
-describe &quot;Kernel#load_dependencies&quot; do
-  it &quot;loads dependencies given as String immediately&quot; do
-    self.should_receive(:load_dependency).with(&quot;hpricot&quot;).and_return(true)
-
-    begin
-      load_dependencies(&quot;hpricot&quot;)
-    rescue LoadError =&gt; e
-      # sanity check, should never happen
-    end
+  it &quot;should warn that dependency() is deprecated&quot; do
+    warning = 'DEPRECATED: Use bundler to setup and load dependency hpricot.'
+    Kernel.should_receive(:warn).with(warning)
+    Kernel.dependency(&quot;hpricot&quot;)
   end
 
-  it &quot;loads dependencies given as Array immediately&quot; do
-    self.should_receive(:load_dependency).with(&quot;hpricot&quot;).and_return(true)
-    self.should_receive(:load_dependency).with(&quot;rake&quot;).and_return(true)
-
-    begin
-      load_dependencies(&quot;hpricot&quot;, &quot;rake&quot;)
-    rescue LoadError =&gt; e
-      # sanity check, should never happen
-    end
+  it &quot;should warn that dependency() is deprecated&quot; do
+    warning = 'DEPRECATED: Use bundler to setup and load dependencies hpricot, rspec.'
+    Kernel.should_receive(:warn).with(warning)
+    Kernel.dependencies(&quot;hpricot&quot;, &quot;rspec&quot;)
   end
 
-  it &quot;loads dependencies given as Hash immediately&quot; do
-    self.should_receive(:load_dependency).with(&quot;hpricot&quot;, &quot;0.6&quot;).and_return(true)
-    self.should_receive(:load_dependency).with(&quot;rake&quot;, &quot;0.8.1&quot;).and_return(true)
-
-    begin
-      load_dependencies(&quot;hpricot&quot; =&gt; &quot;0.6&quot;, &quot;rake&quot; =&gt; &quot;0.8.1&quot;)
-    rescue LoadError =&gt; e
-      # sanity check, should never happen
-    end
-  end
 end</diff>
      <filename>merb-core/spec/private/core_ext/kernel_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,8 +8,6 @@ require File.expand_path(File.join(__DIR__, &quot;controllers&quot;, &quot;partial&quot;))
 require File.expand_path(File.join(__DIR__, &quot;controllers&quot;, &quot;display&quot;))
 require File.expand_path(File.join(__DIR__, &quot;controllers&quot;, &quot;helpers&quot;))
 
-Merb.start :environment =&gt; 'test'
-
 module Merb::Test::Behaviors
   include Merb::Test::RequestHelper
   
@@ -28,4 +26,4 @@ end
 
 Spec::Runner.configure do |config|
   config.include Merb::Test::Behaviors
-end
\ No newline at end of file
+end</diff>
      <filename>merb-core/spec/public/abstract_controller/spec_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,8 @@
 __DIR__ = File.dirname(__FILE__)
 
 require File.expand_path(File.join(File.dirname(__FILE__), &quot;..&quot;, &quot;..&quot;, &quot;spec_helper&quot;))
-startup_merb
+
+startup_merb(:init_file =&gt; File.join(__DIR__, 'config', 'init'))
 
 require File.join(__DIR__, &quot;controllers&quot;, &quot;base&quot;)
 require File.join(__DIR__, &quot;controllers&quot;, &quot;responder&quot;)
@@ -12,4 +13,3 @@ require File.join(__DIR__, &quot;controllers&quot;, &quot;cookies&quot;)
 require File.join(__DIR__, &quot;controllers&quot;, &quot;conditional_get&quot;)
 require File.join(__DIR__, &quot;controllers&quot;, &quot;streaming&quot;)
 
-Merb.start :environment =&gt; 'test', :init_file =&gt; File.join(__DIR__, 'config', 'init')</diff>
      <filename>merb-core/spec/public/controller/spec_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,4 @@
+# FIXME: PK: Delete this when removing the json pure fix
 require File.join(File.dirname(__FILE__), &quot;spec_helper&quot;)
 
 require &quot;benchmark&quot;
@@ -31,4 +32,4 @@ describe &quot;JSON pure vulnerability&quot; do
       time.should_not &gt; 0.1
     end
   end
-end
\ No newline at end of file
+end</diff>
      <filename>merb-core/spec/public/core_ext/json_pure_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -15,8 +15,8 @@ describe Kernel, &quot;#use_orm&quot; do
     Merb.orm.should == :activerecord
   end
   
-  it &quot;should add the the orm plugin as a dependency&quot; do
-    Kernel.should_receive(:dependency).with('merb_activerecord')
+  it &quot;should not add dependency&quot; do
+    Kernel.should_not_receive(:dependency)
     Kernel.use_orm(:activerecord)
   end
 
@@ -26,7 +26,7 @@ describe Kernel, &quot;#use_template_engine&quot; do
   
   before do
     Kernel.stub!(:dependency)
-    Merb.template_engine = :erb # reset orm
+    Merb.template_engine = :erb # reset template engine
   end
   
   it &quot;should set Merb.template_engine&quot; do
@@ -34,33 +34,17 @@ describe Kernel, &quot;#use_template_engine&quot; do
     Merb.template_engine.should == :haml
   end
   
-  it &quot;should add merb-haml as a dependency for :haml&quot; do
-    Kernel.should_receive(:dependency).with('merb-haml')
-    Kernel.use_template_engine(:haml)
-  end
-  
-  it &quot;should add merb-builder as a dependency for :builder&quot; do
-    Kernel.should_receive(:dependency).with('merb-builder')
-    Kernel.use_template_engine(:builder)
-  end
-  
-  it &quot;should add no dependency for :erb&quot; do
+  it &quot;should add no dependency&quot; do
     Kernel.should_not_receive(:dependency)
-    Kernel.use_template_engine(:erb)
-  end
-  
-  it &quot;should add other plugins as a dependency&quot; do
-    Kernel.should_receive(:dependency).with('merb_liquid')
-    Kernel.use_template_engine(:liquid)
+    Kernel.use_template_engine(:haml)
   end
-
 end
 
 describe Kernel, &quot;#use_test&quot; do
   
   before do
-    Merb.test_framework = :rspec # reset orm
     Merb.stub!(:dependencies)
+    Merb.test_framework = :rspec # reset test framework
   end
   
   it &quot;should set Merb.test_framework&quot; do
@@ -74,10 +58,10 @@ describe Kernel, &quot;#use_test&quot; do
     Merb.use_test(:test_unit, 'hpricot', 'webrat')
   end
   
-  it &quot;should require test dependencies when in 'test' env&quot; do
+  it &quot;should nor require test dependencies when in 'test' env&quot; do
     Merb.stub!(:env).and_return(&quot;test&quot;)
-    Kernel.should_receive(:dependencies).with([&quot;hpricot&quot;, &quot;webrat&quot;])
+    Kernel.should_not_receive(:dependencies)
     Merb.use_test(:test_unit, 'hpricot', 'webrat')
   end
   
-end
\ No newline at end of file
+end</diff>
      <filename>merb-core/spec/public/core_ext/kernel_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 require File.expand_path(File.join(File.dirname(__FILE__), &quot;spec_helper&quot;))
 require &quot;merb-core/two-oh&quot;
 
-Merb.start :environment =&gt; 'test', :log_level =&gt; :fatal
+startup_merb(:log_level =&gt; :fatal)
 
 Dir[File.join(File.dirname(__FILE__), &quot;controllers/**/*.rb&quot;)].each do |f|
   require f</diff>
      <filename>merb-core/spec/public/test/20_multipart_request_helper_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require File.expand_path(File.join(File.dirname(__FILE__), &quot;..&quot;, &quot;..&quot;, &quot;spec_helper&quot;))
 
-Merb.start :environment =&gt; 'test', :log_level =&gt; :fatal
+startup_merb(:log_level =&gt; :fatal)
 
 class TestController &lt; Merb::Controller
   attr_accessor :redirect_to</diff>
      <filename>merb-core/spec/public/test/controller_matchers_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require File.expand_path(File.join(File.dirname(__FILE__), &quot;spec_helper&quot;))
 
-Merb.start :environment =&gt; 'test', :log_level =&gt; :fatal
+startup_merb(:log_level =&gt; :fatal)
 
 Dir[File.join(File.dirname(__FILE__), &quot;controllers/**/*.rb&quot;)].each do |f|
   require f</diff>
      <filename>merb-core/spec/public/test/mock_request_helper_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require File.expand_path(File.join(File.dirname(__FILE__), &quot;spec_helper&quot;))
 
-Merb.start :environment =&gt; 'test', :log_level =&gt; :fatal
+startup_merb(:log_level =&gt; :fatal)
 
 Dir[File.join(File.dirname(__FILE__), &quot;controllers/**/*.rb&quot;)].each do |f|
   require f</diff>
      <filename>merb-core/spec/public/test/multipart_request_helper_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require File.expand_path(File.join(File.dirname(__FILE__), &quot;spec_helper&quot;))
 
-Merb.start :environment =&gt; 'test', :log_level =&gt; :fatal
+startup_merb(:log_level =&gt; :fatal)
 
 require File.dirname(__FILE__) / &quot;controllers/request_controller&quot;
 </diff>
      <filename>merb-core/spec/public/test/request_helper_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require File.expand_path(File.join(File.dirname(__FILE__), &quot;spec_helper&quot;))
 
-Merb.start :environment =&gt; 'test', :log_level =&gt; :fatal
+startup_merb(:log_level =&gt; :fatal)
 
 class TestController &lt; Merb::Controller
   def get(id = nil); end</diff>
      <filename>merb-core/spec/public/test/route_matchers_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,10 @@
 # Go to http://wiki.merbivore.com/pages/init-rb
  
 ::Gem.clear_paths; ::Gem.path.unshift(File.dirname(__FILE__) + &quot;/../gems/&quot;)
- 
-require 'config/dependencies.rb'
+
+Merb::BootLoader.before_app_loads do
+  require Merb.framework_root / &quot;..&quot; / &quot;..&quot; / &quot;merb-helpers&quot; / &quot;lib&quot; / &quot;merb-helpers.rb&quot;
+end
  
 use_test :rspec
 use_template_engine :erb</diff>
      <filename>merb-core/spec/public/webrat/test_app/config/init.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,8 @@
 require File.expand_path(File.join(File.dirname(__FILE__), &quot;spec_helper&quot;))
 
-Merb.start(
+startup_merb(
   :merb_root =&gt; File.dirname(__FILE__) / &quot;test_app&quot;,
+  :gemfile   =&gt; File.dirname(__FILE__) / &quot;test_app&quot; / &quot;Gemfile&quot;,
   :fork_for_class_load =&gt; false
 )
 Merb::Config[:log_stream] = File.open(&quot;/dev/null&quot;, &quot;w&quot;)
@@ -79,4 +80,4 @@ describe &quot;an app tested using the webrat proxies&quot; do
     end
   end
   
-end
\ No newline at end of file
+end</diff>
      <filename>merb-core/spec/public/webrat/webrat_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,12 @@
-require &quot;rubygems&quot;
 require &quot;spec&quot;
 require File.join(File.dirname(__FILE__), &quot;..&quot;, &quot;lib&quot;, &quot;merb-core&quot;)
 
 def startup_merb(opts = {})
-  default_options = {:environment =&gt; 'test', :adapter =&gt; 'runner'}
+  default_options = {
+    :environment =&gt; 'test',
+    :adapter =&gt; 'runner',
+    :gemfile =&gt; File.join(File.dirname(__FILE__), &quot;Gemfile&quot;)
+  }
   options = default_options.merge(opts)
   Merb.start_environment(options)
 end</diff>
      <filename>merb-core/spec/spec_helper.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>merb-core/spec/private/bundler/bootloader_spec.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/private/bundler/fixture/Gemfile</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/dependency_after_load_spec.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/bad_require_gem/Rakefile</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/bad_require_gem/lib/BadRequireGem.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/core_ext_dependency.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/bin/edit_json.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/bad_require_gem-0.0.1/Rakefile</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/bad_require_gem-0.0.1/lib/BadRequireGem.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/CHANGES</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/GPL</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/README</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/RUBY</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/Rakefile</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/TODO</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/VERSION</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/benchmarks/benchmark.txt</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/benchmarks/benchmark_generator.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/benchmarks/benchmark_parser.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/benchmarks/benchmark_rails.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/bin/edit_json.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/bin/prettify_json.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/data/example.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/data/index.html</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/data/prototype.js</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/ext/json/ext/generator/extconf.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/ext/json/ext/generator/generator.c</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/ext/json/ext/generator/unicode.c</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/ext/json/ext/generator/unicode.h</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/ext/json/ext/parser/extconf.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/ext/json/ext/parser/parser.c</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/ext/json/ext/parser/parser.rl</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/ext/json/ext/parser/unicode.c</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/ext/json/ext/parser/unicode.h</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/install.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/Array.xpm</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/FalseClass.xpm</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/Hash.xpm</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/Key.xpm</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/NilClass.xpm</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/Numeric.xpm</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/String.xpm</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/TrueClass.xpm</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/add/core.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/add/rails.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/common.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/editor.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/ext.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/json.xpm</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/pure.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/pure/generator.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/pure/parser.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/lib/json/version.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail1.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail10.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail11.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail12.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail13.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail14.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail18.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail19.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail2.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail20.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail21.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail22.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail23.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail24.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail25.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail27.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail28.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail3.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail4.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail5.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail6.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail7.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail8.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/fail9.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/pass1.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/pass15.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/pass16.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/pass17.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/pass2.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/pass26.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/fixtures/pass3.json</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/runner.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/test_json.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/test_json_addition.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/test_json_fixtures.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/test_json_generate.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/test_json_rails.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tests/test_json_unicode.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tools/fuzz.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/json_pure-1.1.3/tools/server.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/simple_gem-0.0.1/Rakefile</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/simple_gem-0.0.1/lib/simple_gem.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/simple_gem-0.0.2/Rakefile</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/gems/simple_gem-0.0.2/lib/simple_gem.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/specifications/bad_require_gem-0.0.1.gemspec</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/specifications/json_pure-1.1.3.gemspec</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/specifications/simple_gem-0.0.1.gemspec</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/gems/specifications/simple_gem-0.0.2.gemspec</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/simple_gem/Rakefile</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/simple_gem/lib/simple_gem.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/simple_gem_2/Rakefile</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/fixtures/simple_gem_2/lib/simple_gem.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/immediate_spec.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/multi_versions_spec.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/require_as_fail_spec.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/require_as_immediate_spec.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/require_as_version_spec.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/require_as_working_spec.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/simple_dependency_spec.rb</filename>
    </removed>
    <removed>
      <filename>merb-core/spec/public/core_ext/version_dependency_spec.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>2bedad6c09fab90191f1059585a0aad7e72ba2be</id>
    </parent>
  </parents>
  <author>
    <name>Pavel Kunc</name>
    <email>pavel.kunc@gmail.com</email>
  </author>
  <url>http://github.com/wycats/merb/commit/1ceacbcead8a14ad7bfb3b2e4fe706ff84b86219</url>
  <id>1ceacbcead8a14ad7bfb3b2e4fe706ff84b86219</id>
  <committed-date>2009-09-11T09:02:25-07:00</committed-date>
  <authored-date>2009-09-11T09:02:25-07:00</authored-date>
  <message>Integration of the Bundler to Merb. You nou use Bundler instead of the
Thor to bundle your dependencies. Also Merb NOW DOESN'T CARE about gem
dependencies. So Kernel#dependency and Kernel#dependencies are now
deprecated and you get warning about that. These two methods also
doesn't do anything now.

All Kernel#use_orm, Kernel#use_testing_framework and
Kernel#use_template_engine, just sets Merb to use appropriate option.
They DON'T ADD dependency in runtime, you need to do it on your OWN!

Merb will refuse to boot if you don't have Gemfile in your Merb.root
directory. See http://wiki.github.com/pk/merb/bundler how to migrate
your dependencies.rb.

You should change all your Merb Plugins or Slices to not use
Kernel#dependency and set your dependencies in your GEM Rakefile or
*.gemspec file.

All MRI specs should now pass. I quite a few things in Specs to run on
the latest versions of RSpec and Ruby.</message>
  <tree>2b3819ff4318eb25008739584da2a4979938132f</tree>
  <committer>
    <name>Pavel Kunc</name>
    <email>pavel.kunc@gmail.com</email>
  </committer>
</commit>
