From b50870b040f55b5674981f8014d539c8cc198c05 Mon Sep 17 00:00:00 2001 From: Scott Kyle Date: Wed, 27 Apr 2016 17:56:58 -0700 Subject: [PATCH 1/4] API doc updates for path and schemaVersion properties --- docs/realm.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/realm.js b/docs/realm.js index 7267bb19..8f102d25 100644 --- a/docs/realm.js +++ b/docs/realm.js @@ -23,6 +23,22 @@ * ``` */ class Realm { + /** + * The path to the file where this Realm is stored. + * @type {string} + * @readonly + * @since 0.12.0 + */ + get path() {} + + /** + * The current schema version of this Realm. + * @type {number} + * @readonly + * @since 0.12.0 + */ + get schemaVersion() {} + /** * Create a new `Realm` instance using the provided `config`. If a Realm does not yet exist * at `config.path` (or {@link Realm.defaultPath} if not provided), then this constructor From f59e1d972c258aecea038b24aabc7a2a895cd300 Mon Sep 17 00:00:00 2001 From: Scott Kyle Date: Thu, 28 Apr 2016 09:06:51 -0700 Subject: [PATCH 2/4] API doc update for Realm.Object class --- docs/object.js | 32 ++++++++++++++++++++++++++++++++ docs/realm.js | 3 ++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 docs/object.js diff --git a/docs/object.js b/docs/object.js new file mode 100644 index 00000000..89c9811c --- /dev/null +++ b/docs/object.js @@ -0,0 +1,32 @@ +//////////////////////////////////////////////////////////////////////////// +// +// Copyright 2016 Realm Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//////////////////////////////////////////////////////////////////////////// + +/** + * Realm objects will automatically inherit from this class unless a {@link Realm~ObjectClass} + * was specified that does **not** inherit from this class. + * @memberof Realm + * @since 0.12.0 + */ +class Object { + /** + * Checks if this object has not been deleted and is part of a valid Realm. + * @returns {boolean} indicating if the object can be safely accessed. + * @since 0.12.0 + */ + isValid() {} +} diff --git a/docs/realm.js b/docs/realm.js index 8f102d25..03d5093c 100644 --- a/docs/realm.js +++ b/docs/realm.js @@ -152,7 +152,8 @@ Realm.defaultPath; /** * Realm objects will inherit methods, getters, and setters from the `prototype` of this - * constructor. + * constructor. It is **highly recommended** that this constructor inherit from + * {@link Realm.Object}. * @typedef Realm~ObjectClass * @type {Class} * @property {Realm~ObjectSchema} schema - Static property specifying object schema information. From 15b69e381d86de4166f59f5b8a9728b4750235be Mon Sep 17 00:00:00 2001 From: Scott Kyle Date: Mon, 2 May 2016 13:21:02 -0700 Subject: [PATCH 3/4] Add API docs for readOnly --- docs/realm.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/realm.js b/docs/realm.js index 03d5093c..255fc142 100644 --- a/docs/realm.js +++ b/docs/realm.js @@ -31,6 +31,14 @@ class Realm { */ get path() {} + /** + * Indicates if this Realm was opened as read-only. + * @type {boolean} + * @readonly + * @since 0.12.0 + */ + get readOnly() {} + /** * The current schema version of this Realm. * @type {number} @@ -144,6 +152,7 @@ Realm.defaultPath; * key used to encrypt and decrypt all data in the Realm. * @property {string} [path={@link Realm.defaultPath}] - The path to the file where the * Realm database should be stored. + * @property {boolean} [readOnly=false] - Specifies if this Realm should be opened as read-only. * @property {Array} [schema] - Specifies all the * object types in this Realm. **Required** when first creating a Realm at this `path`. * @property {number} [schemaVersion] - **Required** (and must be incremented) after From 02dfed99bd2ae92d1295fa650cb7ac5979fac95c Mon Sep 17 00:00:00 2001 From: Scott Kyle Date: Mon, 2 May 2016 13:49:40 -0700 Subject: [PATCH 4/4] Add API docs for migration functions --- docs/realm.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/realm.js b/docs/realm.js index 255fc142..5d97fe8a 100644 --- a/docs/realm.js +++ b/docs/realm.js @@ -150,6 +150,12 @@ Realm.defaultPath; * @type {Object} * @property {ArrayBuffer|ArrayBufferView} [encryptionKey] - The 512-bit (64-byte) encryption * key used to encrypt and decrypt all data in the Realm. + * @property {function(Realm, Realm)} [migration] - The function to run if a migration is needed. + * This function should provide all the logic for converting data models from previous schemas + * to the new schema. + * This function takes two arguments: + * - `oldRealm` - The Realm before migration is performed. + * - `newRealm` - The Realm that uses the latest `schema`, which should be modified as necessary. * @property {string} [path={@link Realm.defaultPath}] - The path to the file where the * Realm database should be stored. * @property {boolean} [readOnly=false] - Specifies if this Realm should be opened as read-only.