Method: Extralite::Changeset#invert
- Defined in:
- ext/extralite/changeset.c
#invert ⇒ Extralite::Changeset
Returns an inverted changeset. The inverted changeset can be used to undo the changes in the original changeset.
# undo changes
changeset.invert.apply(db)
380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 |
# File 'ext/extralite/changeset.c', line 380 VALUE Changeset_invert(VALUE self) { Changeset_t *changeset = self_to_changeset(self); verify_changeset(changeset); VALUE inverted = rb_funcall(cChangeset, ID_new, 0); Changeset_t *inverted_changeset = self_to_changeset(inverted); int rc = sqlite3changeset_invert( changeset->changeset_len, changeset->changeset_ptr, &inverted_changeset->changeset_len, &inverted_changeset->changeset_ptr ); if (rc != SQLITE_OK) rb_raise(cError, "Error while inverting changeset: %s", sqlite3_errstr(rc)); RB_GC_GUARD(inverted); return inverted; } |