diff --git a/Library/Homebrew/cmd/bottle.rb b/Library/Homebrew/cmd/bottle.rb index 954f6eb780eec5ffec96558cb8d09b24b45b6529..e582620bbd17b1c0174f074b6ea51ea08ca59867 100644 --- a/Library/Homebrew/cmd/bottle.rb +++ b/Library/Homebrew/cmd/bottle.rb @@ -125,7 +125,7 @@ module Homebrew bottle_revision = max ? max + 1 : 0 end - filename = Bottle::Filename.new(f.name, f.pkg_version, bottle_tag, bottle_revision) + filename = Bottle::Filename.create(f, bottle_tag, bottle_revision) if bottle_filename_formula_name(filename).empty? return ofail "Add a new regex to bottle_version.rb to parse #{f.version} from #{filename}" diff --git a/Library/Homebrew/software_spec.rb b/Library/Homebrew/software_spec.rb index 9a9db69fc7d3c977939785570ad434c10d830f6e..7b8a09e46fdeb87a0b6e99e57720dba20cfeb43c 100644 --- a/Library/Homebrew/software_spec.rb +++ b/Library/Homebrew/software_spec.rb @@ -116,6 +116,10 @@ class Bottle class Filename attr_reader :name, :version, :tag, :revision + def self.create(formula, tag, revision) + new(formula.name, formula.pkg_version, tag, revision) + end + def initialize(name, version, tag, revision) @name = name @version = version @@ -152,7 +156,7 @@ class Bottle checksum, tag = spec.checksum_for(bottle_tag) - filename = Filename.new(formula.name, formula.pkg_version, tag, spec.revision) + filename = Filename.create(formula, tag, spec.revision) @resource.url = build_url(spec.root_url, filename) @resource.download_strategy = CurlBottleDownloadStrategy @resource.version = formula.pkg_version diff --git a/Library/Homebrew/test/test_bottle_filename.rb b/Library/Homebrew/test/test_bottle_filename.rb index cad538be91e53903e4e47703e20d105dd2cc50c7..0c5fdec1a45db3f8b9a517ddd6482bf6bb016f7f 100644 --- a/Library/Homebrew/test/test_bottle_filename.rb +++ b/Library/Homebrew/test/test_bottle_filename.rb @@ -1,4 +1,5 @@ require "testing_env" +require "formula" require "software_spec" class BottleFilenameTests < Homebrew::TestCase @@ -17,4 +18,14 @@ class BottleFilenameTests < Homebrew::TestCase assert_equal expected, fn(0).to_s assert_equal expected, fn(0).to_str end + + def test_create + f = formula { + url "https://example.com/foo.tar.gz" + version "1.0" + } + + expected = "formula_name-1.0.tag.bottle.tar.gz" + assert_equal expected, Bottle::Filename.create(f, :tag, 0).to_s + end end