Class: RSpec::Multicore::Rails::DatabaseManager
- Inherits:
-
Object
- Object
- RSpec::Multicore::Rails::DatabaseManager
- Defined in:
- lib/rspec/multicore/rails/database_manager.rb
Overview
Names, prepares, and connects worker-owned ActiveRecord databases.
Instance Method Summary collapse
- #connect_worker(slot) ⇒ Object
- #database_for(slot) ⇒ Object
- #drop_workers ⇒ Object
-
#initialize ⇒ DatabaseManager
constructor
A new instance of DatabaseManager.
- #prepare_all ⇒ Object
- #workers ⇒ Object
Constructor Details
#initialize ⇒ DatabaseManager
Returns a new instance of DatabaseManager.
11 12 13 14 |
# File 'lib/rspec/multicore/rails/database_manager.rb', line 11 def initialize ensure_test_environment! @base_config = ActiveRecord::Base.connection_db_config end |
Instance Method Details
#connect_worker(slot) ⇒ Object
16 17 18 19 |
# File 'lib/rspec/multicore/rails/database_manager.rb', line 16 def connect_worker(slot) ActiveRecord::Base.connection_handler.clear_all_connections! ActiveRecord::Base.establish_connection(config_for(slot)) end |
#database_for(slot) ⇒ Object
31 |
# File 'lib/rspec/multicore/rails/database_manager.rb', line 31 def database_for(slot) = slot == 1 ? base_database : suffixed_database(slot) |
#drop_workers ⇒ Object
28 |
# File 'lib/rspec/multicore/rails/database_manager.rb', line 28 def drop_workers = worker_slots.drop(1).each { drop(_1) } |
#prepare_all ⇒ Object
21 22 23 24 25 26 |
# File 'lib/rspec/multicore/rails/database_manager.rb', line 21 def prepare_all worker_slots.each do |slot| purge(slot) ActiveRecord::Tasks::DatabaseTasks.load_schema(hash_config_for(slot)) end end |