Module: AsciiPack

Defined in:
lib/asciipack/version.rb,
ext/asciipack/init.c

Defined Under Namespace

Classes: Packer, Unpacker

Constant Summary collapse

VERSION =
"0.2.4"

Class Method Summary collapse

Class Method Details

.packObject



592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
# File 'ext/asciipack/packer.c', line 592

static VALUE
AsciiPack_pack (int argc, VALUE* argv)
{
	VALUE str;
	VALUE v = *argv;
	VALUE self = Packer_alloc(cAsciiPack_Packer);

	PACKER(self, ptr);
	if (!ptr) {
		rb_raise(rb_eArgError, "unallocated packer");
	}
	Packer_init(ptr);

	Packer_write_value(ptr, v);

	str = Packer_write_to_s(ptr);

	Packer_write_clear(ptr);
	return str;
}

.unpackObject



320
321
322
323
324
325
326
327
328
# File 'ext/asciipack/unpacker.c', line 320

static VALUE
AsciiPack_unpack (int argc, VALUE *argv, VALUE self)
{
	VALUE unpacker = rb_funcall(cAsciiPack_Unpacker, rb_intern("new"), 0);
	rb_funcall(unpacker, rb_intern("feed"), 1, argv[0]);
	VALUE res = rb_funcall(unpacker, rb_intern("read"), 0);
	rb_funcall(unpacker, rb_intern("clear"), 0);
	return res;
}