zeitwerk 1.4.2 → 1.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/lib/zeitwerk/loader.rb +20 -8
 - data/lib/zeitwerk/version.rb +1 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 6cb6bd7dd37980b33d67ae3b1a8b5a8228911dd833698617991f6026b06a122c
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 8a9d2438c2008c5c04f21692d1dea9dd0cd7756eb3cd4460262866b1b9eda42f
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: aa2bfe23d1b4c3dde4f6df132c0e6bfb908e540cdc76177cc676fdd7d6843bd6b9af4032978f9948c46c1b74e1979ee592028cafba02fa25f3bdd5eaec0a3d67
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: ba5301619afb7d13dd1081330826b06c5bf6a8d520f56aa788423f14fcc2854c70cc9e8d5db7abec9733e05bc7ac3f6e8c7852f4563359abbcc46e5171f96371
         
     | 
    
        data/lib/zeitwerk/loader.rb
    CHANGED
    
    | 
         @@ -227,19 +227,31 @@ module Zeitwerk 
     | 
|
| 
       227 
227 
     | 
    
         
             
                # @return [void]
         
     | 
| 
       228 
228 
     | 
    
         
             
                def unload
         
     | 
| 
       229 
229 
     | 
    
         
             
                  mutex.synchronize do
         
     | 
| 
       230 
     | 
    
         
            -
                     
     | 
| 
      
 230 
     | 
    
         
            +
                    # We are going to keep track of the files that were required by our
         
     | 
| 
      
 231 
     | 
    
         
            +
                    # autoloads to later remove them from $LOADED_FEATURES, thus making them
         
     | 
| 
      
 232 
     | 
    
         
            +
                    # loadable by Kernel#require again.
         
     | 
| 
      
 233 
     | 
    
         
            +
                    #
         
     | 
| 
      
 234 
     | 
    
         
            +
                    # Directories are not stored in $LOADED_FEATURES, keeping track of files
         
     | 
| 
      
 235 
     | 
    
         
            +
                    # is enough.
         
     | 
| 
      
 236 
     | 
    
         
            +
                    unloaded_files = Set.new
         
     | 
| 
      
 237 
     | 
    
         
            +
             
     | 
| 
      
 238 
     | 
    
         
            +
                    autoloads.each do |realpath, (parent, cname)|
         
     | 
| 
       231 
239 
     | 
    
         
             
                      if parent.autoload?(cname)
         
     | 
| 
       232 
240 
     | 
    
         
             
                        parent.send(:remove_const, cname)
         
     | 
| 
       233 
241 
     | 
    
         
             
                        log("autoload for #{cpath(parent, cname)} removed") if logger
         
     | 
| 
       234 
     | 
    
         
            -
                       
     | 
| 
       235 
     | 
    
         
            -
                        parent 
     | 
| 
       236 
     | 
    
         
            -
             
     | 
| 
      
 242 
     | 
    
         
            +
                      else
         
     | 
| 
      
 243 
     | 
    
         
            +
                        if cdef?(parent, cname)
         
     | 
| 
      
 244 
     | 
    
         
            +
                          parent.send(:remove_const, cname)
         
     | 
| 
      
 245 
     | 
    
         
            +
                          log("#{cpath(parent, cname)} unloaded") if logger
         
     | 
| 
      
 246 
     | 
    
         
            +
                        else
         
     | 
| 
      
 247 
     | 
    
         
            +
                          # Already unloaded somehow, that is fine.
         
     | 
| 
      
 248 
     | 
    
         
            +
                        end
         
     | 
| 
      
 249 
     | 
    
         
            +
                        unloaded_files.add(realpath) if ruby?(realpath)
         
     | 
| 
       237 
250 
     | 
    
         
             
                      end
         
     | 
| 
      
 251 
     | 
    
         
            +
                    end
         
     | 
| 
       238 
252 
     | 
    
         | 
| 
       239 
     | 
    
         
            -
             
     | 
| 
       240 
     | 
    
         
            -
                       
     | 
| 
       241 
     | 
    
         
            -
                      # array lookups, since directories are not stored in $LOADED_FEATURES.
         
     | 
| 
       242 
     | 
    
         
            -
                      $LOADED_FEATURES.delete(path) if ruby?(path)
         
     | 
| 
      
 253 
     | 
    
         
            +
                    unless unloaded_files.empty?
         
     | 
| 
      
 254 
     | 
    
         
            +
                      $LOADED_FEATURES.reject! { |file| unloaded_files.member?(file) }
         
     | 
| 
       243 
255 
     | 
    
         
             
                    end
         
     | 
| 
       244 
256 
     | 
    
         | 
| 
       245 
257 
     | 
    
         
             
                    autoloads.clear
         
     | 
    
        data/lib/zeitwerk/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: zeitwerk
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.4. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.4.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Xavier Noria
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2019-03- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2019-03-26 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       13 
13 
     | 
    
         
             
            description: |2
         
     | 
| 
       14 
14 
     | 
    
         
             
                  Zeitwerk implements constant autoloading with Ruby semantics. Each gem
         
     |