9 static void emit(yaml_emitter_t * emitter, yaml_event_t * event)
11 if(!yaml_emitter_emit(emitter, event))
15 static int writer(
void *ctx,
unsigned char *buffer,
size_t size)
25 yaml_emitter_t * emitter;
27 emitter = (yaml_emitter_t *)ptr;
28 yaml_emitter_delete(emitter);
34 yaml_emitter_t * emitter;
36 emitter =
xmalloc(
sizeof(yaml_emitter_t));
38 yaml_emitter_initialize(emitter);
39 yaml_emitter_set_unicode(emitter, 1);
40 yaml_emitter_set_indent(emitter, 2);
51 yaml_emitter_t * emitter;
59 if (
rb_scan_args(argc, argv,
"11", &io, &options) == 2) {
64 yaml_emitter_set_width(emitter,
NUM2INT(line_width));
65 yaml_emitter_set_indent(emitter,
NUM2INT(indent));
66 yaml_emitter_set_canonical(emitter,
Qtrue == canonical ? 1 : 0);
69 yaml_emitter_set_output(emitter,
writer, (
void *)io);
82 yaml_emitter_t * emitter;
87 yaml_stream_start_event_initialize(&event, (yaml_encoding_t)
NUM2INT(encoding));
89 emit(emitter, &event);
102 yaml_emitter_t * emitter;
106 yaml_stream_end_event_initialize(&event);
108 emit(emitter, &event);
122 yaml_emitter_t * emitter;
123 yaml_tag_directive_t * head =
NULL;
124 yaml_tag_directive_t * tail =
NULL;
126 yaml_version_directive_t version_directive;
136 version_directive.major =
NUM2INT(major);
137 version_directive.minor =
NUM2INT(minor);
142 #ifdef HAVE_RUBY_ENCODING_H
164 #ifdef HAVE_RUBY_ENCODING_H
176 yaml_document_start_event_initialize(
184 emit(emitter, &event);
186 if(head)
xfree(head);
199 yaml_emitter_t * emitter;
203 yaml_document_end_event_initialize(&event, imp ? 1 : 0);
205 emit(emitter, &event);
226 yaml_emitter_t * emitter;
228 #ifdef HAVE_RUBY_ENCODING_H
235 #ifdef HAVE_RUBY_ENCODING_H
251 yaml_scalar_event_initialize(
259 (yaml_scalar_style_t)
NUM2INT(style)
262 emit(emitter, &event);
281 yaml_emitter_t * emitter;
284 #ifdef HAVE_RUBY_ENCODING_H
300 yaml_sequence_start_event_initialize(
305 (yaml_sequence_style_t)
NUM2INT(style)
308 emit(emitter, &event);
321 yaml_emitter_t * emitter;
325 yaml_sequence_end_event_initialize(&event);
327 emit(emitter, &event);
346 yaml_emitter_t * emitter;
348 #ifdef HAVE_RUBY_ENCODING_H
353 #ifdef HAVE_RUBY_ENCODING_H
367 yaml_mapping_start_event_initialize(
372 (yaml_mapping_style_t)
NUM2INT(style)
375 emit(emitter, &event);
388 yaml_emitter_t * emitter;
392 yaml_mapping_end_event_initialize(&event);
394 emit(emitter, &event);
407 yaml_emitter_t * emitter;
411 #ifdef HAVE_RUBY_ENCODING_H
418 yaml_alias_event_initialize(
423 emit(emitter, &event);
434 yaml_emitter_t * emitter;
437 yaml_emitter_set_canonical(emitter,
Qtrue == style ? 1 : 0);
448 yaml_emitter_t * emitter;
461 yaml_emitter_t * emitter;
464 yaml_emitter_set_indent(emitter,
NUM2INT(level));
475 yaml_emitter_t * emitter;
478 return INT2NUM(emitter->best_indent);
487 yaml_emitter_t * emitter;
490 return INT2NUM(emitter->best_width);
499 yaml_emitter_t * emitter;
502 yaml_emitter_set_width(emitter,
NUM2INT(width));