オブジェクトのクラスチェックを行うための良いライブラリ(できれば宝石)がありますか?難しいのは、単純なオブジェクトのタイプをチェックしたいだけでなく、配列やハッシュがあればそれを調べ、そのコンポーネントのクラスをチェックしたいということです。たとえば、私は、オブジェクトがある場合、:クラス(型)チェック
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
@sawa:申し訳ありませんが、慎重に読んでいませんでした。 –