gpt4 book ai didi

ruby - 如何获取类的文件位置?

转载 作者:数据小太阳 更新时间:2023-10-29 08:49:29 26 4
gpt4 key购买 nike

我想设计一个类如下:

class A

@@instances ||= []

attr_reader :path, :name

def initialize name
@name = name
@path = # I don't know how to get the path of instance.
@@instances << self
end

def self.show_all_instances
puts @@instances.collect {|i| "Name: #{i.name}, Path: #{i.path}"} .join('\n')
end
end

然后我会在不同的文件夹下创建很多实例。

folder1/foo.rb
A.new 'foo'
folder2/bar.rb
A.new 'bar'
...

我希望结果如下

A.show_all_instances

输出:

   Name: foo, Path: folder1/foo.rb
Name: bar, Path: folder2/bar.rb

...

那我怎么知道调用类在哪里,进入路径呢?

抱歉,我没有很好地解释我的问题。我想获取创建实例的 ruby​​ 文件路径...

最佳答案

#a.rb
def initialize name,path
@name = name
@path = path
@@instances << self
end

#foo.rb
a = A.new 'foo',__FILE__ #or File.expand_path __FILE__

关于ruby - 如何获取类的文件位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16954802/

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