Sha256: a8157449465490b0ddd6d9b240640c8e914bd0837b0515053e85db035e4252d4
Contents?: true
Size: 1.96 KB
Versions: 5
Compression:
Stored size: 1.96 KB
Contents
module NamedSeeds class Railtie < Rails::Railtie config.named_seeds = ActiveSupport::OrderedOptions.new config.named_seeds.app_load_seed = false config.named_seeds.engines_with_load_seed = [] config.named_seeds.db_cleaner = ActiveSupport::OrderedOptions.new config.named_seeds.db_cleaner.orm = :active_record config.named_seeds.db_cleaner.connection = :test config.named_seeds.db_cleaner.strategy = :truncation config.named_seeds.db_cleaner.strategy_args = {} config.before_initialize do |app| Rails.application.paths.add 'db/test/seeds', :with => 'db/test/seeds.rb' end rake_tasks do load "named_seeds/railties/databases.rake" end def load_seed if seed_file setup_test_environment clean_test_database load_all_seeds end end protected def setup_test_environment unless Rails.env.test? ActiveRecord::Base.clear_all_connections! ActiveRecord::Base.configurations.clear silence_warnings { Object.const_set :RAILS_ENV, 'test' ; ENV['RAILS_ENV'] = 'test' ; Rails.instance_variable_set :@_env, nil } ActiveRecord::Base.configurations = Rails.configuration.database_configuration ActiveRecord::Base.establish_connection end end def clean_test_database require 'database_cleaner' DatabaseCleaner.logger = Rails.logger cleaner_opts = config.named_seeds.db_cleaner cleaner = DatabaseCleaner[cleaner_opts.orm, {:connection => cleaner_opts.connection}] cleaner.clean_with cleaner_opts.strategy, cleaner_opts.strategy_args end def load_all_seeds Rails.application.load_seed if config.named_seeds.app_load_seed config.named_seeds.engines_with_load_seed.each { |engine| engine.load_seed } load seed_file end def seed_file Rails.application.paths["db/test/seeds"].existent.first end end end
Version data entries
5 entries across 5 versions & 1 rubygems