Merge pull request #13443 from Rylan12/caskroom-speed-improvement
Cleanup `Cask::Caskroom::casks`
This commit is contained in:
		
						commit
						2b01354f2f
					
				@ -236,10 +236,7 @@ module Cask
 | 
				
			|||||||
      when 2..Float::INFINITY
 | 
					      when 2..Float::INFINITY
 | 
				
			||||||
        loaders = possible_tap_casks.map(&FromTapPathLoader.method(:new))
 | 
					        loaders = possible_tap_casks.map(&FromTapPathLoader.method(:new))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        raise CaskError, <<~EOS
 | 
					        raise TapCaskAmbiguityError.new(ref, loaders)
 | 
				
			||||||
          Cask #{ref} exists in multiple taps:
 | 
					 | 
				
			||||||
          #{loaders.map { |loader| "  #{loader.tap}/#{loader.token}" }.join("\n")}
 | 
					 | 
				
			||||||
        EOS
 | 
					 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      possible_installed_cask = Cask.new(ref)
 | 
					      possible_installed_cask = Cask.new(ref)
 | 
				
			||||||
 | 
				
			|||||||
@ -47,14 +47,10 @@ module Cask
 | 
				
			|||||||
        token = path.basename.to_s
 | 
					        token = path.basename.to_s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        begin
 | 
					        begin
 | 
				
			||||||
          if (tap_path = CaskLoader.tap_paths(token).first)
 | 
					 | 
				
			||||||
            CaskLoader::FromTapPathLoader.new(tap_path).load(config: config)
 | 
					 | 
				
			||||||
          elsif (caskroom_path = Pathname.glob(path.join(".metadata/*/*/*/*.rb")).first) &&
 | 
					 | 
				
			||||||
                (!Homebrew::EnvConfig.install_from_api? || !Homebrew::API::CaskSource.available?(token))
 | 
					 | 
				
			||||||
            CaskLoader::FromPathLoader.new(caskroom_path).load(config: config)
 | 
					 | 
				
			||||||
          else
 | 
					 | 
				
			||||||
          CaskLoader.load(token, config: config)
 | 
					          CaskLoader.load(token, config: config)
 | 
				
			||||||
          end
 | 
					        rescue TapCaskAmbiguityError
 | 
				
			||||||
 | 
					          tap_path = CaskLoader.tap_paths(token).first
 | 
				
			||||||
 | 
					          CaskLoader::FromTapPathLoader.new(tap_path).load(config: config)
 | 
				
			||||||
        rescue CaskUnavailableError
 | 
					        rescue CaskUnavailableError
 | 
				
			||||||
          # Don't blow up because of a single unavailable cask.
 | 
					          # Don't blow up because of a single unavailable cask.
 | 
				
			||||||
          nil
 | 
					          nil
 | 
				
			||||||
 | 
				
			|||||||
@ -124,6 +124,20 @@ module Cask
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Error when a cask with the same name is found in multiple taps.
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # @api private
 | 
				
			||||||
 | 
					  class TapCaskAmbiguityError < CaskError
 | 
				
			||||||
 | 
					    extend T::Sig
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def initialize(ref, loaders)
 | 
				
			||||||
 | 
					      super <<~EOS
 | 
				
			||||||
 | 
					        Cask #{ref} exists in multiple taps:
 | 
				
			||||||
 | 
					        #{loaders.map { |loader| "  #{loader.tap}/#{loader.token}" }.join("\n")}
 | 
				
			||||||
 | 
					      EOS
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Error when a cask already exists.
 | 
					  # Error when a cask already exists.
 | 
				
			||||||
  #
 | 
					  #
 | 
				
			||||||
  # @api private
 | 
					  # @api private
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user