Sha256: e255811997e18a6b893285aa14b2452870c662798f3b7439fa1ceb070da6f84b
Contents?: true
Size: 1.17 KB
Versions: 5
Compression:
Stored size: 1.17 KB
Contents
module MigrationBundler class Migrations attr_reader :path, :database def initialize(path, database) @path = path @database = database migration_paths = Dir.glob(File.join(path, "*#{database.class.migration_ext}")) @paths_by_version = MigrationBundler::Util.migrations_by_version(migration_paths) end def current_version database.migrations_table? ? database.current_version : nil end def all_versions @paths_by_version.keys end def latest_version all_versions.max end def applied_versions database.migrations_table? ? database.all_versions : [] end def pending_versions (all_versions - applied_versions).sort end def pending(&block) pending_versions.inject({}) { |hash, v| hash[v] = self[v]; hash }.tap do |hash| hash.each(&block) if block_given? end end def all(&block) all_versions.inject({}) { |hash, v| hash[v] = self[v]; hash }.tap do |hash| hash.each(&block) if block_given? end end def up_to_date? pending_versions.empty? end def [](version) @paths_by_version[version] end end end
Version data entries
5 entries across 5 versions & 1 rubygems