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));
static VALUE start_sequence(VALUE self, VALUE anchor, VALUE tag, VALUE implicit, VALUE style)
#define RSTRING_LEN(string)
VALUE rb_ary_entry(VALUE ary, long offset)
#define Data_Get_Struct(obj, type, sval)
static VALUE set_indentation(VALUE self, VALUE level)
static VALUE allocate(VALUE klass)
static VALUE INT2NUM(int v)
VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)
Defines a class under the namespace of outer.
void rb_raise(VALUE exc, const char *fmt,...)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
#define RARRAY_LEN(ARRAY)
static VALUE start_document(VALUE self, VALUE version, VALUE tags, VALUE imp)
static void emit(yaml_emitter_t *emitter, yaml_event_t *event)
rb_encoding * rb_utf8_encoding(void)
static void dealloc(void *ptr)
static VALUE canonical(VALUE self)
return Data_Wrap_Struct(CLASS_OF(interp), 0, ip_free, slave)
static VALUE start_stream(VALUE self, VALUE encoding)
RUBY_EXTERN VALUE rb_cObject
static VALUE set_line_width(VALUE self, VALUE width)
static VALUE end_mapping(VALUE self)
static VALUE end_stream(VALUE self)
static VALUE end_sequence(VALUE self)
static VALUE set_canonical(VALUE self, VALUE style)
static VALUE indentation(VALUE self)
static VALUE scalar(VALUE self, VALUE value, VALUE anchor, VALUE tag, VALUE plain, VALUE quoted, VALUE style)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
static VALUE initialize(int argc, VALUE *argv, VALUE self)
VALUE rb_str_export_to_enc(VALUE, rb_encoding *)
static VALUE end_document(VALUE self, VALUE imp)
static VALUE start_mapping(VALUE self, VALUE anchor, VALUE tag, VALUE implicit, VALUE style)
return rb_funcall(q->proc, ID_call, 0)
static int writer(void *ctx, unsigned char *buffer, size_t size)
#define StringValuePtr(v)
static VALUE line_width(VALUE self)
void Init_psych_emitter()
static void version(void)
VALUE rb_define_module(const char *name)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_str_new(const char *, long)