diff --git a/Library/Homebrew/cli/args.rb b/Library/Homebrew/cli/args.rb index af4920b1ce..75959eb054 100644 --- a/Library/Homebrew/cli/args.rb +++ b/Library/Homebrew/cli/args.rb @@ -108,23 +108,6 @@ module Homebrew .freeze end - def formulae_and_casks - require "cask/cask_loader" - require "cask/exceptions" - - @formulae_and_casks ||= downcased_unique_named.map do |name| - begin - Formulary.factory(name, spec) - rescue FormulaUnavailableError => e - begin - Cask::CaskLoader.load(name) - rescue Cask::CaskUnavailableError - raise e - end - end - end.uniq.freeze - end - def kegs require "keg" require "formula" diff --git a/Library/Homebrew/cmd/--cache.rb b/Library/Homebrew/cmd/--cache.rb index f4285f77d1..dc081fc083 100644 --- a/Library/Homebrew/cmd/--cache.rb +++ b/Library/Homebrew/cmd/--cache.rb @@ -3,6 +3,7 @@ require "fetch" require "cli/parser" require "cask/cmd" +require "cask/cask_loader" module Homebrew module_function @@ -30,18 +31,21 @@ module Homebrew if args.no_named? puts HOMEBREW_CACHE else - args.formulae_and_casks.each do |formula_or_cask| - case formula_or_cask - when Formula - formula = formula_or_cask + args.named.each do |name| + begin + formula = Formulary.factory name if Fetch.fetch_bottle?(formula) puts formula.bottle.cached_download else puts formula.cached_download end - when Cask::Cask - cask = formula_or_cask - puts "cask: #{Cask::Cmd::Cache.cached_location(cask)}" + rescue FormulaUnavailableError => e + begin + cask = Cask::CaskLoader.load name + puts "cask: #{Cask::Cmd::Cache.cached_location(cask)}" + rescue Cask::CaskUnavailableError + ofail "No available formula or cask with the name \"#{name}\"" + end end end end