diff options
| author | Xu Cheng | 2016-02-25 14:14:33 +0800 |
|---|---|---|
| committer | Xu Cheng | 2016-02-25 17:22:28 +0800 |
| commit | 87ecd621ebd3f3bfc170fc6e09eba84301b80027 (patch) | |
| tree | 937f65705f90fff9969e994520ecf10ebf5cb1a8 | |
| parent | a7869783ada72693b4c1cd1b3247e268a35f7348 (diff) | |
| download | brew-87ecd621ebd3f3bfc170fc6e09eba84301b80027.tar.bz2 | |
add Tap#tap_migrations
This enables tap migration feature in per tap case, which will
ultimately help core/formula separation.
| -rw-r--r-- | Library/Homebrew/core_formula_repository.rb | 6 | ||||
| -rw-r--r-- | Library/Homebrew/tap.rb | 12 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_tap.rb | 4 |
3 files changed, 22 insertions, 0 deletions
diff --git a/Library/Homebrew/core_formula_repository.rb b/Library/Homebrew/core_formula_repository.rb index 124e9ea3a..c29b89566 100644 --- a/Library/Homebrew/core_formula_repository.rb +++ b/Library/Homebrew/core_formula_repository.rb @@ -69,6 +69,12 @@ class CoreFormulaRepository < Tap end # @private + def tap_migrations + require "tap_migrations" + TAP_MIGRATIONS + end + + # @private def formula_file_to_name(file) file.basename(".rb").to_s end diff --git a/Library/Homebrew/tap.rb b/Library/Homebrew/tap.rb index 08e85688d..b1bc9ab0b 100644 --- a/Library/Homebrew/tap.rb +++ b/Library/Homebrew/tap.rb @@ -76,6 +76,7 @@ class Tap @alias_reverse_table = nil @command_files = nil @formula_renames = nil + @tap_migrations = nil end # The remote path to this {Tap}. @@ -370,6 +371,17 @@ class Tap end end + # Hash with tap migrations + def tap_migrations + require "utils/json" + + @tap_migrations ||= if (migration_file = path/"tap_migrations.json").file? + Utils::JSON.load(migration_file.read) + else + {} + end + end + def ==(other) other = Tap.fetch(other) if other.is_a?(String) self.class == other.class && self.name == other.name diff --git a/Library/Homebrew/test/test_tap.rb b/Library/Homebrew/test/test_tap.rb index 1159eb992..278132bad 100644 --- a/Library/Homebrew/test/test_tap.rb +++ b/Library/Homebrew/test/test_tap.rb @@ -20,6 +20,9 @@ class TapTest < Homebrew::TestCase (@path/"formula_renames.json").write <<-EOS.undent { "oldname": "foo" } EOS + (@path/"tap_migrations.json").write <<-EOS.undent + { "removed-formula": "homebrew/foo" } + EOS @cmd_file = @path/"cmd/brew-tap-cmd.rb" @cmd_file.parent.mkpath FileUtils.touch @cmd_file @@ -93,6 +96,7 @@ class TapTest < Homebrew::TestCase assert_equal @tap.alias_table, "homebrew/foo/bar" => "homebrew/foo/foo" assert_equal @tap.alias_reverse_table, "homebrew/foo/foo" => ["homebrew/foo/bar"] assert_equal @tap.formula_renames, "oldname" => "foo" + assert_equal @tap.tap_migrations, "removed-formula" => "homebrew/foo" assert_equal [@cmd_file], @tap.command_files assert_kind_of Hash, @tap.to_hash assert_equal true, @tap.formula_file?(@formula_file) |
