diff options
| author | Jack Nagel | 2014-07-15 13:42:03 -0500 |
|---|---|---|
| committer | Jack Nagel | 2014-07-15 13:42:03 -0500 |
| commit | 7a03700f9c87bef17b13cc44e414806770d78ded (patch) | |
| tree | 2ad1ca07d7d9d5a5dbb9cc22327ed8fa7d05310e | |
| parent | a198e06f531998f03a8d36c71be9058e5209f9d9 (diff) | |
| download | homebrew-7a03700f9c87bef17b13cc44e414806770d78ded.tar.bz2 | |
Eagerly set the download strategy
| -rw-r--r-- | Library/Homebrew/resource.rb | 8 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_dependency_collector.rb | 3 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_resource.rb | 4 |
3 files changed, 9 insertions, 6 deletions
diff --git a/Library/Homebrew/resource.rb b/Library/Homebrew/resource.rb index 3409845a0..f8cb56e89 100644 --- a/Library/Homebrew/resource.rb +++ b/Library/Homebrew/resource.rb @@ -9,7 +9,8 @@ class Resource include FileUtils attr_reader :checksum, :mirrors, :specs, :using - attr_writer :url, :checksum, :version, :download_strategy + attr_writer :url, :checksum, :version + attr_accessor :download_strategy # Formula name must be set after the DSL, as we have no access to the # formula name before initialization of the formula @@ -34,10 +35,6 @@ class Resource name.nil? ? owner.name : "#{owner.name}--#{name}" end - def download_strategy - @download_strategy ||= DownloadStrategyDetector.detect(url, using) - end - def cached_download downloader.cached_location end @@ -104,6 +101,7 @@ class Resource @url = val @specs.merge!(specs) @using = @specs.delete(:using) + @download_strategy = DownloadStrategyDetector.detect(url, using) end def version val=nil diff --git a/Library/Homebrew/test/test_dependency_collector.rb b/Library/Homebrew/test/test_dependency_collector.rb index 760c3a06e..25ab71daa 100644 --- a/Library/Homebrew/test/test_dependency_collector.rb +++ b/Library/Homebrew/test/test_dependency_collector.rb @@ -128,7 +128,8 @@ class DependencyCollectorTests < Homebrew::TestCase def test_resource_dep_raises_for_unknown_classes resource = Resource.new - resource.url "foo", :using => Class.new + resource.url "foo" + resource.download_strategy = Class.new assert_raises(TypeError) { @d.add(resource) } end end diff --git a/Library/Homebrew/test/test_resource.rb b/Library/Homebrew/test/test_resource.rb index e17c194cc..e5cb288d2 100644 --- a/Library/Homebrew/test/test_resource.rb +++ b/Library/Homebrew/test/test_resource.rb @@ -38,6 +38,10 @@ class ResourceTests < Homebrew::TestCase assert_equal GitDownloadStrategy, @resource.download_strategy end + def test_raises_for_unknown_download_strategy_class + assert_raises(TypeError) { @resource.url("foo", :using => Class.new) } + end + def test_does_not_mutate_specs_hash specs = { :using => :git, :branch => 'master' } @resource.url('foo', specs) |
