获取父需要文件的路径,Ruby
发布时间:2020-12-17 02:22:27 所属栏目:百科 来源:网络整理
导读:是否有可能获取需要 Ruby中另一个文件的文件的位置? 我有一个项目,我生成一些进程,我希望能够在代码中确定哪个文件是所需文件的父文件.调试时这很好. 例: #initial.rb:require "./my_file.rb"fork do require "./my_file2.rb"end – #my_file.rb:puts "Req
是否有可能获取需要
Ruby中另一个文件的文件的位置?
我有一个项目,我生成一些进程,我希望能够在代码中确定哪个文件是所需文件的父文件.调试时这很好. 例: #initial.rb: require "./my_file.rb" fork do require "./my_file2.rb" end – #my_file.rb: puts "Required from file: #{?????}" – #my_file2.rb: require "./my_file.rb" 我希望得到类似的东西: #=> Required from file: /path/to/initial.rb #=> Required from file: /path/to/my_file2.rb 解决方法
基于
Jacobs answer,我结束了对require_relative的重新定义,并要求:
alias :old_require_relative :require_relative def require_relative(arg) #~ puts caller.map{|x| "t#{x}"} puts "%s requires %s" % [ caller.first.split(/:d+/,2).first,arg] old_require_relative arg end alias :old_require :require def require(arg) #~ puts caller.map{|x| "t#{x}"} puts "%s requires %s" % [ caller.first.split(/:d+/,arg] old_require arg end 在具有以下加载顺序的测试测试场景中: test.rb +- test1.rb +- test1_a.rb + test2.rb 以下电话 require './test1' require './test2' 要么 require_relative 'test1' require_relative 'test2' 造成: test.rb requires ./test1 C:/Temp/test1.rb requires test1_a test.rb requires ./test2 您还可以在输出中包含需求行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |