Есть ли хорошая библиотека (предпочтительно gem) для проверки класса объекта?Сложность состоит в том, что я не только хочу проверить тип простого объекта, но и зайти в массив или хеш, если таковые имеются, и проверить классы его компонентов.Например, если у меня есть объект:
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?
и рекурсивное определение.