summaryrefslogtreecommitdiff
path: root/ext/psych/psych.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/psych/psych.c')
-rw-r--r--ext/psych/psych.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/ext/psych/psych.c b/ext/psych/psych.c
new file mode 100644
index 0000000..ff035af
--- /dev/null
+++ b/ext/psych/psych.c
@@ -0,0 +1,35 @@
+#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;
+
+ yaml_get_version(&major, &minor, &patch);
+
+ VALUE list[3] = {
+ INT2NUM((long)major),
+ INT2NUM((long)minor),
+ INT2NUM((long)patch)
+ };
+
+ return rb_ary_new4((long)3, list);
+}
+
+VALUE mPsych;
+
+void Init_psych()
+{
+ 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();
+}
+/* vim: set noet sws=4 sw=4: */