diff --git a/Library/Homebrew/formulary.rb b/Library/Homebrew/formulary.rb index 162385e60d..261a54fefb 100644 --- a/Library/Homebrew/formulary.rb +++ b/Library/Homebrew/formulary.rb @@ -57,7 +57,7 @@ class Formulary class_name = name.capitalize class_name.gsub!(/[-_.\s]([a-zA-Z0-9])/) { $1.upcase } class_name.tr!("+", "x") - class_name.gsub!(/\b@\b/, "AT") + class_name.sub!(/(.)@(\d)/, "\\1AT\\2") class_name end diff --git a/Library/Homebrew/test/test_utils.rb b/Library/Homebrew/test/test_utils.rb index 9b55965b54..9fd6f65ef6 100644 --- a/Library/Homebrew/test/test_utils.rb +++ b/Library/Homebrew/test/test_utils.rb @@ -244,4 +244,13 @@ class UtilTests < Homebrew::TestCase assert_match "homebrew/homebrew-core", e.message assert_match "homebrew/core", e.message end + + def test_bottles_bintray + assert_equal "openssl:1.1", Utils::Bottles::Bintray.package("openssl@1.1") + assert_equal "gtkx", Utils::Bottles::Bintray.package("gtk+") + assert_equal "llvm", Utils::Bottles::Bintray.package("llvm") + + tap = Tap.new("homebrew", "bintray-test") + assert_equal "bottles-bintray-test", Utils::Bottles::Bintray.repository(tap) + end end diff --git a/Library/Homebrew/utils/bottles.rb b/Library/Homebrew/utils/bottles.rb index d1798ecc95..927963bc1e 100644 --- a/Library/Homebrew/utils/bottles.rb +++ b/Library/Homebrew/utils/bottles.rb @@ -56,7 +56,10 @@ module Utils class Bintray def self.package(formula_name) - formula_name.to_s.tr("+", "x") + package_name = formula_name.to_s.dup + package_name.tr!("+", "x") + package_name.sub!(/(.)@(\d)/, "\\1:\\2") # Handle foo@1.2 style formulae. + package_name end def self.repository(tap = nil)