gpt4 book ai didi

ruby-on-rails - 如何在运行时访问 Ruby 类的源文件位置?

转载 作者:太空宇宙 更新时间:2023-11-03 18:25:10 24 4
gpt4 key购买 nike

我想像这样访问类的源代码:

# Module inside file1.rb
module MetaFoo
class << Object
def bar
# here I'd like to access the source location of the Foo class definition
# which should result in /path/to/file2.rb
end
end
end

# Class inside another file2.rb
class Foo
bar
end

我可以做一些坏事,比如:

self.send(:caller)

并尝试解析输出,甚至:

class Foo
bar __FILE__
end

但这不是,我想要,我希望有一个更优雅的解决方案。

欢迎任何提示。

最佳答案

两者都是 $0__FILE__对你有用。

$0是正在运行的应用程序的路径。

__FILE__是当前脚本的路径。

所以,__FILE__将是脚本或模块,即使它是 required .

此外,__LINE__可能对您有用。

有关详细信息,请参阅“What does __FILE__ mean in Ruby?”、“What does if __FILE__ == $0 mean in Ruby”和“What does class_eval <<-“end_eval”, __FILE__, __LINE__ mean in Ruby?”。

关于ruby-on-rails - 如何在运行时访问 Ruby 类的源文件位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12393535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com