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