From ae8fb6c8a7fe90b816ec54ecf2688543cb2806c1 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 29 Jun 2020 08:15:08 +0000 Subject: [PATCH 1/2] build(deps): bump zeitwerk from 2.3.0 to 2.3.1 in /Library/Homebrew Bumps [zeitwerk](https://github.com/fxn/zeitwerk) from 2.3.0 to 2.3.1. - [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.3.0...v2.3.1) 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 0e0057f50d..1ccf74b888 100644 --- a/Library/Homebrew/Gemfile.lock +++ b/Library/Homebrew/Gemfile.lock @@ -118,7 +118,7 @@ GEM unf_ext (0.0.7.7) unicode-display_width (1.7.0) webrobots (0.1.2) - zeitwerk (2.3.0) + zeitwerk (2.3.1) PLATFORMS ruby From a15cd4bdd53fd01f5ffe33d80e238fc579354f61 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Mon, 29 Jun 2020 09:57:15 +0100 Subject: [PATCH 2/2] brew vendor-gems: commit updates. --- .../Homebrew/vendor/bundle/bundler/setup.rb | 6 +- .../zeitwerk-2.3.0/lib/zeitwerk/kernel.rb | 33 ---------- .../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 .../zeitwerk-2.3.1/lib/zeitwerk/kernel.rb | 64 +++++++++++++++++++ .../lib/zeitwerk/loader.rb | 14 +++- .../lib/zeitwerk/loader/callbacks.rb | 0 .../lib/zeitwerk/real_mod_name.rb | 0 .../lib/zeitwerk/registry.rb | 0 .../lib/zeitwerk/version.rb | 2 +- 13 files changed, 79 insertions(+), 40 deletions(-) delete mode 100644 Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/kernel.rb rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.3.0 => zeitwerk-2.3.1}/lib/zeitwerk.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.3.0 => zeitwerk-2.3.1}/lib/zeitwerk/error.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.3.0 => zeitwerk-2.3.1}/lib/zeitwerk/explicit_namespace.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.3.0 => zeitwerk-2.3.1}/lib/zeitwerk/gem_inflector.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.3.0 => zeitwerk-2.3.1}/lib/zeitwerk/inflector.rb (100%) create mode 100644 Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/kernel.rb rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.3.0 => zeitwerk-2.3.1}/lib/zeitwerk/loader.rb (98%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.3.0 => zeitwerk-2.3.1}/lib/zeitwerk/loader/callbacks.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.3.0 => zeitwerk-2.3.1}/lib/zeitwerk/real_mod_name.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.3.0 => zeitwerk-2.3.1}/lib/zeitwerk/registry.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/{zeitwerk-2.3.0 => zeitwerk-2.3.1}/lib/zeitwerk/version.rb (71%) diff --git a/Library/Homebrew/vendor/bundle/bundler/setup.rb b/Library/Homebrew/vendor/bundle/bundler/setup.rb index 8f83d8d1f7..9bafb8db70 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.3/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/minitest-5.14.1/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/thread_safe-0.3.6/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/tzinfo-1.2.7/lib" -$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/zeitwerk-2.3.0/lib" +$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/zeitwerk-2.3.1/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/activesupport-6.0.3.2/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ast-2.4.1/lib" $:.unshift "#{path}/" @@ -25,7 +25,7 @@ $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/tins-1.25.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/term-ansicolor-1.7.1/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/thor-1.0.1/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/coveralls-0.8.23/lib" -$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/diff-lcs-1.3/lib" +$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/diff-lcs-1.4.2/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/extensions/universal-darwin-19/2.6.0/unf_ext-0.0.7.7" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/unf_ext-0.0.7.7/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/unf-0.1.4/lib" @@ -62,7 +62,7 @@ $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rspec-3.9.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rspec-its-1.3.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rspec-retry-0.6.2/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rspec-wait-0.0.9/lib" -$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-ast-0.0.3/lib" +$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-ast-0.1.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ruby-progressbar-1.10.1/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/unicode-display_width-1.7.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-0.86.0/lib" diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/kernel.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/kernel.rb deleted file mode 100644 index 728b444a42..0000000000 --- a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/kernel.rb +++ /dev/null @@ -1,33 +0,0 @@ -# frozen_string_literal: true - -module Kernel - module_function - - # We cannot decorate with prepend + super because Kernel has already been - # included in Object, and changes in ancestors don't get propagated into - # already existing ancestor chains. - alias_method :zeitwerk_original_require, :require - - # @param path [String] - # @return [Boolean] - def require(path) - if loader = Zeitwerk::Registry.loader_for(path) - if path.end_with?(".rb") - zeitwerk_original_require(path).tap do |required| - loader.on_file_autoloaded(path) if required - end - else - loader.on_dir_autoloaded(path) - end - else - zeitwerk_original_require(path).tap do |required| - if required - realpath = $LOADED_FEATURES.last - if loader = Zeitwerk::Registry.loader_for(realpath) - loader.on_file_autoloaded(realpath) - end - end - end - end - end -end diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/error.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/error.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/error.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/error.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/explicit_namespace.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/explicit_namespace.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/explicit_namespace.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/explicit_namespace.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/gem_inflector.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/gem_inflector.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/gem_inflector.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/gem_inflector.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/inflector.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/inflector.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/inflector.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/inflector.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/kernel.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/kernel.rb new file mode 100644 index 0000000000..77ba0d70ca --- /dev/null +++ b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/kernel.rb @@ -0,0 +1,64 @@ +# frozen_string_literal: true + +module Kernel + module_function + + # We are going to decorate Kerner#require with two goals. + # + # First, by intercepting Kernel#require calls, we are able to autovivify + # modules on required directories, and also do internal housekeeping when + # managed files are loaded. + # + # On the other hand, if you publish a new version of a gem that is now managed + # by Zeitwerk, client code can reference directly your classes and modules and + # should not require anything. But if someone has legacy require calls around, + # they will work as expected, and in a compatible way. + # + # We cannot decorate with prepend + super because Kernel has already been + # included in Object, and changes in ancestors don't get propagated into + # already existing ancestor chains. + alias_method :zeitwerk_original_require, :require + + # @param path [String] + # @return [Boolean] + def require(path) + if loader = Zeitwerk::Registry.loader_for(path) + if path.end_with?(".rb") + zeitwerk_original_require(path).tap do |required| + loader.on_file_autoloaded(path) if required + end + else + loader.on_dir_autoloaded(path) + end + else + zeitwerk_original_require(path).tap do |required| + if required + realpath = $LOADED_FEATURES.last + if loader = Zeitwerk::Registry.loader_for(realpath) + loader.on_file_autoloaded(realpath) + end + end + end + end + end + + # By now, I have seen no way so far to decorate require_relative. + # + # For starters, at least in CRuby, require_relative does not delegate to + # require. Both require and require_relative delegate the bulk of their work + # to an internal C function called rb_require_safe. So, our require wrapper is + # not executed. + # + # On the other hand, we cannot use the aliasing technique above because + # require_relative receives a path relative to the directory of the file in + # which the call is performed. If a wrapper here invoked the original method, + # Ruby would resolve the relative path taking lib/zeitwerk as base directory. + # + # A workaround could be to extract the base directory from caller_locations, + # but what if someone else decorated require_relative before us? You can't + # really know with certainty where's the original call site in the stack. + # + # However, the main use case for require_relative is to load files from your + # own project. Projects managed by Zeitwerk don't do this for files managed by + # Zeitwerk, precisely. +end diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/loader.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/loader.rb similarity index 98% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/loader.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/loader.rb index 5283a865f4..8279ee8a6e 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/loader.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/loader.rb @@ -464,7 +464,7 @@ module Zeitwerk # require "zeitwerk" # loader = Zeitwerk::Loader.new # loader.tag = File.basename(__FILE__, ".rb") - # loader.inflector = Zeitwerk::GemInflector.new + # loader.inflector = Zeitwerk::GemInflector.new(__FILE__) # loader.push_dir(__dir__) # # except that this method returns the same object in subsequent calls from @@ -616,7 +616,10 @@ module Zeitwerk # $LOADED_FEATURES stores real paths since Ruby 2.4.4. We set and save the # real path to be able to delete it from $LOADED_FEATURES on unload, and to # be able to do a lookup later in Kernel#require for manual require calls. - realpath = File.realpath(abspath) + # + # We freeze realpath because that saves allocations in Module#autoload. + # See #125. + realpath = File.realpath(abspath).freeze parent.autoload(cname, realpath) if logger if ruby?(realpath) @@ -719,8 +722,13 @@ module Zeitwerk def ls(dir) Dir.foreach(dir) do |basename| next if basename.start_with?(".") + abspath = File.join(dir, basename) - yield basename, abspath unless ignored_paths.member?(abspath) + next if ignored_paths.member?(abspath) + + # We freeze abspath because that saves allocations when passed later to + # File methods. See #125. + yield basename, abspath.freeze end end diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/loader/callbacks.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/loader/callbacks.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/loader/callbacks.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/loader/callbacks.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/real_mod_name.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/real_mod_name.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/real_mod_name.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/real_mod_name.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/registry.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/registry.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/registry.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/registry.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/version.rb b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/version.rb similarity index 71% rename from Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/version.rb rename to Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/version.rb index 52f3680826..b2d4e2805d 100644 --- a/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/version.rb +++ b/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.1/lib/zeitwerk/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Zeitwerk - VERSION = "2.3.0" + VERSION = "2.3.1" end