module Pspec::Replicator

Public Class Methods

optimal_processors_count() click to toggle source
# File lib/pspec/replicator.rb, line 4
def optimal_processors_count
  [Parallel.processor_count - 1, 1].max
end
replicate() click to toggle source
# File lib/pspec/replicator.rb, line 8
def replicate
  (optimal_processors_count - 1).times do |index|
    number = index + 2

    drop_database number
    create_database number

    Rails.logger.info "Database #{database number} was created"
  end
end

Private Class Methods

create_database(number) click to toggle source
# File lib/pspec/replicator.rb, line 24
def create_database(number)
  ActiveRecord::Base.connection.execute %(create database "#{database number}" with template "#{database}" owner "#{owner}")
end
database(number = nil) click to toggle source
# File lib/pspec/replicator.rb, line 28
def database(number = nil)
  "#{ActiveRecord::Base.configurations['test']['database']}#{number}"
end
drop_database(number) click to toggle source
# File lib/pspec/replicator.rb, line 20
def drop_database(number)
  ActiveRecord::Base.connection.execute %(drop database if exists "#{database number}")
end
owner() click to toggle source
# File lib/pspec/replicator.rb, line 32
def owner
  ActiveRecord::Base.configurations['test']['username']
end