如果我有一个文件model.rb
:
require 'foo.rb'
require 'foo/bar.rb'
class Model
def self.foo
Foo.new
end
def bar
Foo::Bar.to_s
end
Foo::Bar::Baz.class_does_not_exist
end
如何解析此文件以返回有效的类引用?例如,如果Foo
andFoo::Bar
在其他地方定义,但Foo::Bar::Baz
is not,那么我想要类似的东西:
parse_for_valid_class_references(File.open('model.rb', 'rb'))
# => [Foo, Foo::Bar]