summaryrefslogtreecommitdiff
path: root/ext/psych/psych_yaml_tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/psych/psych_yaml_tree.c')
-rw-r--r--ext/psych/psych_yaml_tree.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/ext/psych/psych_yaml_tree.c b/ext/psych/psych_yaml_tree.c
new file mode 100644
index 0000000000..bcf24d2070
--- /dev/null
+++ b/ext/psych/psych_yaml_tree.c
@@ -0,0 +1,24 @@
+#include <psych.h>
+
+VALUE cPsychVisitorsYamlTree;
+
+/*
+ * call-seq: private_iv_get(target, prop)
+ *
+ * Get the private instance variable +prop+ from +target+
+ */
+static VALUE private_iv_get(VALUE self, VALUE target, VALUE prop)
+{
+ return rb_attr_get(target, rb_intern(StringValuePtr(prop)));
+}
+
+void Init_psych_yaml_tree(void)
+{
+ VALUE psych = rb_define_module("Psych");
+ VALUE visitors = rb_define_module_under(psych, "Visitors");
+ VALUE visitor = rb_define_class_under(visitors, "Visitor", rb_cObject);
+ cPsychVisitorsYamlTree = rb_define_class_under(visitors, "YAMLTree", visitor);
+
+ rb_define_private_method(cPsychVisitorsYamlTree, "private_iv_get", private_iv_get, 2);
+}
+/* vim: set noet sws=4 sw=4: */