是否有一个好的库(最好是宝石)做类的对象检查?难点在于我不仅要检查简单对象的类型,而且还想检查数组或哈希(如果有),并检查其组件的类。举例来说,如果我有一个对象:类(类型)检查
object = [
"some string",
4732841,
[
"another string",
{:some_symbol => [1, 2, 3]}
],
]
我希望能够检查各种层次的细节,如果有类不匹配的话,我希望它返回一些合理的方式的位置。我还没有误差(类不匹配)的格式应该是这样一个清晰的思路,但这样的事情:
object.class_check(Array) # => nil (`nil` will mean the class matches)
object.class_check([String, Fixnum, Array]) # => nil
object.class_check([String, Integer, Array]) # => nil
object.class_check([String, String, Array]) # => [1] (This indicates the position of class mismatch)
object.class_check([String, Fixnum, [Symbol, Hash]) # => [2,0] (meaning type mismatch at object[2][0])
如果不存在这样的库,可有人(告诉我在哪个方向我应该)执行这个?可能我应该使用kind_of?
和递归定义。
我知道我对于返回值的建议没有完全指定。这就是我为什么要求提出建议的原因。 – sawa 2012-02-08 22:17:23
@sawa:对不起,没有仔细阅读。 – 2012-02-08 22:19:44