<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -4,12 +4,16 @@ require 'rubygems'
 require 'set'
 require 'fileutils'
 require 'socket'
+require 'pathname'
+require &quot;merb-extlib&quot;
 
-$LOAD_PATH.unshift File.dirname(__FILE__) unless
-  $LOAD_PATH.include?(File.dirname(__FILE__)) ||
-  $LOAD_PATH.include?(File.expand_path(File.dirname(__FILE__)))
+__DIR__ = File.dirname(__FILE__)
 
-require 'merb-core/vendor/facets'
+$LOAD_PATH.unshift __DIR__ unless
+  $LOAD_PATH.include?(__DIR__) ||
+  $LOAD_PATH.include?(File.expand_path(__DIR__))
+
+require 'merb-core' / 'vendor' / 'facets'
 
 module Merb
   module GlobalHelpers; end
@@ -168,7 +172,7 @@ module Merb
     #   &quot;**/*.rb&quot;.
     def push_path(type, path, file_glob = &quot;**/*.rb&quot;)
       enforce!(type =&gt; Symbol)
-      load_paths[type] = [path, file_glob]
+      load_paths[type] = [Pathname.new(path), file_glob]
     end
 
     # Removes given types of application components
@@ -197,22 +201,32 @@ module Merb
     #
     # ==== Returns
     # String:: The directory for the requested type.
-    def dir_for(type)  Merb.load_paths[type].first end
+    def dir_for(type)
+      Merb.load_paths[type].first
+    end
 
     # ==== Parameters
     # type&lt;Symbol&gt;:: The type of path to retrieve glob for, e.g. :view.
     #
     # ===== Returns
     # String:: The pattern with which to match files within the type directory.
-    def glob_for(type) Merb.load_paths[type][1]    end
+    def glob_for(type)
+      Merb.load_paths[type][1]
+    end
 
     # ==== Returns
     # String:: The Merb root path.
-    def root()          @root || Merb::Config[:merb_root] || Dir.pwd  end
+    def root
+      app_root = @root || Merb::Config[:merb_root] || Dir.pwd
+
+      Pathname.new(app_root)
+    end
 
     # ==== Parameters
     # value&lt;String&gt;:: Path to the root directory.
-    def root=(value)    @root = value                                 end
+    def root=(value)
+      @root = Pathname.new(value)
+    end
 
     # ==== Parameters
     # *path::
@@ -228,7 +242,9 @@ module Merb
     #   Merb.path(&quot;views&quot;, &quot;admin&quot;) # =&gt; &quot;/home/merb/app/views/admin&quot;
     #---
     # @public
-    def root_path(*path) File.join(root, *path)                       end
+    def root_path(*path)
+      Pathname.new(File.join(root, *path))
+    end
 
     # Logger settings
     attr_accessor :logger
@@ -252,15 +268,19 @@ module Merb
     # ==== Returns
     # String:: Path to directory that contains the log file.
     def log_path
-      case Merb::Config[:log_file]
+      path = case Merb::Config[:log_file]
       when String then File.dirname(Merb::Config[:log_file])
       else Merb.root_path(&quot;log&quot;)
       end
+
+      Pathname.new(path)
     end
 
     # ==== Returns
     # String:: The path of root directory of the Merb framework.
-    def framework_root()  @framework_root ||= File.dirname(__FILE__)  end
+    def framework_root
+      @framework_root ||= Pathname(File.dirname(__FILE__))
+    end
 
     # ==== Returns
     # RegExp::
@@ -536,7 +556,7 @@ module Merb
     # Recommended way to find out what paths Rakefiles
     # are loaded from.
     def rakefiles
-      @rakefiles ||= ['merb-core/test/tasks/spectasks']
+      @rakefiles ||= ['merb-core' / 'test' / 'tasks' / 'spectasks']
     end
     
     # === Returns
@@ -555,7 +575,7 @@ module Merb
     # ==== Notes
     # Recommended way to add Rakefiles load path for plugins authors.
     def add_rakefiles(*rakefiles)
-      @rakefiles ||= ['merb-core/test/tasks/spectasks']
+      @rakefiles ||= ['merb-core' / 'test' / 'tasks' / 'spectasks']
       @rakefiles += rakefiles
     end
     
@@ -572,12 +592,12 @@ module Merb
   end
 end
 
-require 'merb-core/autoload'
-require 'merb-core/server'
-require 'merb-core/gem_ext/erubis'
-require 'merb-core/logger'
-require 'merb-core/version'
-require 'merb-core/controller/mime'
+require 'merb-core' / 'autoload'
+require 'merb-core' / 'server'
+require 'merb-core' / 'gem_ext/erubis'
+require 'merb-core' / 'logger'
+require 'merb-core' / 'version'
+require 'merb-core' / 'controller/mime'
 
 # Set the environment if it hasn't already been set.
 Merb.environment ||= ENV['MERB_ENV'] || Merb::Config[:environment] || (Merb.testing? ? 'test' : 'development')</diff>
      <filename>lib/merb-core.rb</filename>
    </modified>
    <modified>
      <diff>@@ -96,7 +96,7 @@ module Merb
         %w[view model helper controller mailer part].each do |component|
           Merb.push_path(component.to_sym, Merb.root_path(&quot;app/#{component}s&quot;))
         end
-        Merb.push_path(:application,  Merb.root_path(&quot;app/controllers/application.rb&quot;))
+        Merb.push_path(:application,  Merb.root_path(&quot;app&quot; / &quot;controllers&quot; / &quot;application.rb&quot;))
         Merb.push_path(:config,       Merb.root_path(&quot;config&quot;), nil)
         Merb.push_path(:router,       Merb.dir_for(:config), (Merb::Config[:router_file] || &quot;router.rb&quot;))
         Merb.push_path(:lib,          Merb.root_path(&quot;lib&quot;), nil)</diff>
      <filename>lib/merb-core/bootloader.rb</filename>
    </modified>
    <modified>
      <diff>@@ -383,10 +383,11 @@ module Merb::RenderMixin
         template_location = root / self.send(template_meth, context, content_type, controller)
       end
       
-      break if template_method = _template_method_for(template_location)
+      break if template_method = _template_method_for(template_location.to_s)
     end
 
-    [template_method, template_location]
+    # template_location is a Pathname
+    [template_method, template_location.to_s]
   end
   
   # Return the template method for a location, and check to make sure the current controller</diff>
      <filename>lib/merb-core/controller/mixins/render.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,6 +5,4 @@ rescue LoadError =&gt; e
   exit
 end
 
-corelib = File.join(File.dirname(__FILE__), &quot;core_ext&quot;)
-
-require corelib/:kernel
+require File.dirname(__FILE__) / &quot;core_ext&quot; / &quot;kernel&quot;</diff>
      <filename>lib/merb-core/core_ext.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,21 +1,21 @@
 require 'rack'
 module Merb  
   module Rack
-    autoload :Application,         &quot;merb-core/rack/application&quot;
-    autoload :Adapter,             &quot;merb-core/rack/adapter&quot;
-    autoload :Ebb,                 &quot;merb-core/rack/adapter/ebb&quot;
-    autoload :EventedMongrel,      &quot;merb-core/rack/adapter/evented_mongrel&quot;    
-    autoload :FastCGI,             &quot;merb-core/rack/adapter/fcgi&quot;
-    autoload :Irb,                 &quot;merb-core/rack/adapter/irb&quot;
-    autoload :Middleware,          &quot;merb-core/rack/middleware&quot;
-    autoload :Mongrel,             &quot;merb-core/rack/adapter/mongrel&quot;
-    autoload :Runner,              &quot;merb-core/rack/adapter/runner&quot;    
-    autoload :SwiftipliedMongrel,  &quot;merb-core/rack/adapter/swiftiplied_mongrel&quot;
-    autoload :Thin,                &quot;merb-core/rack/adapter/thin&quot;
-    autoload :ThinTurbo,           &quot;merb-core/rack/adapter/thin_turbo&quot;
-    autoload :WEBrick,             &quot;merb-core/rack/adapter/webrick&quot;
-    autoload :PathPrefix,          &quot;merb-core/rack/middleware/path_prefix&quot;
-    autoload :Static,              &quot;merb-core/rack/middleware/static&quot;
-    autoload :Profiler,            &quot;merb-core/rack/middleware/profiler&quot;    
+    autoload :Application,         'merb-core' / 'rack' / 'application'
+    autoload :Adapter,             'merb-core' / 'rack' / 'adapter'
+    autoload :Ebb,                 'merb-core' / 'rack' / 'adapter' / 'ebb'
+    autoload :EventedMongrel,      'merb-core' / 'rack' / 'adapter' / 'evented_mongrel'    
+    autoload :FastCGI,             'merb-core' / 'rack' / 'adapter' / 'fcgi'
+    autoload :Irb,                 'merb-core' / 'rack' / 'adapter' / 'irb'
+    autoload :Middleware,          'merb-core' / 'rack' / 'middleware'
+    autoload :Mongrel,             'merb-core' / 'rack' / 'adapter' / 'mongrel'
+    autoload :Runner,              'merb-core' / 'rack' / 'adapter' / 'runner'    
+    autoload :SwiftipliedMongrel,  'merb-core' / 'rack' / 'adapter' / 'swiftiplied_mongrel'
+    autoload :Thin,                'merb-core' / 'rack' / 'adapter' / 'thin'
+    autoload :ThinTurbo,           'merb-core' / 'rack' / 'adapter' / 'thin_turbo'
+    autoload :WEBrick,             'merb-core' / 'rack' / 'adapter' / 'webrick'
+    autoload :PathPrefix,          'merb-core' / 'rack' / 'middleware' / 'path_prefix'
+    autoload :Static,              'merb-core' / 'rack' / 'middleware' / 'static'
+    autoload :Profiler,            'merb-core' / 'rack' / 'middleware' / 'profiler'    
   end # Rack
-end # Merb
\ No newline at end of file
+end # Merb</diff>
      <filename>lib/merb-core/rack.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,4 +8,4 @@ module Merb; module Test; end; end
 
 require 'merb-core/test/helpers'
 
-require 'merb-core/test/matchers'
\ No newline at end of file
+require 'merb-core/test/matchers'</diff>
      <filename>lib/merb-core/test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -33,12 +33,12 @@ describe &quot;Merb.root_path&quot; do
 
   it &quot;should return a path relative to Merb.root&quot; do
     path = Merb.root_path('/app/controllers/base.rb')
-    path.should == File.join(Merb.root, '/app/controllers/base.rb')
+    path.to_s.should == File.join(Merb.root, '/app/controllers/base.rb')
   end
 
   it &quot;should accept multiple arguments like File.join&quot; do
     path = Merb.root_path('app', 'controllers', 'base.rb')
-    path.should == File.join(Merb.root, 'app', 'controllers', 'base.rb')
+    path.to_s.should == File.join(Merb.root, 'app', 'controllers', 'base.rb')
   end
 
 end</diff>
      <filename>spec/public/directory_structure/directory_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>0a3d655be79657b99549a5522a13847119c95f4c</id>
    </parent>
  </parents>
  <author>
    <name>Michael S. Klishin</name>
    <email>michael@novemberain.com</email>
  </author>
  <url>http://github.com/wycats/merb-core/commit/9e4df5e4db05fb5448c1cc39a1890ff577a3ac45</url>
  <id>9e4df5e4db05fb5448c1cc39a1890ff577a3ac45</id>
  <committed-date>2008-07-22T04:06:17-07:00</committed-date>
  <authored-date>2008-07-22T04:06:17-07:00</authored-date>
  <message>Use Pathname in some more places, fix breakages.</message>
  <tree>4f0658036a672a1871e9959f13e7b022e0b505de</tree>
  <committer>
    <name>Michael S. Klishin</name>
    <email>michael@novemberain.com</email>
  </committer>
</commit>
