Sha256: 395518e466020743366feeea21dbef8dc685797b4880d321014bc5d467c03a49

Contents?: true

Size: 1.72 KB

Versions: 7

Compression:

Stored size: 1.72 KB

Contents

require "pathname"
require "rubygems"
require "rake"
require "rake/testtask"

DIR      = Pathname.new(File.dirname(__FILE__))
ADAPTERS = %w(mysql postgresql sqlite sqlite3 oracle)

task :default => ["test:mysql"]

task :boot do 
  require DIR.join("lib", "ar-extensions").expand_path
  require DIR.join("db", "migrate", "version").expand_path
end

ADAPTERS.each do |adapter|
  namespace :db do
    namespace :test do
      desc "Builds test database for #{adapter}"
      task "prepare_#{adapter}" do
        ruby "#{DIR.join('tests', 'prepare.rb')} #{adapter}"
      end
    end
  end

  namespace :test do
    desc "Test base extensions for #{adapter}"
    task(adapter) do
      ENV["ARE_DB"] = adapter
      Rake::Task["db:test:prepare_#{adapter}"].invoke
      ruby "#{DIR.join('tests', 'run.rb')} #{adapter}" 
    end
  end
  
  namespace :activerecord do
    desc "Runs ActiveRecord unit tests for #{adapter} with ActiveRecord::Extensions"
    task(adapter) do
      activerecord_dir = ARGV[1]
      if activerecord_dir.nil? || !File.directory?(activerecord_dir)
        puts "ERROR: Pass in the path to ActiveRecord. Eg: /home/zdennis/rails_trunk/activerecord"
        exit
      end
      
      old_dir, old_env = Dir.pwd, ENV["RUBYOPT"]
      Dir.chdir(activerecord_dir)
      ENV["RUBYOPT"] = "-r#{File.join(old_dir,'init.rb')}"

      load "Rakefile"

      Rake::Task["test_#{adapter}"].invoke
      Dir.chdir(old_dir)
      ENV["RUBYOPT"] = old_env
    end      

    desc "Runs ActiveRecord unit tests for #{adapter} with ActiveRecord::Extensions with ALL available #{adapter} functionality"
    task "#{adapter}_all" do
      ENV["LOAD_ADAPTER_EXTENSIONS"] = adapter
      Rake::Task["test:activerecord:#{adapter}"].invoke
    end
  end    
end

Version data entries

7 entries across 7 versions & 3 rubygems

Version Path
ar-extensions-0.9.5 Rakefile
ar-extensions-0.9.4 Rakefile
ghazel-ar-extensions-0.9.3.2 Rakefile
ghazel-ar-extensions-0.9.3.1 Rakefile
ghazel-ar-extensions-0.9.3 Rakefile
ar-extensions-0.9.3 Rakefile
Empact-ar-extensions-0.9.2 Rakefile