auto resolve bottle root_url based on tap
This commit is contained in:
parent
b78cbb7314
commit
024c2d508b
@ -67,7 +67,7 @@ class Bintray
|
||||
end
|
||||
|
||||
def self.repository(tap=nil)
|
||||
return "bottles" if tap.to_s.empty?
|
||||
return "bottles" if tap.nil? || tap == "Homebrew/homebrew" || tap == "mxcl/master"
|
||||
"bottles-#{tap.sub(/^homebrew\/(homebrew-)?/i, "")}"
|
||||
end
|
||||
end
|
||||
|
||||
@ -47,6 +47,7 @@ class SoftwareSpec
|
||||
def owner= owner
|
||||
@name = owner.name
|
||||
@full_name = owner.full_name
|
||||
@bottle_specification.tap = owner.tap
|
||||
@owner = owner
|
||||
@resource.owner = self
|
||||
resources.each_value do |r|
|
||||
@ -259,19 +260,26 @@ class BottleSpecification
|
||||
DEFAULT_PREFIX = "/usr/local".freeze
|
||||
DEFAULT_CELLAR = "/usr/local/Cellar".freeze
|
||||
DEFAULT_DOMAIN = "https://homebrew.bintray.com".freeze
|
||||
DEFAULT_ROOT_URL = "#{DEFAULT_DOMAIN}/bottles".freeze
|
||||
|
||||
attr_rw :root_url, :prefix, :cellar, :revision
|
||||
attr_rw :prefix, :cellar, :revision
|
||||
attr_accessor :tap
|
||||
attr_reader :checksum, :collector
|
||||
|
||||
def initialize
|
||||
@revision = 0
|
||||
@prefix = DEFAULT_PREFIX
|
||||
@cellar = DEFAULT_CELLAR
|
||||
@root_url = DEFAULT_ROOT_URL
|
||||
@collector = BottleCollector.new
|
||||
end
|
||||
|
||||
def root_url(var=nil)
|
||||
if var.nil?
|
||||
@root_url ||= "#{DEFAULT_DOMAIN}/#{Bintray.repository(tap)}"
|
||||
else
|
||||
@root_url = var
|
||||
end
|
||||
end
|
||||
|
||||
def compatible_cellar?
|
||||
cellar == :any || cellar == HOMEBREW_CELLAR.to_s
|
||||
end
|
||||
|
||||
@ -22,19 +22,24 @@ class SoftwareSpecTests < Homebrew::TestCase
|
||||
@spec.owner = Class.new do
|
||||
def name; "test"; end
|
||||
def full_name; "test"; end
|
||||
def tap; "Homebrew/homebrew"; end
|
||||
end.new
|
||||
assert_raises(ResourceMissingError) { @spec.resource('foo') }
|
||||
end
|
||||
|
||||
def test_set_owner
|
||||
owner = stub(:name => 'some_name', :full_name => 'some_name')
|
||||
owner = stub :name => 'some_name',
|
||||
:full_name => 'some_name',
|
||||
:tap => "Homebrew/homebrew"
|
||||
@spec.owner = owner
|
||||
assert_equal owner, @spec.owner
|
||||
end
|
||||
|
||||
def test_resource_owner
|
||||
@spec.resource('foo') { url 'foo-1.0' }
|
||||
@spec.owner = stub(:name => 'some_name', :full_name => 'some_name')
|
||||
@spec.owner = stub :name => 'some_name',
|
||||
:full_name => 'some_name',
|
||||
:tap => "Homebrew/homebrew"
|
||||
assert_equal 'some_name', @spec.name
|
||||
@spec.resources.each_value { |r| assert_equal @spec, r.owner }
|
||||
end
|
||||
@ -42,7 +47,9 @@ class SoftwareSpecTests < Homebrew::TestCase
|
||||
def test_resource_without_version_receives_owners_version
|
||||
@spec.url('foo-42')
|
||||
@spec.resource('bar') { url 'bar' }
|
||||
@spec.owner = stub(:name => 'some_name', :full_name => 'some_name')
|
||||
@spec.owner = stub :name => 'some_name',
|
||||
:full_name => 'some_name',
|
||||
:tap => "Homebrew/homebrew"
|
||||
assert_version_equal '42', @spec.resource('bar').version
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user