diff options
| -rw-r--r-- | Library/Homebrew/bottles.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/software_spec.rb | 14 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_software_spec.rb | 13 |
3 files changed, 22 insertions, 7 deletions
diff --git a/Library/Homebrew/bottles.rb b/Library/Homebrew/bottles.rb index ecbf70cc0..3fe921d7b 100644 --- a/Library/Homebrew/bottles.rb +++ b/Library/Homebrew/bottles.rb @@ -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 diff --git a/Library/Homebrew/software_spec.rb b/Library/Homebrew/software_spec.rb index 060568664..9ace95e21 100644 --- a/Library/Homebrew/software_spec.rb +++ b/Library/Homebrew/software_spec.rb @@ -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 diff --git a/Library/Homebrew/test/test_software_spec.rb b/Library/Homebrew/test/test_software_spec.rb index af3a4b450..eb828f95c 100644 --- a/Library/Homebrew/test/test_software_spec.rb +++ b/Library/Homebrew/test/test_software_spec.rb @@ -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 |
