diff options
Diffstat (limited to 'ext/psych/psych.c')
| -rw-r--r-- | ext/psych/psych.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/ext/psych/psych.c b/ext/psych/psych.c new file mode 100644 index 0000000000..afbd7a3571 --- /dev/null +++ b/ext/psych/psych.c @@ -0,0 +1,36 @@ +#include <psych.h> + +/* call-seq: Psych.libyaml_version + * + * Returns the version of libyaml being used + */ +static VALUE libyaml_version(VALUE module) +{ + int major, minor, patch; + VALUE list[3]; + + yaml_get_version(&major, &minor, &patch); + + list[0] = INT2NUM(major); + list[1] = INT2NUM(minor); + list[2] = INT2NUM(patch); + + return rb_ary_new4((long)3, list); +} + +VALUE mPsych; + +void Init_psych(void) +{ + #ifdef HAVE_RB_EXT_RACTOR_SAFE + RB_EXT_RACTOR_SAFE(true); + #endif + mPsych = rb_define_module("Psych"); + + rb_define_singleton_method(mPsych, "libyaml_version", libyaml_version, 0); + + Init_psych_parser(); + Init_psych_emitter(); + Init_psych_to_ruby(); + Init_psych_yaml_tree(); +} |
