Sha256: 0cabdcd62ed0630bfa5a966b60a9caacb0d50accf7d506efc7d86924d3243521

Contents?: true

Size: 1.71 KB

Versions: 6

Compression:

Stored size: 1.71 KB

Contents

require 'jdbc_common'
require 'rake'

module AbstractDbCreate
  def setup
    @prevapp = Rake.application
    Rake.application = Rake::Application.new
    verbose(true)
    @prevenv = Object.const_get("RAILS_ENV") rescue nil
    @prevroot = Object.const_get("RAILS_ENV") rescue nil
    Object.const_set("RAILS_ENV", "unittest")
    Object.const_set("RAILS_ROOT", ".")
    @prevconfigs = ActiveRecord::Base.configurations
    ActiveRecord::Base.connection.disconnect!
    @db_name = 'test_rake_db_create'
    require 'initializer'
    the_db_name = @db_name
    the_db_config = db_config
    configurations = @configs = { "unittest" => the_db_config.merge({:database => the_db_name}).stringify_keys! }
    Rails::Configuration.class_eval do
      define_method(:database_configuration) { configurations }
    end
    load rails_databases_rake_file
    load File.dirname(__FILE__) + '/../lib/jdbc_adapter/jdbc.rake' if jruby?
    task :environment do
      ActiveRecord::Base.configurations = configurations
    end
    task :rails_env
  end

  def teardown
    Rake::Task["db:drop"].invoke
    Rake.application = @prevapp
    Object.const_set("RAILS_ENV", @prevenv) if @prevenv
    Object.const_set("RAILS_ROOT", @prevroot) if @prevroot
    ActiveRecord::Base.configurations = @prevconfigs
    ActiveRecord::Base.establish_connection(db_config)
  end

  def rails_databases_rake_file
    ar_version = $LOADED_FEATURES.grep(%r{active_record/version}).first
    ar_lib_path = $LOAD_PATH.detect {|p| p if File.exist?File.join(p, ar_version)}
    ar_lib_path = ar_lib_path.sub(%r{activerecord/lib}, 'railties/lib') # edge rails
    rails_lib_path = ar_lib_path.sub(/activerecord/, 'rails') # gem rails
    "#{rails_lib_path}/tasks/databases.rake"
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
jpzwarte-activerecord-jdbc-adapter-0.9.2.6 test/abstract_db_create.rb
jpzwarte-activerecord-jdbc-adapter-0.9.2.5 test/abstract_db_create.rb
jpzwarte-activerecord-jdbc-adapter-0.9.2.4 test/abstract_db_create.rb
jpzwarte-activerecord-jdbc-adapter-0.9.2.3 test/abstract_db_create.rb
jpzwarte-activerecord-jdbc-adapter-0.9.2.2 test/abstract_db_create.rb
jpzwarte-activerecord-jdbc-adapter-0.9.2.1 test/abstract_db_create.rb