Merge pull request #7112 from Homebrew/dependabot/bundler/Library/Homebrew/zeitwerk-2.3.0

build: bump zeitwerk from 2.2.2 to 2.3.0 in /Library/Homebrew
This commit is contained in:
Mike McQuaid 2020-03-04 11:47:53 +00:00 committed by GitHub
commit 2b838713a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 62 additions and 19 deletions

View File

@ -114,7 +114,7 @@ GEM
unf_ext (0.0.7.6)
unicode-display_width (1.6.1)
webrobots (0.1.2)
zeitwerk (2.2.2)
zeitwerk (2.3.0)
PLATFORMS
ruby

View File

@ -8,7 +8,7 @@ $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/i18n-1.8.2/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/minitest-5.14.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/thread_safe-0.3.6/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/tzinfo-1.2.6/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/zeitwerk-2.2.2/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/zeitwerk-2.3.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/activesupport-6.0.2.1/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ast-2.4.0/lib"
$:.unshift "#{path}/"
@ -46,7 +46,7 @@ $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/mechanize-2.7.6/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/mustache-1.1.1/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parallel-1.19.1/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parallel_tests-2.31.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parser-2.7.0.3/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parser-2.7.0.4/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/plist-3.5.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rainbow-3.0.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/extensions/universal-darwin-19/2.6.0/rdiscount-2.2.0.1"

View File

@ -39,7 +39,7 @@ module Zeitwerk
# @return [<String>]
attr_reader :preloads
# Absolute paths of files, directories, of glob patterns to be totally
# Absolute paths of files, directories, or glob patterns to be totally
# ignored.
#
# @private
@ -54,6 +54,19 @@ module Zeitwerk
# @return [Set<String>]
attr_reader :ignored_paths
# Absolute paths of directories or glob patterns to be collapsed.
#
# @private
# @return [Set<String>]
attr_reader :collapse_glob_patterns
# The actual collection of absolute directory names at the time the collapse
# glob patterns were expanded. Computed on setup, and recomputed on reload.
#
# @private
# @return [Set<String>]
attr_reader :collapse_dirs
# Maps real absolute paths for which an autoload has been set ---and not
# executed--- to their corresponding parent class or module and constant
# name.
@ -131,15 +144,17 @@ module Zeitwerk
@inflector = Inflector.new
@logger = self.class.default_logger
@root_dirs = {}
@preloads = []
@ignored_glob_patterns = Set.new
@ignored_paths = Set.new
@autoloads = {}
@autoloaded_dirs = []
@to_unload = {}
@lazy_subdirs = {}
@eager_load_exclusions = Set.new
@root_dirs = {}
@preloads = []
@ignored_glob_patterns = Set.new
@ignored_paths = Set.new
@collapse_glob_patterns = Set.new
@collapse_dirs = Set.new
@autoloads = {}
@autoloaded_dirs = []
@to_unload = {}
@lazy_subdirs = {}
@eager_load_exclusions = Set.new
# TODO: find a better name for these mutexes.
@mutex = Mutex.new
@ -154,6 +169,7 @@ module Zeitwerk
# Sets a tag for the loader, useful for logging.
#
# @param tag [#to_s]
# @return [void]
def tag=(tag)
@tag = tag.to_s
@ -233,6 +249,18 @@ module Zeitwerk
end
end
# Configure directories or glob patterns to be collapsed.
#
# @param paths [<String, Pathname, <String, Pathname>>]
# @return [void]
def collapse(*glob_patterns)
glob_patterns = expand_paths(glob_patterns)
mutex.synchronize do
collapse_glob_patterns.merge(glob_patterns)
collapse_dirs.merge(expand_glob_patterns(glob_patterns))
end
end
# Sets autoloads in the root namespace and preloads files, if any.
#
# @return [void]
@ -306,7 +334,8 @@ module Zeitwerk
Registry.on_unload(self)
ExplicitNamespace.unregister(self)
@setup = false
@setup = false
@eager_loaded = false
end
end
@ -322,6 +351,7 @@ module Zeitwerk
if reloading_enabled?
unload
recompute_ignored_paths
recompute_collapse_dirs
setup
else
raise ReloadingDisabledError, "can't reload, please call loader.enable_reloading before setup"
@ -351,8 +381,12 @@ module Zeitwerk
cref[0].const_get(cref[1], false)
end
elsif dir?(abspath) && !root_dirs.key?(abspath)
cname = inflector.camelize(basename, abspath)
queue << [namespace.const_get(cname, false), abspath]
if collapse_dirs.member?(abspath)
queue << [namespace, abspath]
else
cname = inflector.camelize(basename, abspath)
queue << [namespace.const_get(cname, false), abspath]
end
end
end
end
@ -476,7 +510,7 @@ module Zeitwerk
ls(dir) do |basename, abspath|
begin
if ruby?(basename)
basename.slice!(-3, 3)
basename[-3..-1] = ''
cname = inflector.camelize(basename, abspath).to_sym
autoload_file(parent, cname, abspath)
elsif dir?(abspath)
@ -488,7 +522,11 @@ module Zeitwerk
# it counts only as root. The guard checks that.
unless root_dirs.key?(abspath)
cname = inflector.camelize(basename, abspath).to_sym
autoload_subdir(parent, cname, abspath)
if collapse_dirs.member?(abspath)
set_autoloads_in_dir(abspath, parent)
else
autoload_subdir(parent, cname, abspath)
end
end
end
rescue ::NameError => error
@ -717,6 +755,11 @@ module Zeitwerk
ignored_paths.replace(expand_glob_patterns(ignored_glob_patterns))
end
# @return [void]
def recompute_collapse_dirs
collapse_dirs.replace(expand_glob_patterns(collapse_glob_patterns))
end
# @param message [String]
# @return [void]
def log(message)

View File

@ -1,5 +1,5 @@
# frozen_string_literal: true
module Zeitwerk
VERSION = "2.2.2"
VERSION = "2.3.0"
end