Sha256: 8c1e3997cd348a1b0a7846cecc6262b68633d65af4c865f0abef5190148d343c
Contents?: true
Size: 1.16 KB
Versions: 1
Compression:
Stored size: 1.16 KB
Contents
module MonkeyButler 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 = MonkeyButler::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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
monkey_butler-1.2.2 | lib/monkey_butler/migrations.rb |