Reduce repeated array inclusion check
Currently we check if "tag" is present in LANGUAGE_MODULES for every String dep, even if tag is nil. Stop doing this, and make the LANGUAGE_MODULES array into a Set instead to improve lookup performance.
This commit is contained in:
		
							parent
							
								
									3a0726406b
								
							
						
					
					
						commit
						0fb4f9c426
					
				@ -2,6 +2,7 @@ require 'dependency'
 | 
				
			|||||||
require 'dependencies'
 | 
					require 'dependencies'
 | 
				
			||||||
require 'requirement'
 | 
					require 'requirement'
 | 
				
			||||||
require 'requirements'
 | 
					require 'requirements'
 | 
				
			||||||
 | 
					require 'set'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## A dependency is a formula that another formula needs to install.
 | 
					## A dependency is a formula that another formula needs to install.
 | 
				
			||||||
## A requirement is something other than a formula that another formula
 | 
					## A requirement is something other than a formula that another formula
 | 
				
			||||||
@ -15,7 +16,7 @@ require 'requirements'
 | 
				
			|||||||
# specifications into the proper kinds of dependencies and requirements.
 | 
					# specifications into the proper kinds of dependencies and requirements.
 | 
				
			||||||
class DependencyCollector
 | 
					class DependencyCollector
 | 
				
			||||||
  # Define the languages that we can handle as external dependencies.
 | 
					  # Define the languages that we can handle as external dependencies.
 | 
				
			||||||
  LANGUAGE_MODULES = [
 | 
					  LANGUAGE_MODULES = Set[
 | 
				
			||||||
    :chicken, :jruby, :lua, :node, :ocaml, :perl, :python, :rbx, :ruby
 | 
					    :chicken, :jruby, :lua, :node, :ocaml, :perl, :python, :rbx, :ruby
 | 
				
			||||||
  ].freeze
 | 
					  ].freeze
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -52,7 +53,7 @@ class DependencyCollector
 | 
				
			|||||||
    when Symbol
 | 
					    when Symbol
 | 
				
			||||||
      parse_symbol_spec(spec, tag)
 | 
					      parse_symbol_spec(spec, tag)
 | 
				
			||||||
    when String
 | 
					    when String
 | 
				
			||||||
      if LANGUAGE_MODULES.include? tag
 | 
					      if tag && LANGUAGE_MODULES.include?(tag)
 | 
				
			||||||
        LanguageModuleDependency.new(tag, spec)
 | 
					        LanguageModuleDependency.new(tag, spec)
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
        Dependency.new(spec, tag)
 | 
					        Dependency.new(spec, tag)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user