diff --git a/RealmSwift-swift1.2/Migration.swift b/RealmSwift-swift1.2/Migration.swift index 67e984d415..2a7bd374f3 100644 --- a/RealmSwift-swift1.2/Migration.swift +++ b/RealmSwift-swift1.2/Migration.swift @@ -131,7 +131,7 @@ exactly when and how migrations are performed. */ @availability(*, deprecated=1, message="Use migrateRealm(configuration:)") public func migrateRealm(path: String, encryptionKey: NSData? = nil) -> NSError? { - var configuration = RealmConfiguration.defaultConfiguration + var configuration = Realm.Configuration.defaultConfiguration configuration.path = path configuration.encryptionKey = encryptionKey return migrateRealm(configuration: configuration) @@ -145,14 +145,14 @@ This method is called automatically when opening a Realm for the first time and not need to be called explicitly. You can choose to call this method to control exactly when and how migrations are performed. -:param: configuration The RealmConfiguration used to create the Realm to be +:param: configuration The Realm.Configuration used to create the Realm to be migrated, and containing the schema version and migration block used to perform the migration. :returns: `nil` if the migration was successful, or an `NSError` object that describes the problem that occured otherwise. */ -public func migrateRealm(configuration: RealmConfiguration = RealmConfiguration.defaultConfiguration) -> NSError? { +public func migrateRealm(configuration: Realm.Configuration = Realm.Configuration.defaultConfiguration) -> NSError? { return RLMRealm.migrateRealm(configuration.rlmConfiguration) } diff --git a/RealmSwift-swift1.2/Realm.swift b/RealmSwift-swift1.2/Realm.swift index 960a1d1c71..d08bd2d6eb 100644 --- a/RealmSwift-swift1.2/Realm.swift +++ b/RealmSwift-swift1.2/Realm.swift @@ -55,8 +55,8 @@ public final class Realm { /// The Schema used by this realm. public var schema: Schema { return Schema(rlmRealm.schema) } - /// Returns a `RealmConfiguration` that can be used to create this `Realm` instance. - public var configuration: RealmConfiguration { return RealmConfiguration.fromRLMConfiguration(rlmRealm.configuration) } + /// Returns a `Configuration` that can be used to create this `Realm` instance. + public var configuration: Configuration { return Configuration.fromRLMConfiguration(rlmRealm.configuration) } /** The location of the default Realm as a string. Can be overridden. @@ -67,10 +67,10 @@ public final class Realm { :returns: Location of the default Realm. */ - @availability(*, deprecated=1, message="Use RealmConfiguration.defaultConfiguration") + @availability(*, deprecated=1, message="Use Configuration.defaultConfiguration") public class var defaultPath: String { get { - return RealmConfiguration.defaultConfiguration.path ?? RLMConfiguration.defaultRealmPath() + return Configuration.defaultConfiguration.path ?? RLMConfiguration.defaultRealmPath() } set { RLMConfiguration.setDefaultPath(newValue) @@ -81,14 +81,14 @@ public final class Realm { /** Obtains a Realm instance with the given configuration. Defaults to the default Realm configuration, - which can be changed by setting `RealmConfiguration.defaultConfiguration`. + which can be changed by setting `Realm.Configuration.defaultConfiguration`. :param: configuration The configuration to use when creating the Realm instance. :param: error If an error occurs, upon return contains an `NSError` object that describes the problem. If you are not interested in possible errors, omit the argument, or pass in `nil`. */ - public convenience init?(configuration: RealmConfiguration, error: NSErrorPointer = nil) { + public convenience init?(configuration: Configuration, error: NSErrorPointer = nil) { if let rlmRealm = RLMRealm(configuration: configuration.rlmConfiguration, error: error) { self.init(rlmRealm) } else { @@ -98,7 +98,7 @@ public final class Realm { } /** - Obtains a Realm instance with the default `RealmConfiguration`. + Obtains a Realm instance with the default `Realm.Configuration`. */ public convenience init() { let rlmRealm = RLMRealm.defaultRealm() @@ -161,7 +161,7 @@ public final class Realm { */ @availability(*, deprecated=1, message="Use Realm(configuration:error:)") public convenience init(inMemoryIdentifier: String) { - let configuration = RealmConfiguration(inMemoryIdentifier: inMemoryIdentifier).rlmConfiguration + let configuration = Configuration(inMemoryIdentifier: inMemoryIdentifier).rlmConfiguration self.init(RLMRealm(configuration: configuration, error: nil)!) } diff --git a/RealmSwift-swift1.2/RealmConfiguration.swift b/RealmSwift-swift1.2/RealmConfiguration.swift index 02746cf888..63749e601d 100644 --- a/RealmSwift-swift1.2/RealmConfiguration.swift +++ b/RealmSwift-swift1.2/RealmConfiguration.swift @@ -20,140 +20,142 @@ import Foundation import Realm import Realm.Private -/** -A `RealmConfiguration` is used to describe the different options used to -create a `Realm` instance. -*/ -public struct RealmConfiguration { - - // MARK: Default Configuration - - /// Returns the default RealmConfiguration used to create Realms when no other - /// configuration is explicitly specified (i.e. `Realm()`). - public static var defaultConfiguration: RealmConfiguration { - get { - return fromRLMConfiguration(RLMConfiguration.defaultConfiguration()) - } - set { - RLMConfiguration.setDefaultConfiguration(newValue.rlmConfiguration) - } - } - - // MARK: Initialization - - /** - Initializes a `RealmConfiguration`, suitable for creating new `Realm` instances. - - :param: path The path to the realm file. - :param: inMemoryIdentifier A string used to identify a particular in-memory Realm. - :param: encryptionKey 64-byte key to use to encrypt the data. - :param: readOnly Whether the Realm is read-only (must be true for read-only files). - :param: schemaVersion The current schema version. - :param: migrationBlock The block which migrates the Realm to the current version. - - :returns: An initialized `RealmConfiguration`. - */ - public init(path: String? = RLMConfiguration.defaultRealmPath(), - inMemoryIdentifier: String? = nil, - encryptionKey: NSData? = nil, - readOnly: Bool = false, - schemaVersion: UInt64 = 0, - migrationBlock: MigrationBlock? = nil) { - self.path = path - self.inMemoryIdentifier = inMemoryIdentifier - self.encryptionKey = encryptionKey - self.readOnly = readOnly - self.schemaVersion = schemaVersion - self.migrationBlock = migrationBlock - } - - // MARK: Configuration Properties - - /// The path to the realm file. - /// Mutually exclusive with `inMemoryIdentifier`. - public var path: String? { - set { - if newValue != nil { - inMemoryIdentifier = nil - } - _path = newValue - } - get { - return _path - } - } - - private var _path: String? - - /// A string used to identify a particular in-memory Realm. - /// Mutually exclusive with `path`. - public var inMemoryIdentifier: String? { - set { - if newValue != nil { - path = nil - } - _inMemoryIdentifier = newValue - } - get { - return _inMemoryIdentifier - } - } - - private var _inMemoryIdentifier: String? = nil - - /// 64-byte key to use to encrypt the data. - public var encryptionKey: NSData? { - set { - _encryptionKey = RLMRealmValidatedEncryptionKey(newValue) - } - get { - return _encryptionKey - } - } - - private var _encryptionKey: NSData? = nil - - /// Whether the Realm is read-only (must be true for read-only files). - public var readOnly: Bool = false - - /// The current schema version. - public var schemaVersion: UInt64 = 0 - - /// The block which migrates the Realm to the current version. - public var migrationBlock: MigrationBlock? = nil - - // MARK: Private Methods - - internal var rlmConfiguration: RLMConfiguration { - let configuration = RLMConfiguration() - configuration.path = self.path - configuration.inMemoryIdentifier = self.inMemoryIdentifier - configuration.encryptionKey = self.encryptionKey - configuration.readOnly = self.readOnly - configuration.schemaVersion = self.schemaVersion - configuration.migrationBlock = self.migrationBlock.map { accessorMigrationBlock($0) } - return configuration - } - - internal static func fromRLMConfiguration(rlmConfiguration: RLMConfiguration) -> RealmConfiguration { - return RealmConfiguration(path: rlmConfiguration.path, - inMemoryIdentifier: rlmConfiguration.inMemoryIdentifier, - encryptionKey: rlmConfiguration.encryptionKey, - readOnly: rlmConfiguration.readOnly, - schemaVersion: UInt64(rlmConfiguration.schemaVersion), - migrationBlock: map(rlmConfiguration.migrationBlock) { rlmMigration in - return { migration, schemaVersion in - rlmMigration(migration.rlmMigration, schemaVersion) - } - }) - } +extension Realm { + /** + A `Configuration` is used to describe the different options used to + create a `Realm` instance. + */ + public struct Configuration { + + // MARK: Default Configuration + + /// Returns the default Configuration used to create Realms when no other + /// configuration is explicitly specified (i.e. `Realm()`). + public static var defaultConfiguration: Configuration { + get { + return fromRLMConfiguration(RLMConfiguration.defaultConfiguration()) + } + set { + RLMConfiguration.setDefaultConfiguration(newValue.rlmConfiguration) + } + } + + // MARK: Initialization + + /** + Initializes a `Configuration`, suitable for creating new `Realm` instances. + + :param: path The path to the realm file. + :param: inMemoryIdentifier A string used to identify a particular in-memory Realm. + :param: encryptionKey 64-byte key to use to encrypt the data. + :param: readOnly Whether the Realm is read-only (must be true for read-only files). + :param: schemaVersion The current schema version. + :param: migrationBlock The block which migrates the Realm to the current version. + + :returns: An initialized `Configuration`. + */ + public init(path: String? = RLMConfiguration.defaultRealmPath(), + inMemoryIdentifier: String? = nil, + encryptionKey: NSData? = nil, + readOnly: Bool = false, + schemaVersion: UInt64 = 0, + migrationBlock: MigrationBlock? = nil) { + self.path = path + self.inMemoryIdentifier = inMemoryIdentifier + self.encryptionKey = encryptionKey + self.readOnly = readOnly + self.schemaVersion = schemaVersion + self.migrationBlock = migrationBlock + } + + // MARK: Configuration Properties + + /// The path to the realm file. + /// Mutually exclusive with `inMemoryIdentifier`. + public var path: String? { + set { + if newValue != nil { + inMemoryIdentifier = nil + } + _path = newValue + } + get { + return _path + } + } + + private var _path: String? + + /// A string used to identify a particular in-memory Realm. + /// Mutually exclusive with `path`. + public var inMemoryIdentifier: String? { + set { + if newValue != nil { + path = nil + } + _inMemoryIdentifier = newValue + } + get { + return _inMemoryIdentifier + } + } + + private var _inMemoryIdentifier: String? = nil + + /// 64-byte key to use to encrypt the data. + public var encryptionKey: NSData? { + set { + _encryptionKey = RLMRealmValidatedEncryptionKey(newValue) + } + get { + return _encryptionKey + } + } + + private var _encryptionKey: NSData? = nil + + /// Whether the Realm is read-only (must be true for read-only files). + public var readOnly: Bool = false + + /// The current schema version. + public var schemaVersion: UInt64 = 0 + + /// The block which migrates the Realm to the current version. + public var migrationBlock: MigrationBlock? = nil + + // MARK: Private Methods + + internal var rlmConfiguration: RLMConfiguration { + let configuration = RLMConfiguration() + configuration.path = self.path + configuration.inMemoryIdentifier = self.inMemoryIdentifier + configuration.encryptionKey = self.encryptionKey + configuration.readOnly = self.readOnly + configuration.schemaVersion = self.schemaVersion + configuration.migrationBlock = self.migrationBlock.map { accessorMigrationBlock($0) } + return configuration + } + + internal static func fromRLMConfiguration(rlmConfiguration: RLMConfiguration) -> Configuration { + return Configuration(path: rlmConfiguration.path, + inMemoryIdentifier: rlmConfiguration.inMemoryIdentifier, + encryptionKey: rlmConfiguration.encryptionKey, + readOnly: rlmConfiguration.readOnly, + schemaVersion: UInt64(rlmConfiguration.schemaVersion), + migrationBlock: map(rlmConfiguration.migrationBlock) { rlmMigration in + return { migration, schemaVersion in + rlmMigration(migration.rlmMigration, schemaVersion) + } + }) + } + } } // MARK: Printable -extension RealmConfiguration: Printable { +extension Realm.Configuration: Printable { /// Returns a human-readable description of the configuration. public var description: String { - return gsub("\\ARLMConfiguration", "RealmConfiguration", rlmConfiguration.description) ?? "" + return gsub("\\ARLMConfiguration", "Configuration", rlmConfiguration.description) ?? "" } } diff --git a/RealmSwift-swift1.2/Tests/ObjectTests.swift b/RealmSwift-swift1.2/Tests/ObjectTests.swift index 37281b2bcc..23b33ec525 100644 --- a/RealmSwift-swift1.2/Tests/ObjectTests.swift +++ b/RealmSwift-swift1.2/Tests/ObjectTests.swift @@ -230,7 +230,7 @@ class ObjectTests: TestCase { } autoreleasepool { var enumerated = false - let configuration = RealmConfiguration(schemaVersion: 1, migrationBlock: { migration, _ in + let configuration = Realm.Configuration(schemaVersion: 1, migrationBlock: { migration, _ in migration.enumerate(SwiftObject.className()) { oldObject, newObject in if let newObject = newObject { block(newObject, migration) diff --git a/RealmSwift-swift1.2/Tests/RealmConfigurationTests.swift b/RealmSwift-swift1.2/Tests/RealmConfigurationTests.swift index 8bdc50b582..479db2c92d 100644 --- a/RealmSwift-swift1.2/Tests/RealmConfigurationTests.swift +++ b/RealmSwift-swift1.2/Tests/RealmConfigurationTests.swift @@ -22,7 +22,7 @@ import class Realm.Private.RLMConfiguration class RealmConfigurationTests: TestCase { func testDefaultConfiguration() { - let defaultConfiguration = RealmConfiguration.defaultConfiguration + let defaultConfiguration = Realm.Configuration.defaultConfiguration XCTAssertEqual(defaultConfiguration.path!, Realm().path); XCTAssertNil(defaultConfiguration.inMemoryIdentifier); @@ -33,10 +33,10 @@ class RealmConfigurationTests: TestCase { } func testSetDefaultConfiguration() { - let path = RealmConfiguration.defaultConfiguration.path! - let configuration = RealmConfiguration(path: "path") - RealmConfiguration.defaultConfiguration = configuration - XCTAssertEqual(RealmConfiguration.defaultConfiguration.path!, "path") - RealmConfiguration.defaultConfiguration.path = path + let path = Realm.Configuration.defaultConfiguration.path! + let configuration = Realm.Configuration(path: "path") + Realm.Configuration.defaultConfiguration = configuration + XCTAssertEqual(Realm.Configuration.defaultConfiguration.path!, "path") + Realm.Configuration.defaultConfiguration.path = path } } diff --git a/RealmSwift-swift1.2/Tests/TestCase.swift b/RealmSwift-swift1.2/Tests/TestCase.swift index 1c37ad043e..f3f17471bb 100644 --- a/RealmSwift-swift1.2/Tests/TestCase.swift +++ b/RealmSwift-swift1.2/Tests/TestCase.swift @@ -23,13 +23,13 @@ import RealmSwift import XCTest func inMemoryRealm(inMememoryIdentifier: String) -> Realm { - return Realm(configuration: RealmConfiguration(inMemoryIdentifier: inMememoryIdentifier))! + return Realm(configuration: Realm.Configuration(inMemoryIdentifier: inMememoryIdentifier))! } class TestCase: XCTestCase { var exceptionThrown = false - func realmWithTestPath(var _ configuration: RealmConfiguration = RealmConfiguration()) -> Realm { + func realmWithTestPath(var _ configuration: Realm.Configuration = Realm.Configuration()) -> Realm { configuration.path = testRealmPath() return Realm(configuration: configuration)! } diff --git a/RealmSwift-swift2.0/Migration.swift b/RealmSwift-swift2.0/Migration.swift index efc321b4b8..bd58ce902d 100644 --- a/RealmSwift-swift2.0/Migration.swift +++ b/RealmSwift-swift2.0/Migration.swift @@ -70,7 +70,7 @@ block automatically as needed. */ @available(*, deprecated=1, message="Use Realm(configuration:error:)") public func setDefaultRealmSchemaVersion(schemaVersion: UInt64, migrationBlock: MigrationBlock) { - RLMRealmSetSchemaVersionForPath(schemaVersion, RealmConfiguration.defaultConfiguration.path, accessorMigrationBlock(migrationBlock)) + RLMRealmSetSchemaVersionForPath(schemaVersion, Realm.Configuration.defaultConfiguration.path, accessorMigrationBlock(migrationBlock)) } /** @@ -132,7 +132,7 @@ exactly when and how migrations are performed. */ @available(*, deprecated=1, message="Use migrateRealm(configuration:)") public func migrateRealm(path: String, encryptionKey: NSData? = nil) -> NSError? { - var configuration = RealmConfiguration.defaultConfiguration + var configuration = Realm.Configuration.defaultConfiguration configuration.path = path configuration.encryptionKey = encryptionKey return migrateRealm(configuration) @@ -146,14 +146,14 @@ This method is called automatically when opening a Realm for the first time and not need to be called explicitly. You can choose to call this method to control exactly when and how migrations are performed. -- parameter configuration: The RealmConfiguration used to create the Realm to be +- parameter configuration: The Realm.Configuration used to create the Realm to be migrated, and containing the schema version and migration block used to perform the migration. - returns: `nil` if the migration was successful, or an `NSError` object that describes the problem that occured otherwise. */ -public func migrateRealm(configuration: RealmConfiguration = RealmConfiguration.defaultConfiguration) -> NSError? { +public func migrateRealm(configuration: Realm.Configuration = Realm.Configuration.defaultConfiguration) -> NSError? { return RLMRealm.migrateRealm(configuration.rlmConfiguration) } diff --git a/RealmSwift-swift2.0/Realm.swift b/RealmSwift-swift2.0/Realm.swift index 198d2116d3..00efe27ee9 100644 --- a/RealmSwift-swift2.0/Realm.swift +++ b/RealmSwift-swift2.0/Realm.swift @@ -55,8 +55,8 @@ public final class Realm { /// The Schema used by this realm. public var schema: Schema { return Schema(rlmRealm.schema) } - /// Returns a `RealmConfiguration` that can be used to create this `Realm` instance. - public var configuration: RealmConfiguration { return RealmConfiguration.fromRLMConfiguration(rlmRealm.configuration) } + /// Returns a `Configuration` that can be used to create this `Realm` instance. + public var configuration: Configuration { return Configuration.fromRLMConfiguration(rlmRealm.configuration) } /** The location of the default Realm as a string. Can be overridden. @@ -67,10 +67,10 @@ public final class Realm { - returns: Location of the default Realm. */ - @available(*, deprecated=1, message="Use RealmConfiguration.defaultConfiguration") + @available(*, deprecated=1, message="Use Realm.Configuration.defaultConfiguration") public class var defaultPath: String { get { - return RealmConfiguration.defaultConfiguration.path ?? RLMConfiguration.defaultRealmPath() + return Configuration.defaultConfiguration.path ?? RLMConfiguration.defaultRealmPath() } set { RLMConfiguration.setDefaultPath(newValue) @@ -81,11 +81,11 @@ public final class Realm { /** Obtains a Realm instance with the given configuration. Defaults to the default Realm configuration, - which can be changed by setting `RealmConfiguration.defaultConfiguration`. + which can be changed by setting `Realm.Configuration.defaultConfiguration`. - parameter configuration: The configuration to use when creating the Realm instance. */ - public convenience init(configuration: RealmConfiguration = RealmConfiguration.defaultConfiguration) throws { + public convenience init(configuration: Configuration = Configuration.defaultConfiguration) throws { let rlmConfiguration = configuration.rlmConfiguration RLMRealmAddPathSettingsToConfiguration(rlmConfiguration) let rlmRealm = try RLMRealm(configuration: rlmConfiguration) @@ -142,7 +142,7 @@ public final class Realm { */ @available(*, deprecated=1, message="Use Realm(configuration:error:)") public convenience init(inMemoryIdentifier: String) throws { - let configuration = RealmConfiguration(inMemoryIdentifier: inMemoryIdentifier) + let configuration = Configuration(inMemoryIdentifier: inMemoryIdentifier) try self.init(configuration: configuration) } diff --git a/RealmSwift-swift2.0/RealmConfiguration.swift b/RealmSwift-swift2.0/RealmConfiguration.swift index a108ab387f..ca8e8101db 100644 --- a/RealmSwift-swift2.0/RealmConfiguration.swift +++ b/RealmSwift-swift2.0/RealmConfiguration.swift @@ -20,141 +20,143 @@ import Foundation import Realm import Realm.Private -/** -A `RealmConfiguration` is used to describe the different options used to -create a `Realm` instance. -*/ -public struct RealmConfiguration { - - // MARK: Default Configuration - - /// Returns the default RealmConfiguration used to create Realms when no other - /// configuration is explicitly specified (i.e. `Realm()`). - public static var defaultConfiguration: RealmConfiguration { - get { - return fromRLMConfiguration(RLMConfiguration.defaultConfiguration()) - } - set { - RLMConfiguration.setDefaultConfiguration(newValue.rlmConfiguration) - } - } - - // MARK: Initialization - +extension Realm { /** - Initializes a `RealmConfiguration`, suitable for creating new `Realm` instances. - - - parameter path: The path to the realm file. - - parameter inMemoryIdentifier: A string used to identify a particular in-memory Realm. - - parameter encryptionKey: 64-byte key to use to encrypt the data. - - parameter readOnly: Whether the Realm is read-only (must be true for read-only files). - - parameter schemaVersion: The current schema version. - - parameter migrationBlock: The block which migrates the Realm to the current version. - - - returns: An initialized `RealmConfiguration`. + A `Realm.Configuration` is used to describe the different options used to + create a `Realm` instance. */ - public init(path: String? = RLMConfiguration.defaultRealmPath(), - inMemoryIdentifier: String? = nil, - encryptionKey: NSData? = nil, - readOnly: Bool = false, - schemaVersion: UInt64 = 0, - migrationBlock: MigrationBlock? = nil) { - self.path = path - self.inMemoryIdentifier = inMemoryIdentifier - self.encryptionKey = encryptionKey - self.readOnly = readOnly - self.schemaVersion = schemaVersion - self.migrationBlock = migrationBlock - } + public struct Configuration { - // MARK: Configuration Properties + // MARK: Default Configuration - /// The path to the realm file. - /// Mutually exclusive with `inMemoryIdentifier`. - public var path: String? { - set { - if newValue != nil { - inMemoryIdentifier = nil + /// Returns the default Realm.Configuration used to create Realms when no other + /// configuration is explicitly specified (i.e. `Realm()`). + public static var defaultConfiguration: Configuration { + get { + return fromRLMConfiguration(RLMConfiguration.defaultConfiguration()) + } + set { + RLMConfiguration.setDefaultConfiguration(newValue.rlmConfiguration) } - _path = newValue } - get { - return _path + + // MARK: Initialization + + /** + Initializes a `Realm.Configuration`, suitable for creating new `Realm` instances. + + - parameter path: The path to the realm file. + - parameter inMemoryIdentifier: A string used to identify a particular in-memory Realm. + - parameter encryptionKey: 64-byte key to use to encrypt the data. + - parameter readOnly: Whether the Realm is read-only (must be true for read-only files). + - parameter schemaVersion: The current schema version. + - parameter migrationBlock: The block which migrates the Realm to the current version. + + - returns: An initialized `Realm.Configuration`. + */ + public init(path: String? = RLMConfiguration.defaultRealmPath(), + inMemoryIdentifier: String? = nil, + encryptionKey: NSData? = nil, + readOnly: Bool = false, + schemaVersion: UInt64 = 0, + migrationBlock: MigrationBlock? = nil) { + self.path = path + self.inMemoryIdentifier = inMemoryIdentifier + self.encryptionKey = encryptionKey + self.readOnly = readOnly + self.schemaVersion = schemaVersion + self.migrationBlock = migrationBlock } - } - private var _path: String? + // MARK: Configuration Properties - /// A string used to identify a particular in-memory Realm. - /// Mutually exclusive with `path`. - public var inMemoryIdentifier: String? { - set { - if newValue != nil { - path = nil + /// The path to the realm file. + /// Mutually exclusive with `inMemoryIdentifier`. + public var path: String? { + set { + if newValue != nil { + inMemoryIdentifier = nil + } + _path = newValue + } + get { + return _path } - _inMemoryIdentifier = newValue - } - get { - return _inMemoryIdentifier } - } - private var _inMemoryIdentifier: String? = nil + private var _path: String? - /// 64-byte key to use to encrypt the data. - public var encryptionKey: NSData? { - set { - _encryptionKey = RLMRealmValidatedEncryptionKey(newValue) + /// A string used to identify a particular in-memory Realm. + /// Mutually exclusive with `path`. + public var inMemoryIdentifier: String? { + set { + if newValue != nil { + path = nil + } + _inMemoryIdentifier = newValue + } + get { + return _inMemoryIdentifier + } } - get { - return _encryptionKey + + private var _inMemoryIdentifier: String? = nil + + /// 64-byte key to use to encrypt the data. + public var encryptionKey: NSData? { + set { + _encryptionKey = RLMRealmValidatedEncryptionKey(newValue) + } + get { + return _encryptionKey + } } - } - private var _encryptionKey: NSData? = nil + private var _encryptionKey: NSData? = nil - /// Whether the Realm is read-only (must be true for read-only files). - public var readOnly: Bool = false + /// Whether the Realm is read-only (must be true for read-only files). + public var readOnly: Bool = false - /// The current schema version. - public var schemaVersion: UInt64 = 0 + /// The current schema version. + public var schemaVersion: UInt64 = 0 - /// The block which migrates the Realm to the current version. - public var migrationBlock: MigrationBlock? = nil + /// The block which migrates the Realm to the current version. + public var migrationBlock: MigrationBlock? = nil - // MARK: Private Methods + // MARK: Private Methods - internal var rlmConfiguration: RLMConfiguration { - let configuration = RLMConfiguration() - configuration.path = self.path - configuration.inMemoryIdentifier = self.inMemoryIdentifier - configuration.encryptionKey = self.encryptionKey - configuration.readOnly = self.readOnly - configuration.schemaVersion = self.schemaVersion - configuration.migrationBlock = self.migrationBlock.map { accessorMigrationBlock($0) } - return configuration - } + internal var rlmConfiguration: RLMConfiguration { + let configuration = RLMConfiguration() + configuration.path = self.path + configuration.inMemoryIdentifier = self.inMemoryIdentifier + configuration.encryptionKey = self.encryptionKey + configuration.readOnly = self.readOnly + configuration.schemaVersion = self.schemaVersion + configuration.migrationBlock = self.migrationBlock.map { accessorMigrationBlock($0) } + return configuration + } - internal static func fromRLMConfiguration(rlmConfiguration: RLMConfiguration) -> RealmConfiguration { - return RealmConfiguration(path: rlmConfiguration.path, - inMemoryIdentifier: rlmConfiguration.inMemoryIdentifier, - encryptionKey: rlmConfiguration.encryptionKey, - readOnly: rlmConfiguration.readOnly, - schemaVersion: UInt64(rlmConfiguration.schemaVersion), - migrationBlock: rlmConfiguration.migrationBlock.map { rlmMigration in - return { migration, schemaVersion in - rlmMigration(migration.rlmMigration, schemaVersion) - } - }) + internal static func fromRLMConfiguration(rlmConfiguration: RLMConfiguration) -> Configuration { + return Configuration(path: rlmConfiguration.path, + inMemoryIdentifier: rlmConfiguration.inMemoryIdentifier, + encryptionKey: rlmConfiguration.encryptionKey, + readOnly: rlmConfiguration.readOnly, + schemaVersion: UInt64(rlmConfiguration.schemaVersion), + migrationBlock: rlmConfiguration.migrationBlock.map { rlmMigration in + return { migration, schemaVersion in + rlmMigration(migration.rlmMigration, schemaVersion) + } + }) + } } } // MARK: CustomStringConvertible -extension RealmConfiguration: CustomStringConvertible { +extension Realm.Configuration: CustomStringConvertible { /// Returns a human-readable description of the configuration. public var description: String { - return gsub("\\ARLMConfiguration", template: "RealmConfiguration", string: rlmConfiguration.description) ?? "" + return gsub("\\ARLMConfiguration", template: "Realm.Configuration", string: rlmConfiguration.description) ?? "" } -} +} \ No newline at end of file diff --git a/RealmSwift-swift2.0/Tests/ObjectTests.swift b/RealmSwift-swift2.0/Tests/ObjectTests.swift index 5a6c632c00..2f143a9002 100644 --- a/RealmSwift-swift2.0/Tests/ObjectTests.swift +++ b/RealmSwift-swift2.0/Tests/ObjectTests.swift @@ -230,7 +230,7 @@ class ObjectTests: TestCase { } autoreleasepool { var enumerated = false - let configuration = RealmConfiguration(schemaVersion: 1, migrationBlock: { migration, _ in + let configuration = Realm.Configuration(schemaVersion: 1, migrationBlock: { migration, _ in migration.enumerate(SwiftObject.className()) { oldObject, newObject in if let newObject = newObject { block(newObject, migration) diff --git a/RealmSwift-swift2.0/Tests/RealmConfigurationTests.swift b/RealmSwift-swift2.0/Tests/RealmConfigurationTests.swift index 8de30ee436..34e12a83a5 100644 --- a/RealmSwift-swift2.0/Tests/RealmConfigurationTests.swift +++ b/RealmSwift-swift2.0/Tests/RealmConfigurationTests.swift @@ -22,7 +22,7 @@ import class Realm.Private.RLMConfiguration class RealmConfigurationTests: TestCase { func testDefaultConfiguration() { - let defaultConfiguration = RealmConfiguration.defaultConfiguration + let defaultConfiguration = Realm.Configuration.defaultConfiguration XCTAssertEqual(defaultConfiguration.path, try! Realm().path); XCTAssertNil(defaultConfiguration.inMemoryIdentifier); @@ -33,10 +33,10 @@ class RealmConfigurationTests: TestCase { } func testSetDefaultConfiguration() { - let path = RealmConfiguration.defaultConfiguration.path! - let configuration = RealmConfiguration(path: "path") - RealmConfiguration.defaultConfiguration = configuration - XCTAssertEqual(RealmConfiguration.defaultConfiguration.path, "path") - RealmConfiguration.defaultConfiguration.path = path + let path = Realm.Configuration.defaultConfiguration.path! + let configuration = Realm.Configuration(path: "path") + Realm.Configuration.defaultConfiguration = configuration + XCTAssertEqual(Realm.Configuration.defaultConfiguration.path, "path") + Realm.Configuration.defaultConfiguration.path = path } } diff --git a/RealmSwift-swift2.0/Tests/TestCase.swift b/RealmSwift-swift2.0/Tests/TestCase.swift index f924910d1e..dbb931a520 100644 --- a/RealmSwift-swift2.0/Tests/TestCase.swift +++ b/RealmSwift-swift2.0/Tests/TestCase.swift @@ -23,13 +23,13 @@ import RealmSwift import XCTest func inMemoryRealm(inMememoryIdentifier: String) -> Realm { - return try! Realm(configuration: RealmConfiguration(inMemoryIdentifier: inMememoryIdentifier)) + return try! Realm(configuration: Realm.Configuration(inMemoryIdentifier: inMememoryIdentifier)) } class TestCase: XCTestCase { var exceptionThrown = false - func realmWithTestPath(var configuration: RealmConfiguration = RealmConfiguration()) -> Realm { + func realmWithTestPath(var configuration: Realm.Configuration = Realm.Configuration()) -> Realm { configuration.path = testRealmPath() return try! Realm(configuration: configuration) }