class Reactor::MigrationProxy

Class responsible for running a single migration, a helper for Migrator

Public Class Methods

new(versioner, name, version, direction, filename) click to toggle source
# File lib/reactor/tools/migrator.rb, line 6
def initialize(versioner, name, version, direction, filename)
  @versioner = versioner
  @name = name
  @version = version
  @filename = filename
  @direction = direction
end

Public Instance Methods

class_name() click to toggle source
# File lib/reactor/tools/migrator.rb, line 46
def class_name
  return Kernel.const_get(@name)
end
down() click to toggle source
# File lib/reactor/tools/migrator.rb, line 37
def down
  result = class_name.send(:down) and @versioner.remove(@version)
  class_name.contained.each do |version|
    puts "#{class_name.to_s} contains migration #{version}"
    @versioner.remove(version)
  end if result
  result
end
filename() click to toggle source
# File lib/reactor/tools/migrator.rb, line 58
def filename
  @filename
end
load_migration() click to toggle source
# File lib/reactor/tools/migrator.rb, line 14
def load_migration
  load @filename
end
name() click to toggle source
# File lib/reactor/tools/migrator.rb, line 50
def name
  @name
end
run() click to toggle source
# File lib/reactor/tools/migrator.rb, line 18
def run
  return down if @direction.to_sym == :down
  return up
end
up() click to toggle source
# File lib/reactor/tools/migrator.rb, line 23
def up
  if @versioner.applied?(@version) then
    puts "Migrating up: #{@name} (#{@filename}) already applied, skipping"
    return true
  else
    result = class_name.send(:up) and @versioner.add(@version)
    class_name.contained.each do |version|
      puts "#{class_name.to_s} contains migration #{version}"
      #@versioner.add(version) # not neccesary!
    end if result
    result
  end
end
version() click to toggle source
# File lib/reactor/tools/migrator.rb, line 54
def version
  @version
end