<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,7 +1,8 @@
 #!/usr/bin/env ruby
 require &quot;rubygems&quot;
+require &quot;pathname&quot;
 require &quot;data_mapper&quot;
-require File.join('data_mapper', 'cli')
+require Pathname('data_mapper/cli')
 require &quot;optparse&quot;
 
 DataMapper::CLI.start</diff>
      <filename>bin/dm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 unless defined?(INITIAL_CLASSES)
   # Require the DataMapper, and a Mock Adapter.
-  require File.join(File.dirname(__FILE__), 'lib', 'data_mapper')
-  require File.join(File.dirname(__FILE__), 'spec', 'mock_adapter')
+  require Pathname(__FILE__).dirname + 'lib/data_mapper'
+  require Pathname(__FILE__).dirname + 'spec/mock_adapter'
 
   adapter = ENV[&quot;ADAPTER&quot;] || &quot;sqlite3&quot;
   
@@ -12,15 +12,14 @@ unless defined?(INITIAL_CLASSES)
   end
 
   # Prepare the log path, and remove the existing spec.log
-  require &quot;fileutils&quot;
   # 
   # if ENV[&quot;LOG_NAME&quot;]
   #   log_path = nil
   #   
   #   if ENV[&quot;LOG_NAME&quot;] != &quot;STDOUT&quot;
-  #     FileUtils::mkdir_p(File.dirname(__FILE__) + &quot;/log&quot;)
-  #     log_path = File.dirname(__FILE__) + &quot;/log/#{ENV[&quot;LOG_NAME&quot;]}.log&quot;
-  #     FileUtils::rm log_path if File.exists?(log_path)
+  #     log_path = Pathname(__FILE__).dirname + &quot;log/#{ENV['LOG_NAME']}.log&quot;
+  #     log_path.dirname.mkpath
+  #     log_path.unlink if log_path.file?
   #   else
   #     log_path = &quot;STDOUT&quot;
   #   end
@@ -35,11 +34,11 @@ unless defined?(INITIAL_CLASSES)
   
   # Determine log path.
   ENV['_'] =~ /(\w+)/
-  DataMapper::Logger.new(File.join(File.dirname(__FILE__), &quot;log&quot;, &quot;#{$1}.log&quot;), 0)
+  DataMapper::Logger.new(Pathname(__FILE__).dirname + &quot;log/#{$1}.log&quot;, 0)
   at_exit { DataMapper.logger.close }
-  
-  Dir[File.join(File.dirname(__FILE__), 'spec', 'models', '*.rb')].sort.each { |path| load path }
-  
+
+  Pathname.glob(Pathname(__FILE__).dirname + 'spec/models/*.rb').sort.each { |path| load path }
+
   # DataMapper::Repository.setup(configuration_options)
   # DataMapper::Repository.setup(:secondary, secondary_configuration_options)
   # DataMapper::Repository.setup(:mock, :adapter =&gt; MockAdapter)</diff>
      <filename>environment.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,24 +12,26 @@
 $:.unshift(File.dirname(__FILE__))
 
 # Require the basics...
+require 'pathname'
 require 'uri'
 require 'date'
+require 'pathname'
 require 'time'
 require 'rubygems'
 require 'yaml'
 require 'set'
 require 'fastthread'
 
-require File.join(File.dirname(__FILE__), 'data_mapper', 'support', 'object')
-require File.join(File.dirname(__FILE__), 'data_mapper', 'support', 'blank')
-require File.join(File.dirname(__FILE__), 'data_mapper', 'support', 'enumerable')
-require File.join(File.dirname(__FILE__), 'data_mapper', 'support', 'symbol')
-require File.join(File.dirname(__FILE__), 'data_mapper', 'support', 'inflector')
-require File.join(File.dirname(__FILE__), 'data_mapper', 'support', 'struct')
+require Pathname(__FILE__).dirname + 'data_mapper/support/object'
+require Pathname(__FILE__).dirname + 'data_mapper/support/blank'
+require Pathname(__FILE__).dirname + 'data_mapper/support/enumerable'
+require Pathname(__FILE__).dirname + 'data_mapper/support/symbol'
+require Pathname(__FILE__).dirname + 'data_mapper/support/inflector'
+require Pathname(__FILE__).dirname + 'data_mapper/support/struct'
 
-require File.join(File.dirname(__FILE__), 'data_mapper', 'dependency_queue')
-require File.join(File.dirname(__FILE__), 'data_mapper', 'resource')
+require Pathname(__FILE__).dirname + 'data_mapper/dependency_queue'
+require Pathname(__FILE__).dirname + 'data_mapper/resource'
 
-require File.join(File.dirname(__FILE__), 'data_mapper', 'adapters', 'abstract_adapter')
+require Pathname(__FILE__).dirname + 'data_mapper/adapters/abstract_adapter'
 
-require File.join(File.dirname(__FILE__), 'data_mapper', 'cli')
\ No newline at end of file
+require Pathname(__FILE__).dirname + 'data_mapper/cli'</diff>
      <filename>lib/data_mapper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), 'abstract_adapter')
+require Pathname(__FILE__).dirname + 'abstract_adapter'
 
 module DataMapper
 </diff>
      <filename>lib/data_mapper/adapters/data_object_adapter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), 'data_object_adapter')
+require Pathname(__FILE__).dirname + 'data_object_adapter'
 begin
   require 'do_mysql'
 rescue LoadError</diff>
      <filename>lib/data_mapper/adapters/mysql_adapter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), 'data_object_adapter')
+require Pathname(__FILE__).dirname + 'data_object_adapter'
 begin
   require &quot;do_postgres&quot;
 rescue LoadError</diff>
      <filename>lib/data_mapper/adapters/postgresql_adapter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), 'data_object_adapter')
+require Pathname(__FILE__).dirname + 'data_object_adapter'
 
 begin
   require 'do_sqlite3'</diff>
      <filename>lib/data_mapper/adapters/sqlite3_adapter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require &quot;yaml&quot;
 require &quot;irb&quot;
-require File.join('irb', 'completion')
+require Pathname('irb/completion')
 
 # TODO: error handling for:
 #   missing adapter, host or database
@@ -63,30 +63,30 @@ module DataMapper
           opt.banner = usage
 
           opt.on(&quot;-m&quot;, &quot;--models MODELS&quot;, &quot;The directory to load models from.&quot;) do |models|
-            @config[:models] = models
+            @config[:models] = Pathname(models)
           end
 
           opt.on(&quot;-c&quot;, &quot;--config FILE&quot;, &quot;Entire configuration structure, useful for testing scenarios.&quot;) do |config_file|
-            @config = YAML::load_file config_file
+            @config = YAML::load_file Pathname(config_file)
           end
 
           opt.on(&quot;--merb&quot;, &quot;--rails&quot;, &quot;Loads application settings: config/database.yml, app/models.&quot;) do
-            @config[:models] = &quot;app/models&quot;
-            @config[:yaml]   = &quot;config/database.yml&quot;
+            @config[:models] = Pathname('app/models')
+            @config[:yaml]   = Pathname('config/database.yml')
           end
 
           opt.on(&quot;-y&quot;, &quot;--yaml YAML&quot;, &quot;The database connection configuration yaml file.&quot;) do |yaml_file|
-            if File.exists?(yaml_file)
-              @config[:yaml] = yaml_file
-            elsif File.exists?(&quot;#{Dir.pwd}/#{yaml_file}&quot;)
-              @config[:yaml] = &quot;#{Dir.pwd}/#{yaml_file}&quot;
+            if (yaml = Pathname(yaml_file)).file?
+              @config[:yaml] = yaml
+            elsif (yaml = Pathname(&quot;#{Dir.pwd}/#{yaml_file}&quot;)).file?
+              @config[:yaml] = yaml
             else
               raise &quot;yaml file was specifed as #{yaml_file} but does not exist.&quot;
             end
           end
 
           opt.on(&quot;-l&quot;, &quot;--log LOGFILE&quot;, &quot;A string representing the logfile to use.&quot;) do |log_file|
-            @config[:log_file] = log_file
+            @config[:log_file] = Pathname(log_file)
           end
 
           opt.on(&quot;-e&quot;, &quot;--environment STRING&quot;, &quot;Run merb in the correct mode(development, production, testing)&quot;) do |environment|
@@ -166,7 +166,7 @@ module DataMapper
       end
 
       def load_models
-        Dir[&quot;#{config[:models]}/**/*.rb&quot;].each { |file| load file }
+        Pathname.glob(&quot;#{config[:models]}/**/*.rb&quot;) { |file| load file }
       end
 
       def start(argv = ARGV)
@@ -178,7 +178,7 @@ module DataMapper
           load_models if config[:models]
 
           puts &quot;DataMapper has been loaded using the '#{options[:adapter] || options[&quot;adapter&quot;]}' database '#{options[:database] || options[&quot;database&quot;]}' on '#{options[:host] || options[&quot;host&quot;]}' as '#{options[:username] || options[&quot;username&quot;]}'&quot;
-          ENV[&quot;IRBRC&quot;] = File.dirname(__FILE__) + &quot;/../../bin/.irbrc&quot;
+          ENV[&quot;IRBRC&quot;] = Pathname(__FILE__).dirname.parent.parent + 'bin/.irbrc'
           IRB.start
 
         rescue =&gt; error</diff>
      <filename>lib/data_mapper/cli.rb</filename>
    </modified>
    <modified>
      <diff>@@ -87,12 +87,10 @@ module DataMapper
       log ||= &quot;log/dm.log&quot;
       if log.respond_to?(:write)
         @log = log
-      elsif File.exist?(log)
-        @log = open(log, (File::WRONLY | File::APPEND))
-        @log.sync = true
       else
-        FileUtils.mkdir_p(File.dirname(log)) unless File.directory?(File.dirname(log))
-        @log = open(log, (File::WRONLY | File::APPEND | File::CREAT))
+        log = Pathname(log)
+        log.dirname.mkpath
+        @log = log.open('a')
         @log.sync = true
         @log.write(&quot;#{Time.now.httpdate} #{delimiter} info #{delimiter} Logfile created\n&quot;)
       end</diff>
      <filename>lib/data_mapper/logger.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), 'support', 'inflector')
+require Pathname(__FILE__).dirname + 'support/inflector'
 
 module DataMapper
   </diff>
      <filename>lib/data_mapper/naming_conventions.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), 'property_set')
+require Pathname(__FILE__).dirname + 'property_set'
 
 require 'date'
 require 'time'</diff>
      <filename>lib/data_mapper/property.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,9 @@
 require 'uri'
-require File.join(File.dirname(__FILE__), 'support', 'errors')
-require File.join(File.dirname(__FILE__), 'logger')
-require File.join(File.dirname(__FILE__), 'adapters', 'abstract_adapter')
-require File.join(File.dirname(__FILE__), 'identity_map')
-require File.join(File.dirname(__FILE__), 'naming_conventions')
+require Pathname(__FILE__).dirname + 'support/errors'
+require Pathname(__FILE__).dirname + 'logger'
+require Pathname(__FILE__).dirname + 'adapters/abstract_adapter'
+require Pathname(__FILE__).dirname + 'identity_map'
+require Pathname(__FILE__).dirname + 'naming_conventions'
 
 # Delegates to DataMapper::repository.
 # Will not overwrite if a method of the same name is pre-defined.
@@ -47,7 +47,7 @@ module DataMapper
     
     unless Adapters::const_defined?(Inflector.classify(uri.scheme) + &quot;Adapter&quot;)
       begin
-        require File.join(File.dirname(__FILE__), 'adapters', &quot;#{Inflector.underscore(uri.scheme)}_adapter&quot;)
+        require Pathname(__FILE__).dirname + &quot;adapters/#{Inflector.underscore(uri.scheme)}_adapter&quot;
       rescue LoadError
         require &quot;#{Inflector.underscore(uri.scheme)}_adapter&quot;
       end</diff>
      <filename>lib/data_mapper/repository.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,8 @@
-require File.join(File.dirname(__FILE__), 'support', 'inflector')
-require File.join(File.dirname(__FILE__), 'support', 'string')
-require File.join(File.dirname(__FILE__), 'property_set')
-require File.join(File.dirname(__FILE__), 'property')
-require File.join(File.dirname(__FILE__), 'repository')
+require Pathname(__FILE__).dirname + 'support/inflector'
+require Pathname(__FILE__).dirname + 'support/string'
+require Pathname(__FILE__).dirname + 'property_set'
+require Pathname(__FILE__).dirname + 'property'
+require Pathname(__FILE__).dirname + 'repository'
 
 module DataMapper
   </diff>
      <filename>lib/data_mapper/resource.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join('rexml', 'document')
+require Pathname('rexml/document')
 
 begin
   require 'faster_csv'
@@ -7,9 +7,9 @@ rescue LoadError
 end
 
 begin
-  require File.join('json', 'ext')
+  require Pathname('json/ext')
 rescue LoadError
-  require File.join('json', 'pure')
+  require Pathname('json/pure')
 end
 
 module DataMapper</diff>
      <filename>lib/data_mapper/support/serialization.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,11 @@
 require 'benchmark'
 require 'active_record'
 
-socket_file = [
+socket_file = Pathname.glob([ 
   &quot;/opt/local/var/run/mysql5/mysqld.sock&quot;,
   &quot;tmp/mysqld.sock&quot;,
   &quot;tmp/mysql.sock&quot;
-].find { |path| File.exists?(path) }
+]).find { |path| path.socket? }
 
 configuration_options = {
   :adapter =&gt; 'mysql',
@@ -28,7 +28,7 @@ class ARPerson &lt; ActiveRecord::Base #:nodoc:
   set_table_name 'people'
 end
 
-require File.join(File.dirname(__FILE__), 'lib', 'data_mapper')
+require Pathname(__FILE__).dirname + 'lib/data_mapper'
 
 DataMapper::Repository.setup(configuration_options)
 </diff>
      <filename>performance.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,8 @@
 namespace :sphinx do
+  def pid_file
+    @pid_file ||= Pathname('/var/run/searchd.pid')
+  end
+
   desc &quot;Run indexer&quot;
   task :index do
     cd 'config' do
@@ -15,7 +19,7 @@ namespace :sphinx do
   
   desc &quot;Start searchd server&quot;
   task :start do
-    if File.exists?('/var/run/searchd.pid')
+    if pid_file.file?
       puts 'Sphinx searchd server is already started.'
     else
       cd 'config' do
@@ -27,10 +31,10 @@ namespace :sphinx do
   
   desc &quot;Stop searchd server&quot;
   task :stop do
-    unless File.exists?('/var/run/searchd.pid')
+    unless pid_file.file?
       puts 'Sphinx searchd server is not running.'
     else
-      pid = File.read('/var/run/searchd.pid').chomp
+      pid = pid_file.read.chomp
       system &quot;kill #{pid}&quot;
       puts 'Sphinx searchd server stopped.'
     end</diff>
      <filename>plugins/can_has_sphinx/tasks/acts_as_sphinx_tasks.rake</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@ def profile(&amp;b)
   result = RubyProf.profile &amp;b
 
   printer = RubyProf::GraphHtmlPrinter.new(result)
-  File::open('profile_results.html', 'w+') do |file|
+  Pathname('profile_results.html').open('w+') do |file|
     printer.print(file, 0)
   end
 end</diff>
      <filename>profile_data_mapper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,20 +1,20 @@
 #!/usr/bin/env ruby
 
 require 'rubygems'
+require 'pathname'
 require 'rake'
-require File.join('spec', 'rake', 'spectask')
-require File.join('rake', 'rdoctask')
-require File.join('rake', 'gempackagetask')
-require File.join('rake', 'contrib', 'rubyforgepublisher')
+require Pathname('spec/rake/spectask')
+require Pathname('rake/rdoctask')
+require Pathname('rake/gempackagetask')
+require Pathname('rake/contrib/rubyforgepublisher')
 
-Dir[File.join(File.dirname(__FILE__), 'tasks', '*')].each { |t| require(t) }
+Pathname.glob(Pathname(__FILE__).dirname + 'tasks/**/*.rb') { |t| require t }
 
 task :default =&gt; 'dm:spec'
 
 task :environment =&gt; 'dm:environment'
 
-dm = namespace :dm do
-
+namespace :dm do
   desc &quot;Setup Environment&quot;
   task :environment do
     require 'environment'
@@ -23,7 +23,7 @@ dm = namespace :dm do
   desc &quot;Run specifications&quot;
   Spec::Rake::SpecTask.new('spec') do |t|
     t.spec_opts = [&quot;--format&quot;, &quot;specdoc&quot;, &quot;--colour&quot;]
-    t.spec_files = FileList[(ENV['FILES'] || File.join('spec', '**', '*_spec.rb'))]
+    t.spec_files = Pathname.glob(ENV['FILES'] || 'spec/**/*_spec.rb')
     unless ENV['NO_RCOV']
       t.rcov = true
       t.rcov_opts = ['--exclude', 'examples,spec,environment.rb']
@@ -43,34 +43,34 @@ dm = namespace :dm do
   namespace :spec do
     def set_model_mode(fl, mode)
       fl.each do |fname|
-	contents = File.open(fname, 'r') { |f| f.read }
-
-	if mode == :compat
-	  contents.gsub!(/#&lt; DataMapper::Base #/, '&lt; DataMapper::Base #')
-	  contents.gsub!(/include DataMapper::Persistence/, '#include DataMapper::Persistence')
-	elsif mode == :normal
-	  contents.gsub!(/&lt; DataMapper::Base #/, '#&lt; DataMapper::Base #')
-	  contents.gsub!(/#include DataMapper::Persistence/, 'include DataMapper::Persistence')
-	else
-	  raise &quot;Unknown mode #{mode}.&quot;
-	end
-
-	File.open(fname, 'w') do |f|
-	  f.write(contents)
-	end
+        contents = fname.read
+
+        if mode == :compat
+          contents.gsub!(/#&lt; DataMapper::Base #/, '&lt; DataMapper::Base #')
+          contents.gsub!(/include DataMapper::Persistence/, '#include DataMapper::Persistence')
+        elsif mode == :normal
+          contents.gsub!(/&lt; DataMapper::Base #/, '#&lt; DataMapper::Base #')
+          contents.gsub!(/#include DataMapper::Persistence/, 'include DataMapper::Persistence')
+        else
+          raise &quot;Unknown mode #{mode}.&quot;
+        end
+
+        fname.open('w') do |f|
+          f.write(contents)
+        end
       end
     end
 
     desc &quot;Run specifications with DataMapper::Base compatibilty&quot;
     task :compat do
-      fl = FileList[File.join('spec', '**', '*.rb')].exclude(/\b\.svn/)
+      fl = Pathname.glob('spec/**/*.rb').reject { |path| path =~ /\b\.svn/ }
 
       set_model_mode(fl, :compat)
 
       begin
-	dm[:spec].execute
+        Rake::Task['dm:spec'].invoke
       ensure
-	set_model_mode(fl, :normal)
+        set_model_mode(fl, :normal)
       end
     end
   end
@@ -78,7 +78,7 @@ end
 
 PACKAGE_VERSION = '0.9.0'
 
-PACKAGE_FILES = FileList[
+PACKAGE_FILES = Pathname.glob([
   'README',
   'FAQ',
   'QUICKLINKS',
@@ -89,16 +89,16 @@ PACKAGE_FILES = FileList[
   'spec/**/*.{rb,yaml}',
   'tasks/**/*',
   'plugins/**/*'
-].to_a.reject { |path| path =~ /(\/db|Makefile|\.bundle|\.log|\.o)$/ }
+]).reject { |path| path =~ /(\/db|Makefile|\.bundle|\.log|\.o)\z/ }
 
 DOCUMENTED_FILES = PACKAGE_FILES.reject do |path|
-  FileTest.directory?(path) || path =~ /(^spec|\/spec|\/swig\_)/
+  path.directory? || path =~ /(^spec|\/spec|\/swig\_)/
 end
 
 PROJECT = &quot;datamapper&quot;
 
 task :ls do
-  p PACKAGE_FILES
+  puts PACKAGE_FILES
 end
 
 desc &quot;Generate Documentation&quot;</diff>
      <filename>rakefile.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 
-require File.join(File.dirname(__FILE__), '../../lib/data_mapper/adapters/abstract_adapter')
-require File.join(File.dirname(__FILE__), '../adapter_sharedspec')
+require Pathname(__FILE__).dirname.parent.parent + 'lib/data_mapper/adapters/abstract_adapter'
+require Pathname(__FILE__).dirname.parent + 'adapter_sharedspec'
 
 describe DataMapper::Adapters::AbstractAdapter do
   before do</diff>
      <filename>spec/adapters/abstract_adapter_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
-require File.join(File.dirname(__FILE__), '../../lib/data_mapper')
-require File.join(File.dirname(__FILE__), '../../lib/data_mapper/adapters/data_object_adapter')
-require File.join(File.dirname(__FILE__), '..', 'adapter_sharedspec')
+require Pathname(__FILE__).dirname.parent.parent + 'lib/data_mapper'
+require Pathname(__FILE__).dirname.parent.parent + 'lib/data_mapper/adapters/data_object_adapter'
+require Pathname(__FILE__).dirname.parent + 'adapter_sharedspec'
 
 describe DataMapper::Adapters::DataObjectAdapter do
   before do</diff>
      <filename>spec/adapters/data_object_adapter_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), 'spec_helper')
+require Pathname(__FILE__).dirname + 'spec_helper'
 
 describe DataMapper::CLI do
 </diff>
      <filename>spec/cli_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), 'spec_helper')
+require Pathname(__FILE__).dirname + 'spec_helper'
 
 # Can't describe DataMapper::Persistable because
 # rspec will include it for some crazy reason!</diff>
      <filename>spec/dependency_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
-require File.join(File.dirname(__FILE__), '..', 'lib', 'data_mapper', 'repository')
-require File.join(File.dirname(__FILE__), '..', 'lib', 'data_mapper', 'resource')
-require File.join(File.dirname(__FILE__), '..', 'lib', 'data_mapper', 'loaded_set')
-require File.join(File.dirname(__FILE__), 'mock_adapter')
+require Pathname(__FILE__).dirname.parent + 'lib/data_mapper/repository'
+require Pathname(__FILE__).dirname.parent + 'lib/data_mapper/resource'
+require Pathname(__FILE__).dirname.parent + 'lib/data_mapper/loaded_set'
+require Pathname(__FILE__).dirname + 'mock_adapter'
 
 describe &quot;DataMapper::LoadedSet&quot; do
   </diff>
      <filename>spec/loaded_set_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), '..', 'lib', 'data_mapper', 'adapters', 'data_object_adapter')
+require Pathname(__FILE__).dirname.parent + 'lib/data_mapper/adapters/data_object_adapter'
 
 module DataMapper
   module Adapters</diff>
      <filename>spec/mock_adapter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), '..', 'lib', 'data_mapper', 'naming_conventions')
+require Pathname(__FILE__).dirname.parent + 'lib/data_mapper/naming_conventions'
 
 describe &quot;DataMapper::NamingConventions&quot; do
   it &quot;should coerce a string into the convention&quot; do</diff>
      <filename>spec/naming_conventions_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), 'spec_helper')
+require Pathname(__FILE__).dirname + 'spec_helper'
 
 describe DataMapper::PropertySet do
   </diff>
      <filename>spec/property_set_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), 'spec_helper')
+require Pathname(__FILE__).dirname + 'spec_helper'
 
 # describe DataMapper::Property do
 #   </diff>
      <filename>spec/property_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
-require File.join(File.dirname(__FILE__), '..', 'lib', 'data_mapper', 'resource')
-require File.join(File.dirname(__FILE__), 'mock_adapter')
+require Pathname(__FILE__).dirname.parent + 'lib/data_mapper/resource'
+require Pathname(__FILE__).dirname + 'mock_adapter'
 
 # rSpec completely FUBARs everything if you give it a Module here.
 # So we give it a String of the module name instead.</diff>
      <filename>spec/resource_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'pp'
+require 'pathname'
 
 ENV['LOG_NAME'] = 'spec'
-require File.join(File.dirname(__FILE__), '..', 'environment')
\ No newline at end of file
+require Pathname(__FILE__).dirname.parent + 'environment'</diff>
      <filename>spec/spec_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), '..', 'spec_helper')
+require Pathname(__FILE__).dirname.parent + 'spec_helper'
 
 describe DataMapper::Support do
   it &quot;should mark empty objects as blank&quot; do</diff>
      <filename>spec/support/blank_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), '..', 'spec_helper')
+require Pathname(__FILE__).dirname.parent + 'spec_helper'
 
 describe DataMapper::Support::Object do
   </diff>
      <filename>spec/support/object_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), '..', 'spec_helper')
+require Pathname(__FILE__).dirname.parent + 'spec_helper'
 
 describe Struct do
   </diff>
      <filename>spec/support/struct_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require File.join(File.dirname(__FILE__), '..', 'spec_helper')
+require Pathname(__FILE__).dirname.parent + 'spec_helper'
 
 describe Symbol::Operator do
   </diff>
      <filename>spec/support/symbolic_operators_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,15 +3,11 @@ namespace :dm do
     require 'yaml'
     
     def fixtures_path
-      return ENV['FIXTURE_PATH'] if ENV['FIXTURE_PATH']
-      
-      fixture_path = %w(db dev schema spec).find do |parent|
-        File.exists?(&quot;#{DM_APP_ROOT}/#{parent}/fixtures&quot;)
+      @fixture_path ||= if ENV['FIXTURE_PATH']
+        Pathname(ENV['FIXTURE_PATH'])
+      else
+        Pathname.glob(&quot;#{DM_APP_ROOT}/{db,dev,schema,spec}/fixtures&quot;).first || raise('Fixtures path not found.')
       end
-      
-      raise &quot;Fixtures path not found.&quot; unless fixture_path
-      
-      &quot;#{DM_APP_ROOT}/#{fixture_path}/fixtures&quot;
     end
     
     task :dm_app_root do
@@ -22,11 +18,11 @@ namespace :dm do
     task :dump do
       ENV['AUTO_MIGRATE'] = 'false'
       Rake::Task['environment'].invoke
-      directory fixtures_path
+      fixtures_path.mkpath
       DataMapper::Base.subclasses.each do |klass|
         table = repository.table(klass)
         puts &quot;Dumping #{table}&quot;
-        File.open( &quot;#{fixtures_path}/#{table}.yaml&quot;, &quot;w+&quot;) do |file|
+        (fixtures_path + &quot;#{table}.yaml&quot;).open('w+') do |file|
           file.write YAML::dump(klass.all)
         end
       end
@@ -35,14 +31,14 @@ namespace :dm do
     desc 'Load database fixtures'
     task :load do
       Rake::Task['environment'].invoke
-      directory fixtures_path
+      fixtures_path.mkpath
       DataMapper::Base.subclasses.each do |klass|
         table = repository.table(klass)
-        file_name = &quot;#{fixtures_path}/#{table}.yaml&quot;
-        next unless File.exists?( file_name )
+        file_name = fixtures_path + &quot;#{table}.yaml&quot;
+        next unless file_name.file?
         puts &quot;Loading #{table}&quot;
         klass.delete_all
-        File.open( file_name, &quot;r&quot;) do |file|
+        file_name.open('r') do |file|
           YAML::load(file).each do |attributes|
             klass.create(attributes)
           end</diff>
      <filename>tasks/fixtures.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>184815ea004d0eb28ea66bce6a2bf0b3453a4421</id>
    </parent>
  </parents>
  <author>
    <name>Sam Smoot</name>
    <email>ssmoot@gmail.com</email>
  </author>
  <url>http://github.com/wycats/dm-core/commit/609167545da2241d87fae9478c29fcf54f310840</url>
  <id>609167545da2241d87fae9478c29fcf54f310840</id>
  <committed-date>2008-03-17T08:21:03-07:00</committed-date>
  <authored-date>2008-03-17T08:21:03-07:00</authored-date>
  <message>Applied Dan's patch to use Pathname for requires.</message>
  <tree>09e0927f2e1e13043ff8b7e5aed9545e3f9f5c4b</tree>
  <committer>
    <name>Sam Smoot</name>
    <email>ssmoot@gmail.com</email>
  </committer>
</commit>
