Sha256: c45e88ebbd417fce984d93d85ee3fd94f720cf4172cf8184c94bcc42771af6b4

Contents?: true

Size: 773 Bytes

Versions: 12

Compression:

Stored size: 773 Bytes

Contents

#include "classpath.h"

VALUE
class2path(VALUE klass)
{
    VALUE path = rb_class_path(klass);
    char *n = RSTRING_PTR(path);

    if (n[0] == '#') {
	rb_raise(rb_eTypeError, "can't dump anonymous %s %s",
		 (TYPE(klass) == T_CLASS ? "class" : "module"),
		 n);
    }
    if (rb_path2class(n) != rb_class_real(klass)) {
	rb_raise(rb_eTypeError, "%s can't be referred", n);
    }
    return path;
}

VALUE
path2class(const char *path)
{
    VALUE v = rb_path2class(path);

    if (TYPE(v) != T_CLASS) {
	rb_raise(rb_eArgError, "%s does not refer class", path);
    }
    return v;
}

VALUE
path2module(const char *path)
{
    VALUE v = rb_path2class(path);

    if (TYPE(v) != T_MODULE) {
	rb_raise(rb_eArgError, "%s does not refer module", path);
    }
    return v;
}


Version data entries

12 entries across 6 versions & 2 rubygems

Version Path
ruby-internal-0.7.3 ext/cached/ruby-1.9.1/internal/module/classpath.c
ruby-internal-0.7.3 ext/cached/ruby-1.9.0/internal/module/classpath.c
ruby-internal-0.7.2 ext/internal/module/classpath.c
ruby-internal-0.7.2 ext/cached/ruby-1.9.0/internal/module/classpath.c
ruby-internal-0.7.2 ext/cached/ruby-1.9.1/internal/module/classpath.c
ruby-internal-0.7.1 ext/cached/ruby-1.9.0/internal/module/classpath.c
ruby-internal-0.7.1 ext/cached/ruby-1.9.1/internal/module/classpath.c
ruby-internal-0.7.0 ext/cached/ruby-1.9.0/internal/module/classpath.c
ruby-internal-0.7.0 ext/cached/ruby-1.9.1/internal/module/classpath.c
ruby-internal-0.6.0 ext/cached/ruby-1.9.0/internal/module/classpath.c
ruby-internal-0.6.0 ext/cached/ruby-1.9.1/internal/module/classpath.c
nodewrap-0.5.0 ext/classpath.c