Inline index_by
This commit is contained in:
		
							parent
							
								
									df140b329f
								
							
						
					
					
						commit
						2f8ad2f5e6
					
				@ -2,24 +2,6 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
module Enumerable
 | 
			
		||||
  # Convert an enumerable to a hash, using the block result as the key and the
 | 
			
		||||
  # element as the value.
 | 
			
		||||
  #
 | 
			
		||||
  #   people.index_by(&:login)
 | 
			
		||||
  #   # => { "nextangle" => <Person ...>, "chade-" => <Person ...>, ...}
 | 
			
		||||
  #
 | 
			
		||||
  #   people.index_by { |person| "#{person.first_name} #{person.last_name}" }
 | 
			
		||||
  #   # => { "Chade- Fowlersburg-e" => <Person ...>, "David Heinemeier Hansson" => <Person ...>, ...}
 | 
			
		||||
  def index_by(&block)
 | 
			
		||||
    if block
 | 
			
		||||
      result = {}
 | 
			
		||||
      each { |elem| result[yield(elem)] = elem }
 | 
			
		||||
      result
 | 
			
		||||
    else
 | 
			
		||||
      T.unsafe(self).to_enum(:index_by) { T.unsafe(self).size if respond_to?(:size) }
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # The negative of the <tt>Enumerable#include?</tt>. Returns +true+ if the
 | 
			
		||||
  # collection does not include the object.
 | 
			
		||||
  sig { params(object: T.untyped).returns(T::Boolean) }
 | 
			
		||||
 | 
			
		||||
@ -565,8 +565,8 @@ on_request: installed_on_request?, options: options)
 | 
			
		||||
  def expand_requirements
 | 
			
		||||
    unsatisfied_reqs = Hash.new { |h, k| h[k] = [] }
 | 
			
		||||
    formulae = [formula]
 | 
			
		||||
    formula_deps_map = formula.recursive_dependencies
 | 
			
		||||
                              .index_by(&:name)
 | 
			
		||||
    formula_deps_map = {}
 | 
			
		||||
    formula.recursive_dependencies.each { |dep| formula_deps_map[dep.name] = dep }
 | 
			
		||||
 | 
			
		||||
    while (f = formulae.pop)
 | 
			
		||||
      runtime_requirements = runtime_requirements(f)
 | 
			
		||||
@ -1206,10 +1206,11 @@ on_request: installed_on_request?, options: options)
 | 
			
		||||
  def fetch_bottle_tab
 | 
			
		||||
    @fetch_bottle_tab ||= begin
 | 
			
		||||
      formula.fetch_bottle_tab
 | 
			
		||||
      @bottle_tab_runtime_dependencies = formula.bottle_tab_attributes
 | 
			
		||||
                                                .fetch("runtime_dependencies", [])
 | 
			
		||||
                                                .index_by { |dep| dep["full_name"] }
 | 
			
		||||
                                                .freeze
 | 
			
		||||
      @bottle_tab_runtime_dependencies = {}
 | 
			
		||||
      formula.bottle_tab_attributes
 | 
			
		||||
             .fetch("runtime_dependencies", [])
 | 
			
		||||
             .each { |dep| @bottle_tab_runtime_dependencies[dep["full_name"]] = dep }
 | 
			
		||||
      @bottle_tab_runtime_dependencies.freeze
 | 
			
		||||
      true
 | 
			
		||||
    rescue DownloadError, ArgumentError
 | 
			
		||||
      @fetch_bottle_tab = true
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user