查找名称与字符串匹配的所有类

时间:2013-05-13 13:45:51

标签: ruby metaprogramming

我想找到名称与字符串匹配的所有ruby类(忽略大小写)。 这意味着字符串应该是类名的子字符串 所以当你搜索'stri'时,你应该得到类String(等等)。

你知道一种方便且效率不高的方法吗?

1 个答案:

答案 0 :(得分:5)

ObjectSpace.each_object(Class)
.select{|klass| klass.name.downcase.include?("stri".downcase)}

# => [
  String,
  RubyToken::TkDXSTRING,
  RubyToken::TkDSTRING,
  RubyToken::TkXSTRING,
  RubyToken::TkSTRING
]