diff options
| author | Xu Cheng | 2015-07-30 16:33:19 +0800 |
|---|---|---|
| committer | Xu Cheng | 2015-07-31 19:44:02 +0800 |
| commit | be9fde62669e082cc6d728258f5e9c0e030f1e0a (patch) | |
| tree | 8a6207ab6cf233d5c7bf11adac8fe24cd195a164 /Library | |
| parent | 773db6a3ba96e328894186948461e17895af2665 (diff) | |
| download | brew-be9fde62669e082cc6d728258f5e9c0e030f1e0a.tar.bz2 | |
Formulary#from_rack: auto resolve spec
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/formulary.rb | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/Library/Homebrew/formulary.rb b/Library/Homebrew/formulary.rb index f1fed506e..483ea934f 100644 --- a/Library/Homebrew/formulary.rb +++ b/Library/Homebrew/formulary.rb @@ -175,13 +175,16 @@ class Formulary end # Return a Formula instance for the given rack. - def self.from_rack(rack, spec=:stable) + # It will auto resolve formula's spec when requested spec is nil + def self.from_rack(rack, spec=nil) kegs = rack.directory? ? rack.subdirs.map { |d| Keg.new(d) } : [] keg = kegs.detect(&:linked?) || kegs.detect(&:optlinked?) || kegs.max_by(&:version) - return factory(rack.basename.to_s, spec) unless keg + return factory(rack.basename.to_s, spec || :stable) unless keg - tap = Tab.for_keg(keg).tap + tab = Tab.for_keg(keg) + tap = tab.tap + spec ||= tab.spec if tap.nil? || tap == "Homebrew/homebrew" || tap == "mxcl/master" factory(rack.basename.to_s, spec) |
