Method: Extralite::Changeset#load

Defined in:
ext/extralite/changeset.c

#load(blob) ⇒ Extralite::Changeset

Loads a changeset from the given string. This method can be used to load a changeset from a file in order to apply it to a database.

changeset = Extralite::Changeset.new
changeset.load(IO.read('my.changes'))
changeset.apply(db)

Parameters:

  • changeset BLOB

Returns:

  • changeset



424
425
426
427
428
429
430
431
432
433
434
435
436
437
# File 'ext/extralite/changeset.c', line 424

VALUE Changeset_load(VALUE self, VALUE blob) {
  Changeset_t *changeset = self_to_changeset(self);
  if (changeset->changeset_ptr) {
    sqlite3_free(changeset->changeset_ptr);
    changeset->changeset_ptr = NULL;
    changeset->changeset_len = 0;
  }

  changeset->changeset_len = RSTRING_LEN(blob);
  changeset->changeset_ptr = sqlite3_malloc(changeset->changeset_len);
  memcpy(changeset->changeset_ptr, RSTRING_PTR(blob), changeset->changeset_len);

  return self;
}