查找其名称的字符串相匹配的所有类(Finding all classes whose name ma

2019-09-02 21:23发布

我想找到所有Ruby类的名字的字符串(不区分大小写)匹配。 这意味着,该字符串应该是类名的字符串。
所以,当你搜索“STRI”你应该得到的类String (等等)作为结果。

你知道一个方便,而不是太低效的方式做到这一点?

Answer 1:

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

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


文章来源: Finding all classes whose name matches a string