1#include <psych.h> 2 3VALUE cPsychVisitorsToRuby; 4 5/* call-seq: vis.build_exception(klass, message) 6 * 7 * Create an exception with class +klass+ and +message+ 8 */ 9static VALUE build_exception(VALUE self, VALUE klass, VALUE mesg) 10{ 11 VALUE e = rb_obj_alloc(klass); 12 13 rb_iv_set(e, "mesg", mesg); 14 15 return e; 16} 17 18/* call-seq: vis.path2class(path) 19 * 20 * Convert +path+ string to a class 21 */ 22static VALUE path2class(VALUE self, VALUE path) 23{ 24#ifdef HAVE_RUBY_ENCODING_H 25 return rb_path_to_class(path); 26#else 27 return rb_path2class(StringValuePtr(path)); 28#endif 29} 30 31void Init_psych_to_ruby(void) 32{ 33 VALUE psych = rb_define_module("Psych"); 34 VALUE visitors = rb_define_module_under(psych, "Visitors"); 35 VALUE visitor = rb_define_class_under(visitors, "Visitor", rb_cObject); 36 cPsychVisitorsToRuby = rb_define_class_under(visitors, "ToRuby", visitor); 37 38 rb_define_private_method(cPsychVisitorsToRuby, "build_exception", build_exception, 2); 39 rb_define_private_method(cPsychVisitorsToRuby, "path2class", path2class, 1); 40} 41/* vim: set noet sws=4 sw=4: */ 42