diff --git a/Library/Homebrew/bottle_version.rb b/Library/Homebrew/bottle_version.rb new file mode 100644 index 0000000000..6ad8ebeb7d --- /dev/null +++ b/Library/Homebrew/bottle_version.rb @@ -0,0 +1,8 @@ +class BottleVersion < Version + def self._parse spec + spec = Pathname.new(spec) unless spec.is_a? Pathname + stem = spec.stem + + super + end +end diff --git a/Library/Homebrew/bottles.rb b/Library/Homebrew/bottles.rb index 60a4dcca0a..ab484c1343 100644 --- a/Library/Homebrew/bottles.rb +++ b/Library/Homebrew/bottles.rb @@ -1,6 +1,7 @@ require 'tab' require 'macos' require 'extend/ARGV' +require 'bottle_version' # TODO: use options={} for some arguments. @@ -91,8 +92,8 @@ def bottle_tag end def bottle_filename_formula_name filename - version = Version.parse(filename).to_s path = Pathname.new filename + version = BottleVersion.parse(path).to_s basename = path.basename.to_s basename.rpartition("-#{version}").first end diff --git a/Library/Homebrew/test/test_bottle_versions.rb b/Library/Homebrew/test/test_bottle_versions.rb new file mode 100644 index 0000000000..f418912b7e --- /dev/null +++ b/Library/Homebrew/test/test_bottle_versions.rb @@ -0,0 +1,8 @@ +require 'testing_env' +require 'bottle_version' + +class BottleVersionParsingTests < Test::Unit::TestCase + def assert_version_detected expected, path + assert_equal expected, BottleVersion.parse(path).to_s + end +end