class MonkeyButler::Migrations

Attributes

database[R]
path[R]

Public Class Methods

new(path, database) click to toggle source
# File lib/monkey_butler/migrations.rb, line 5
def initialize(path, database)
  @path = path
  @database = database
  migration_paths = Dir.glob(File.join(path, "*#{database.class.migration_ext}"))
  @paths_by_version = MonkeyButler::Util.migrations_by_version(migration_paths)
end

Public Instance Methods

[](version) click to toggle source
# File lib/monkey_butler/migrations.rb, line 48
def [](version)
  @paths_by_version[version]
end
all(&block) click to toggle source
# File lib/monkey_butler/migrations.rb, line 38
def all(&block)
  all_versions.inject({}) { |hash, v| hash[v] = self[v]; hash }.tap do |hash|
    hash.each(&block) if block_given?
  end
end
all_versions() click to toggle source
# File lib/monkey_butler/migrations.rb, line 16
def all_versions
  @paths_by_version.keys
end
applied_versions() click to toggle source
# File lib/monkey_butler/migrations.rb, line 24
def applied_versions
  database.migrations_table? ? database.all_versions : []
end
current_version() click to toggle source
# File lib/monkey_butler/migrations.rb, line 12
def current_version
  database.migrations_table? ? database.current_version : nil
end
latest_version() click to toggle source
# File lib/monkey_butler/migrations.rb, line 20
def latest_version
  all_versions.max
end
pending(&block) click to toggle source
# File lib/monkey_butler/migrations.rb, line 32
def pending(&block)
  pending_versions.inject({}) { |hash, v| hash[v] = self[v]; hash }.tap do |hash|
    hash.each(&block) if block_given?
  end
end
pending_versions() click to toggle source
# File lib/monkey_butler/migrations.rb, line 28
def pending_versions
  (all_versions - applied_versions).sort
end
up_to_date?() click to toggle source
# File lib/monkey_butler/migrations.rb, line 44
def up_to_date?
  pending_versions.empty?
end