我想设计一个类如下:
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 文件路径...