[ create a new paste ] login | about

Link: http://codepad.org/HKQQ36II    [ raw code | fork ]

Plain Text, pasted on Feb 23:
#include <ruby.h>
#include <ruby/encoding.h>
#include <QByteArray>
#include <QDataStream>
#include <QString>
#include <QDebug>

VALUE QuasselTypes;
VALUE unserialize(VALUE self, VALUE string);

extern "C" {
  void Init_QuasselTypes();
}

void Init_QuasselTypes() {
  QuasselTypes = rb_define_module("QuasselTypes");
  rb_define_singleton_method(QuasselTypes, "unserialize", unserialize, 1);
}

VALUE unserialize(VALUE self, VALUE string)
{
  Check_Type(string, T_STRING);

  QByteArray byte_array(RSTRING_PTR(string)->ptr);
  QDataStream data_stream(byte_array);
  
  QVariant variant;
  data_stream >> variant;

  QString output;
  QDebug debug(output);

  debug << variant;

  VALUE result = rb_str_new2(output.toUtf8().data);
  rb_enc_associate_index(string, rb_enc_find_index("UTF-8"));
  return result;
}




Create a new paste based on this one


Comments: