From 9ce448b36984a92c28855d0f2f88b36ef14f8852 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 4 Mar 2020 11:22:03 +0000 Subject: [PATCH 1/2] build: bump zeitwerk from 2.2.2 to 2.3.0 in /Library/Homebrew Bumps [zeitwerk](https://github.com/fxn/zeitwerk) from 2.2.2 to 2.3.0. - [Release notes](https://github.com/fxn/zeitwerk/releases) - [Changelog](https://github.com/fxn/zeitwerk/blob/master/CHANGELOG.md) - [Commits](https://github.com/fxn/zeitwerk/compare/v2.2.2...v2.3.0) Signed-off-by: dependabot-preview[bot] --- Library/Homebrew/Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/Gemfile.lock b/Library/Homebrew/Gemfile.lock index fe223e6ce0..c33f1ddf19 100644 --- a/Library/Homebrew/Gemfile.lock +++ b/Library/Homebrew/Gemfile.lock @@ -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 From ee9ea668930dea96b4465813f511150082912427 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Wed, 4 Mar 2020 11:24:32 +0000 Subject: [PATCH 2/2] brew vendor-gems: commit updates. --- .../Homebrew/vendor/bundle/bundler/setup.rb | 4 +- .../lib/zeitwerk.rb | 0 .../lib/zeitwerk/error.rb | 0 .../lib/zeitwerk/explicit_namespace.rb | 0 .../lib/zeitwerk/gem_inflector.rb | 0 .../lib/zeitwerk/inflector.rb | 0 .../lib/zeitwerk/kernel.rb | 0 .../lib/zeitwerk/loader.rb | 73 +++++++++++++++---- .../lib/zeitwerk/loader/callbacks.rb | 0 .../lib/zeitwerk/real_mod_name.rb | 0 .../lib/zeitwerk/registry.rb | 0 .../lib/zeitwerk/version.rb | 2 +- 12 files changed, 61 insertions(+), 18 deletions(-) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.2.2 => zeitwerk-2.3.0}/lib/zeitwerk.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.2.2 => zeitwerk-2.3.0}/lib/zeitwerk/error.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.2.2 => zeitwerk-2.3.0}/lib/zeitwerk/explicit_namespace.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.2.2 => zeitwerk-2.3.0}/lib/zeitwerk/gem_inflector.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.2.2 => zeitwerk-2.3.0}/lib/zeitwerk/inflector.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.2.2 => zeitwerk-2.3.0}/lib/zeitwerk/kernel.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.2.2 => zeitwerk-2.3.0}/lib/zeitwerk/loader.rb (91%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.2.2 => zeitwerk-2.3.0}/lib/zeitwerk/loader/callbacks.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.2.2 => zeitwerk-2.3.0}/lib/zeitwerk/real_mod_name.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.2.2 => zeitwerk-2.3.0}/lib/zeitwerk/registry.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.2.2 => zeitwerk-2.3.0}/lib/zeitwerk/version.rb (71%) diff --git a/Library/Homebrew/vendor/bundle/bundler/setup.rb b/Library/Homebrew/vendor/bundle/bundler/setup.rb index dcde824eda..47c4ea0cc1 100644 --- a/Library/Homebrew/vendor/bundle/bundler/setup.rb +++ b/Library/Homebrew/vendor/bundle/bundler/setup.rb @@ -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" diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/error.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/error.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/error.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/error.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/explicit_namespace.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/explicit_namespace.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/explicit_namespace.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/explicit_namespace.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/gem_inflector.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/gem_inflector.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/gem_inflector.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/gem_inflector.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/inflector.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/inflector.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/inflector.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/inflector.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/kernel.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/kernel.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/kernel.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/kernel.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/loader.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/loader.rb similarity index 91% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/loader.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/loader.rb index 6972a0a395..5283a865f4 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/loader.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/loader.rb @@ -39,7 +39,7 @@ module Zeitwerk # @return [] 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] attr_reader :ignored_paths + # Absolute paths of directories or glob patterns to be collapsed. + # + # @private + # @return [Set] + 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] + 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 [>] + # @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) diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/loader/callbacks.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/loader/callbacks.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/loader/callbacks.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/loader/callbacks.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/real_mod_name.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/real_mod_name.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/real_mod_name.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/real_mod_name.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/registry.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/registry.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/registry.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/registry.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/version.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/version.rb similarity index 71% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/version.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/version.rb index 1752a24eb9..52f3680826 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.2.2/lib/zeitwerk/version.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Zeitwerk - VERSION = "2.2.2" + VERSION = "2.3.0" end