Module: Mochilo

Extended by:
Mochilo
Included in:
Mochilo
Defined in:
lib/mochilo.rb,
lib/mochilo/version.rb,
ext/mochilo/mochilo.rb.c

Defined Under Namespace

Classes: Error, PackError, UnpackError

Constant Summary collapse

VERSION =
"1.3.0"

Instance Method Summary collapse

Instance Method Details

#pack(rb_obj) ⇒ Object Also known as: encode, dump

call-seq:

Mochilo.pack(obj) -> String

Packs a Ruby object into BananaPack format.



80
81
82
83
84
85
86
87
# File 'ext/mochilo/mochilo.rb.c', line 80

static VALUE rb_mochilo_pack(VALUE self, VALUE rb_obj)
{
	mochilo_buf buf;

	mochilo_buf_init(&buf);
	mochilo_pack_one(&buf, rb_obj, 0);
	return mochilo_buf_flush(&buf);
}

#pack_unsafe(rb_obj) ⇒ Object

call-seq:

Mochilo.pack_unsafe(obj) -> String

Packs a Ruby object into BananaPack format, in unsafe mode. This enables the Symbol type durring serialization and will have to be deserialized in unsafe mode as well.



98
99
100
101
102
103
104
105
# File 'ext/mochilo/mochilo.rb.c', line 98

static VALUE rb_mochilo_pack_unsafe(VALUE self, VALUE rb_obj)
{
	mochilo_buf buf;

	mochilo_buf_init(&buf);
	mochilo_pack_one(&buf, rb_obj, 1);
	return mochilo_buf_flush(&buf);
}

#unpack(rb_buffer) ⇒ Object Also known as: decode, load

call-seq:

Mochilo.unpack(banana_pack_str) -> Object

Unpacks a BananaPack stream into a Ruby object.



54
55
56
57
# File 'ext/mochilo/mochilo.rb.c', line 54

static VALUE rb_mochilo_unpack(VALUE self, VALUE rb_buffer)
{
	return rb_mochilo__unpack(rb_buffer, 0);
}

#unpack_unsafe(rb_buffer) ⇒ Object

call-seq:

Mochilo.unpack_unsafe(banana_pack_str) -> Object

Unpacks a BananaPack stream into a Ruby object, in unsafe mode. Only use this function if banana_pack_str is trusted; otherwise symbol DoS attacks are possible.



68
69
70
71
# File 'ext/mochilo/mochilo.rb.c', line 68

static VALUE rb_mochilo_unpack_unsafe(VALUE self, VALUE rb_buffer)
{
	return rb_mochilo__unpack(rb_buffer, 1);
}