diff options
| author | Xu Cheng | 2015-07-03 21:34:22 +0800 | 
|---|---|---|
| committer | Xu Cheng | 2015-07-06 18:04:59 +0800 | 
| commit | 024c2d508b2af9246d68861663331fba80b50a06 (patch) | |
| tree | 32697fd01671493abcf8dd25535e075fb4c2f0ff | |
| parent | b78cbb731421847cb4d172934f8a56a9749d69e6 (diff) | |
| download | brew-024c2d508b2af9246d68861663331fba80b50a06.tar.bz2 | |
auto resolve bottle root_url based on tap
| -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 | 
