Module: Marshal
- Defined in:
- marshal.c
Constant Summary collapse
- MAJOR_VERSION =
INT2FIX(MARSHAL_MAJOR)
- MINOR_VERSION =
INT2FIX(MARSHAL_MINOR)
Class Method Summary collapse
-
.dump(obj[, anIO], limit = --1) ⇒ Object
Serializes obj and all descendent objects.
-
.load ⇒ Object
Returns the result of converting the serialized data in source into a Ruby object (possibly with associated subordinate objects).
-
.restore ⇒ Object
Returns the result of converting the serialized data in source into a Ruby object (possibly with associated subordinate objects).
Class Method Details
.dump(obj[, anIO], limit = --1) ⇒ Object
Serializes obj and all descendent objects. If anIO is specified, the serialized data will be written to it, otherwise the data will be returned as a String. If limit is specified, the traversal of subobjects will be limited to that depth. If limit is negative, no checking of depth will be performed.
class Klass
def initialize(str)
@str = str
end
def sayHello
@str
end
end
(produces no output)
o = Klass.new("hello\n")
data = Marshal.dump(o)
obj = Marshal.load(data)
obj.sayHello #=> "hello\n"
|
# File 'marshal.c'
static VALUE
marshal_dump(argc, argv)
int argc;
VALUE* argv;
{
VALUE obj, port, a1, a2;
int limit = -1;
struct dump_arg arg;
struct dump_call_arg c_arg;
port = Qnil;
rb_scan_args(argc, argv, "12", &obj, &a1, &a2);
if (argc == 3) {
if (!NIL_P(a2)) limit = NUM2INT(a2);
if (NIL_P(a1)) goto type_error;
port = a1;
}
|
.load(source[, proc]) ⇒ Object .restore(source[, proc]) ⇒ Object
Returns the result of converting the serialized data in source into a Ruby object (possibly with associated subordinate objects). source may be either an instance of IO or an object that responds to to_str. If proc is specified, it will be passed each object as it is deserialized.
|
# File 'marshal.c'
static VALUE
marshal_load(argc, argv)
int argc;
VALUE *argv;
{
VALUE port, proc;
int major, minor;
VALUE v;
struct load_arg arg;
rb_scan_args(argc, argv, "11", &port, &proc);
v = rb_check_string_type(port);
if (!NIL_P(v)) {
arg.taint = OBJ_TAINTED(port); /* original taintedness */
port = v;
}
|
.load(source[, proc]) ⇒ Object .restore(source[, proc]) ⇒ Object
Returns the result of converting the serialized data in source into a Ruby object (possibly with associated subordinate objects). source may be either an instance of IO or an object that responds to to_str. If proc is specified, it will be passed each object as it is deserialized.
|
# File 'marshal.c'
static VALUE
marshal_load(argc, argv)
int argc;
VALUE *argv;
{
VALUE port, proc;
int major, minor;
VALUE v;
struct load_arg arg;
rb_scan_args(argc, argv, "11", &port, &proc);
v = rb_check_string_type(port);
if (!NIL_P(v)) {
arg.taint = OBJ_TAINTED(port); /* original taintedness */
port = v;
}
|