Project

General

Profile

Bug #19631

Updated by daveola (David Stellar) 12 months ago

 
 I am using module_eval and noticing that since ruby 3.2 the Kernel locations do not have absolute_path for any of the eval code, though the path is available.    This is a regression since at least ruby 3.0 which still works. 

 I am on 3.2.2, and here is some sample code: 

 `class ---- 
 class Script < Module 
   script = %q{ 
     def self.locations 
       Kernel.caller_locations.each { |loc| 
         puts "LOCATION: #{loc}" 
         puts "ABSPATH:    #{loc.absolute_path}" 
         puts "PATH:       #{loc.path}" 
       } 
     end 
     self.locations 
   } 

   module_eval(script, "/this/is/my/path", 0) 
 end 
 ` 

 ------ 


 The output for the code at the top of the caller locations (inside the module_eval) is: 

 `LOCATION: LOCATION: /this/is/my/path:9:in `<class:Script>'               
 ABSPATH:                        
 PATH:       /this/is/my/path       ` 

      

 But the absolute_path should have the correct path data as well

Back