Ruby:发现对象中的常量和变量

时间:2015-02-13 06:07:57

标签: ruby singleton metadata

我在这个对象中有以下常量和实例变量:

MyObj = Object.new
class << MyObj
  MY_CONST      = 'FindMe'
  @my_var       = 'OrMe'
  # ...
end

有没有办法自动发现这些项目,无论是在内部还是 在对象之外?不幸的是,我目前正在使用Ruby 1.8.6和1.9.3,但我也可以访问2.1.3来测试任何解决方案。感谢。

1 个答案:

答案 0 :(得分:2)

由于你已经在eigenclass上声明了所有内容,你应该为新定义的常量和var查找eigenclass:

▶ MyObj.singleton_class.constants
#⇒ [
#  [0] :MY_CONST
# ]
▶ MyObj.singleton_class.instance_variables
#⇒ [
#  [0] :@my_var
# ]

希望它有所帮助。