diff options
| author | Jack Nagel | 2013-09-17 21:25:39 -0500 |
|---|---|---|
| committer | Jack Nagel | 2013-09-17 21:29:52 -0500 |
| commit | bf2906ed9bb1910d82115012bf5e2b5b497b7d0f (patch) | |
| tree | 2469b3232c0490632e20608844d58cd2f17f9f72 /Library/Homebrew/software_spec.rb | |
| parent | cc51ab41dbcf80f2bb37584d45eaaa99ac9580b8 (diff) | |
| download | homebrew-bf2906ed9bb1910d82115012bf5e2b5b497b7d0f.tar.bz2 | |
Move formula resources to SoftwareSpec
Diffstat (limited to 'Library/Homebrew/software_spec.rb')
| -rw-r--r-- | Library/Homebrew/software_spec.rb | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/Library/Homebrew/software_spec.rb b/Library/Homebrew/software_spec.rb index 6f8191f78..eedbf47b4 100644 --- a/Library/Homebrew/software_spec.rb +++ b/Library/Homebrew/software_spec.rb @@ -6,7 +6,8 @@ require 'version' class SoftwareSpec extend Forwardable - def_delegators :@resource, :owner= + attr_reader :resources, :owner + def_delegators :@resource, :stage, :fetch def_delegators :@resource, :download_strategy, :verify_download_integrity def_delegators :@resource, :checksum, :mirrors, :specs, :using, :downloader @@ -14,6 +15,21 @@ class SoftwareSpec def initialize url=nil, version=nil @resource = Resource.new(:default, url, version) + @resources = {} + end + + def owner= owner + @resource.owner = owner + resources.each_value { |r| r.owner = owner } + end + + def resource name, &block + if block_given? + raise DuplicateResourceError.new(name) if resources.has_key?(name) + resources[name] = Resource.new(name, &block) + else + resources.fetch(name) { raise ResourceMissingError.new(owner, name) } + end end end |
