aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Rakefile15
-rw-r--r--lib/arel/version.rb2
-rw-r--r--spec/spec_helper.rb24
-rw-r--r--spec/support/connections/mysql_connection.rb6
-rw-r--r--spec/support/connections/oracle_connection.rb8
-rw-r--r--spec/support/connections/postgresql_connection.rb6
-rw-r--r--spec/support/connections/sqlite3_connection.rb4
7 files changed, 34 insertions, 31 deletions
diff --git a/Rakefile b/Rakefile
index bc4fe6f839..66e4db38a6 100644
--- a/Rakefile
+++ b/Rakefile
@@ -27,18 +27,21 @@ else
end
namespace :spec do
- for adapter in %w[mysql sqlite3 postgresql oracle]
- desc "Run specs with the #{adapter} database adapter"
+ %w[mysql sqlite3 postgresql oracle].each do |adapter|
+ task "set_env_for_#{adapter}" do
+ ENV['ADAPTER'] = adapter
+ end
+
Spec::Rake::SpecTask.new(adapter) do |t|
t.spec_opts = ['--options', "\"#{File.dirname(__FILE__)}/spec/spec.opts\""]
t.libs << "#{File.dirname(__FILE__)}/vendor/rails/activerecord/lib"
t.libs << "#{File.dirname(__FILE__)}/spec"
# t.warning = true
- t.spec_files =
- ["spec/support/connections/#{adapter}_connection.rb"] +
- ["spec/support/schemas/#{adapter}_schema.rb"] +
- FileList['spec/**/*_spec.rb']
+ t.spec_files = FileList['spec/**/*_spec.rb']
end
+
+ desc "Run specs with the #{adapter} database adapter"
+ task adapter => "set_env_for_#{adapter}"
end
end
diff --git a/lib/arel/version.rb b/lib/arel/version.rb
index ab126caff4..cf421c5db0 100644
--- a/lib/arel/version.rb
+++ b/lib/arel/version.rb
@@ -1,3 +1,3 @@
module Arel
- VERSION = "0.3.1"
+ VERSION = "0.3.1" unless defined?(Arel::VERSION)
end \ No newline at end of file
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 5941840437..a52fa257b7 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -7,6 +7,10 @@ require 'pp'
require 'fileutils'
require 'arel'
+if adapter = ENV['ADAPTER']
+ require "support/connections/#{adapter}_connection.rb"
+end
+
Dir["#{dir}/{support,shared}/*.rb"].each do |file|
require file
end
@@ -16,13 +20,17 @@ Spec::Runner.configure do |config|
config.include AdapterGuards
config.include Check
- config.before do
- Arel::Table.engine = Arel::Sql::Engine.new(ActiveRecord::Base) if defined?(ActiveRecord::Base)
- end
-end
+ if defined?(ActiveRecord::Base)
+ tmp = File.expand_path('../../tmp', __FILE__)
-# load corresponding adapter using ADAPTER environment variable when running single *_spec.rb file
-if adapter = ENV['ADAPTER']
- require "#{dir}/support/connections/#{adapter}_connection.rb"
- require "#{dir}/support/schemas/#{adapter}_schema.rb"
+ FileUtils.mkdir_p(tmp)
+ ActiveRecord::Base.logger = Logger.new("#{tmp}/debug.log")
+ ActiveRecord::Base.establish_connection("unit")
+
+ require "support/schemas/#{ENV['ADAPTER']}_schema.rb"
+
+ config.before do
+ Arel::Table.engine = Arel::Sql::Engine.new(ActiveRecord::Base)
+ end
+ end
end
diff --git a/spec/support/connections/mysql_connection.rb b/spec/support/connections/mysql_connection.rb
index 66a53b5037..de9d05c2ce 100644
--- a/spec/support/connections/mysql_connection.rb
+++ b/spec/support/connections/mysql_connection.rb
@@ -2,7 +2,7 @@ puts "Using native MySQL"
require "active_record"
require 'logger'
-ActiveRecord::Base.logger = Logger.new("debug.log")
+ENV['ADAPTER'] = 'mysql'
ActiveRecord::Base.configurations = {
'unit' => {
@@ -11,6 +11,4 @@ ActiveRecord::Base.configurations = {
:encoding => 'utf8',
:database => 'arel_unit',
}
-}
-
-ActiveRecord::Base.establish_connection 'unit'
+} \ No newline at end of file
diff --git a/spec/support/connections/oracle_connection.rb b/spec/support/connections/oracle_connection.rb
index 05be04e410..c28602b134 100644
--- a/spec/support/connections/oracle_connection.rb
+++ b/spec/support/connections/oracle_connection.rb
@@ -2,11 +2,11 @@ puts "Using native Oracle"
require "active_record"
require 'logger'
+ENV['ADAPTER'] = 'oracle'
+
# Prepend oracle_enhanced local development directory in front of load path
$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../../../oracle-enhanced/lib"
-ActiveRecord::Base.logger = Logger.new("debug.log")
-
ActiveRecord::Base.configurations = {
'unit' => {
:adapter => 'oracle_enhanced',
@@ -14,6 +14,4 @@ ActiveRecord::Base.configurations = {
:password => 'arel_unit',
:database => 'orcl',
}
-}
-
-ActiveRecord::Base.establish_connection 'unit'
+} \ No newline at end of file
diff --git a/spec/support/connections/postgresql_connection.rb b/spec/support/connections/postgresql_connection.rb
index 0fb6dfe065..34d304efa9 100644
--- a/spec/support/connections/postgresql_connection.rb
+++ b/spec/support/connections/postgresql_connection.rb
@@ -2,7 +2,7 @@ puts "Using native PostgreSQL"
require "active_record"
require 'logger'
-ActiveRecord::Base.logger = Logger.new("debug.log")
+ENV['ADAPTER'] = 'postgresql'
ActiveRecord::Base.configurations = {
'unit' => {
@@ -10,6 +10,4 @@ ActiveRecord::Base.configurations = {
:encoding => 'utf8',
:database => 'arel_unit',
}
-}
-
-ActiveRecord::Base.establish_connection 'unit'
+} \ No newline at end of file
diff --git a/spec/support/connections/sqlite3_connection.rb b/spec/support/connections/sqlite3_connection.rb
index abdbd24fe4..4c8627c795 100644
--- a/spec/support/connections/sqlite3_connection.rb
+++ b/spec/support/connections/sqlite3_connection.rb
@@ -2,7 +2,7 @@ puts "Using native SQLite3"
require "active_record"
require 'logger'
-ActiveRecord::Base.logger = Logger.new("debug.log")
+ENV['ADAPTER'] = 'sqlite3'
db_file = "spec/support/fixtures/fixture_database.sqlite3"
@@ -22,5 +22,3 @@ unless File.exist?(db_file)
puts "Executing '#{sqlite_command}'"
raise "Seems that there is no sqlite3 executable available" unless system(sqlite_command)
end
-
-ActiveRecord::Base.establish_connection("unit")