Class: MigrationBundler::Migrations
- Inherits:
-
Object
- Object
- MigrationBundler::Migrations
- Defined in:
- lib/migration_bundler/migrations.rb
Instance Attribute Summary collapse
-
#database ⇒ Object
readonly
Returns the value of attribute database.
-
#path ⇒ Object
readonly
Returns the value of attribute path.
Instance Method Summary collapse
- #[](version) ⇒ Object
- #all(&block) ⇒ Object
- #all_versions ⇒ Object
- #applied_versions ⇒ Object
- #current_version ⇒ Object
-
#initialize(path, database) ⇒ Migrations
constructor
A new instance of Migrations.
- #latest_version ⇒ Object
- #pending(&block) ⇒ Object
- #pending_versions ⇒ Object
- #up_to_date? ⇒ Boolean
Constructor Details
#initialize(path, database) ⇒ Migrations
Returns a new instance of Migrations.
5 6 7 8 9 10 |
# File 'lib/migration_bundler/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 = MigrationBundler::Util.migrations_by_version(migration_paths) end |
Instance Attribute Details
#database ⇒ Object (readonly)
Returns the value of attribute database.
3 4 5 |
# File 'lib/migration_bundler/migrations.rb', line 3 def database @database end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
3 4 5 |
# File 'lib/migration_bundler/migrations.rb', line 3 def path @path end |
Instance Method Details
#[](version) ⇒ Object
48 49 50 |
# File 'lib/migration_bundler/migrations.rb', line 48 def [](version) @paths_by_version[version] end |
#all(&block) ⇒ Object
38 39 40 41 42 |
# File 'lib/migration_bundler/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 ⇒ Object
16 17 18 |
# File 'lib/migration_bundler/migrations.rb', line 16 def all_versions @paths_by_version.keys end |
#applied_versions ⇒ Object
24 25 26 |
# File 'lib/migration_bundler/migrations.rb', line 24 def applied_versions database.migrations_table? ? database.all_versions : [] end |
#current_version ⇒ Object
12 13 14 |
# File 'lib/migration_bundler/migrations.rb', line 12 def current_version database.migrations_table? ? database.current_version : nil end |
#latest_version ⇒ Object
20 21 22 |
# File 'lib/migration_bundler/migrations.rb', line 20 def latest_version all_versions.max end |
#pending(&block) ⇒ Object
32 33 34 35 36 |
# File 'lib/migration_bundler/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 ⇒ Object
28 29 30 |
# File 'lib/migration_bundler/migrations.rb', line 28 def pending_versions (all_versions - applied_versions).sort end |
#up_to_date? ⇒ Boolean
44 45 46 |
# File 'lib/migration_bundler/migrations.rb', line 44 def up_to_date? pending_versions.empty? end |