class Redcord::Migration::Version

typed: strict

Constants

MIGRATION_VERSIONS_REDIS_KEY

Public Class Methods

new(redis: nil) click to toggle source
# File lib/redcord/migration/version.rb, line 11
def initialize(redis: nil)
  @redis = T.let(redis, T.nilable(Redis))
end

Public Instance Methods

all() click to toggle source
# File lib/redcord/migration/version.rb, line 21
def all
  if @redis
    remote_versions
  else
    local_versions
  end
end
current() click to toggle source
# File lib/redcord/migration/version.rb, line 16
def current
  all.sort.last
end

Private Instance Methods

local_versions() click to toggle source
# File lib/redcord/migration/version.rb, line 32
def local_versions
  Redcord::Migration::Migrator.migration_files.map do |filename|
    fields = Redcord::Migration::Migrator.parse_migration_filename(filename)
    fields[0]
  end
end
remote_versions() click to toggle source
# File lib/redcord/migration/version.rb, line 40
def remote_versions
  T.must(@redis).smembers(MIGRATION_VERSIONS_REDIS_KEY)
end