summaryrefslogtreecommitdiff
path: root/jni/ruby/ext/psych/psych_yaml_tree.c
blob: bcf24d2070627345e1a51b4fbe57d81daf1de01d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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: */