class Systematize::Runner

Constants

DATA_MIGRATIONS_PATH
DB_FOLDER_PATH
STRUCTURE_MIGRATIONS_PATH
TEMP_MIGRATIONS_FOLDER_PATH

Public Class Methods

run() { |TEMP_MIGRATIONS_FOLDER_PATH| ... } click to toggle source
# File lib/systematize/runner.rb, line 9
def self.run(&block)

  # Create temporary folder where all the migrations will be
  FileUtils.mkdir(TEMP_MIGRATIONS_FOLDER_PATH)

  #copy all the files to a temporary folder
  FileUtils.cp_r(Dir.glob("#{STRUCTURE_MIGRATIONS_PATH}/*.rb"), TEMP_MIGRATIONS_FOLDER_PATH)
  FileUtils.cp_r(Dir.glob("#{DATA_MIGRATIONS_PATH}/*.rb"), TEMP_MIGRATIONS_FOLDER_PATH)

  ActiveRecord::Base.transaction do
    yield(TEMP_MIGRATIONS_FOLDER_PATH)
  end

rescue Exception => e
  raise e

ensure
  # Remove the temporary folder
  FileUtils.rm_rf(TEMP_MIGRATIONS_FOLDER_PATH)
end