Rakefile in native_enum-1.0.0 vs Rakefile in native_enum-2.0.0
- old
+ new
@@ -7,18 +7,41 @@
require 'rake'
desc 'Default: run all unit tests.'
task :default => :"spec:all"
+require 'active_record'
+
+# For more info on DatabaseTasks, see:
+# https://github.com/rails/rails/blob/v5.0.7/activerecord/lib/active_record/tasks/database_tasks.rb
namespace :db do
+ task :load_config do
+ db_configs = YAML.load_file('spec/database.yml')
+ ActiveRecord::Tasks::DatabaseTasks.tap do |db_tasks|
+ ActiveRecord::Base.configurations = db_configs
+ db_tasks.database_configuration = db_configs
+ db_tasks.db_dir = 'db'
+ db_tasks.root = File.dirname(__FILE__)
+ end
+ end
+
desc 'Prepare the databases.'
- task :prepare do
+ task prepare: :load_config do
unless File.exist? DB_CONFIG
- cp "#{config_file}.tmpl", DB_CONFIG
+ cp "#{DB_CONFIG}.tmpl", DB_CONFIG
end
- #TODO would be nice to create the DBs here
+
+ ActiveRecord::Tasks::DatabaseTasks.tap do |db_tasks|
+ db_tasks.create_current('mysql')
+ db_tasks.create_current('sqlite')
+ end
end
+
+ desc "Drop all databases created for testing"
+ task drop_all: :load_config do
+ ActiveRecord::Tasks::DatabaseTasks.drop_all
+ end
end
require "rspec/core/rake_task"
desc 'Run the test suite.'
RSpec::Core::RakeTask.new(:spec) do |t|
@@ -28,25 +51,12 @@
desc 'Run the test suite for all DBs.'
namespace :spec do
task :all do
db_config = YAML::load(IO.read(DB_CONFIG))
- db_config.each do |db,config|
+ db_config.each do |db, config|
ENV["DB"] = db
Rake::Task["spec"].reenable
Rake::Task["spec"].invoke
- end
- end
-
- desc 'Run the test suite for all supported versions of rails and all DBs'
- task :rails_all do
- STDOUT.sync = true
- versions = Dir.glob(GEMFILES)
- versions.each do |gemfile|
- puts "Running specs for Gemfile: #{gemfile}"
- Bundler.with_clean_env do
- sh "bundle install --gemfile '#{gemfile}' --path 'vendor/#{File.extname(gemfile).slice(1..-1)}'"
- sh "BUNDLE_GEMFILE='#{gemfile}' bundle exec rake spec:all"
- end
end
end
end