diff --git a/Library/Homebrew/cask/utils.rb b/Library/Homebrew/cask/utils.rb index c7019a1c50..976ec7f22f 100644 --- a/Library/Homebrew/cask/utils.rb +++ b/Library/Homebrew/cask/utils.rb @@ -111,9 +111,8 @@ module Cask def self.token_from(name) name.downcase .gsub("+", "-plus-") - .gsub("@", "-at-") .gsub(/[ _·•]/, "-") - .gsub(/[^\w-]/, "") + .gsub(/[^\w@-]/, "") .gsub(/--+/, "-") .delete_prefix("-") .delete_suffix("-") diff --git a/Library/Homebrew/test/dev-cmd/create_spec.rb b/Library/Homebrew/test/dev-cmd/create_spec.rb index f1cd4b526a..72b76b52f9 100644 --- a/Library/Homebrew/test/dev-cmd/create_spec.rb +++ b/Library/Homebrew/test/dev-cmd/create_spec.rb @@ -17,7 +17,12 @@ RSpec.describe Homebrew::DevCmd::Create do end it "generates valid cask tokens" do - t = Cask::Utils.token_from("A Foo@Bar_Baz++!") - expect(t).to eq("a-foo-at-bar-baz-plus-plus") + t = Cask::Utils.token_from("A FooBar_Baz++!") + expect(t).to eq("a-foobar-baz-plus-plus") + end + + it "retains @ in cask tokens" do + t = Cask::Utils.token_from("test@preview") + expect(t).to eq("test@preview") end end