Я создаю консоль Ruby в JavaScript и, следовательно, необходимо точно отправлять информацию о объекте Ruby в процесс рендеринга. Я решил использовать YAML, учитывая, что он очень прост в использовании YAML на стороне Ruby и содержит всю необходимую информацию. Но я все время получаю ошибки.
Возьмите следующий рубин:
[Test,Test.new].to_yaml
Это преобразуется в следующий YAML:
---
- !ruby/class 'Test'
- !ruby/object:Test {}
Когда я пытаюсь разобрать это, JS-YAML
мы получаем следующую ошибку:
unknown tag !<!ruby/class> at line 2, column 21:
- !ruby/class 'Test'
^
Поэтому я ожидаю, что это произойдет, потому что YAML в JavaScript не имеет типов Ruby! Я видел, что одним из решений является создание новых типов YAML для обработки этих данных:
var RubyClassType = new jsyaml.Type('!ruby/class', {
kind: 'class'
});
Однако в идеальном мире я бы не стал определять каждый отдельный тип. В идеальном мире либо все неизвестные типы будут обрабатываться одинаково (например, как последовательности ямлов), либо рубин не будет генерировать нечетные типы рубинов в первую очередь. Могу ли я обойти эту проблему без необходимости определять каждый тип Ruby в JavaScript?
Я создаю консоль Ruby в JavaScript и, следовательно, необходимо точно отправлять информацию о объекте Ruby в процесс рендеринга. Я решил использовать YAML, учитывая, что он очень прост в использовании YAML на стороне Ruby и содержит всю необходимую информацию. Но я все время получаю ошибки.
Возьмите следующий рубин:
[Test,Test.new].to_yaml
Это преобразуется в следующий YAML:
---
- !ruby/class 'Test'
- !ruby/object:Test {}
Когда я пытаюсь разобрать это, JS-YAML
мы получаем следующую ошибку:
unknown tag !<!ruby/class> at line 2, column 21:
- !ruby/class 'Test'
^
Поэтому я ожидаю, что это произойдет, потому что YAML в JavaScript не имеет типов Ruby! Я видел, что одним из решений является создание новых типов YAML для обработки этих данных:
var RubyClassType = new jsyaml.Type('!ruby/class', {
kind: 'class'
});
Однако в идеальном мире я бы не стал определять каждый отдельный тип. В идеальном мире либо все неизвестные типы будут обрабатываться одинаково (например, как последовательности ямлов), либо рубин не будет генерировать нечетные типы рубинов в первую очередь. Могу ли я обойти эту проблему без необходимости определять каждый тип Ruby в JavaScript?
02JavaScript, Ruby, YAML,