kliss: почему не та? Если вы хотите обмениваться таким json между руби программами, то всегда можно его распарсить в хеш и строки преобразовать в константы ) и все будет как в оригинале, сложно конечно. А вот, что json не подходит для обмена такой инф., это другая тема.
kliss: Стало быть практически любой хеш можно представить в виде json строки, а если данные в ней не правильные, значит проблема не в хеше а объекте который его создает, там и нужно проводить валидацию.
kliss: а часто у Вас такое случается? Ловите исключение в коде, модуль Json сделал проверку на валидность, за Вас) Еще можно попробовать поменять местами ключ значение, тоже уверен высылается исключение
kliss: json это строка. А если подключить стандартную библиотеку 'json', у хеша появится метод to_json, который вернет строку в формате json, где лысые черти становятся строками :)
1. Вы переопределяете переменную a, сначала она указывает на объект класса MyString, а потом Вы ей присваиваете объект класса String., нужно просто сделать так:
a = MyString.new('wtf')
2. В методе is_wtf_string? нужно написать self == 'wtf'