Skip to content

Commit

Permalink
Remove singleton to RealmManageable
Browse files Browse the repository at this point in the history
  • Loading branch information
k-lpmg committed Aug 3, 2018
1 parent bdfd057 commit 85b7b74
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 22 deletions.
2 changes: 0 additions & 2 deletions Example/Sources/DBManagers/InMemoryRealmManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ import RealmWrapper

final class InMemoryRealmManager: RealmManageable {

static var shared: InMemoryRealmManager = InMemoryRealmManager()

var isUseInMemory: Bool {
return true
}
Expand Down
2 changes: 0 additions & 2 deletions Example/Sources/DBManagers/UserRealmManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ import RealmWrapper

final class UserRealmManager: RealmManageable {

static var shared: UserRealmManager = UserRealmManager()

var isUseInMemory: Bool {
return false
}
Expand Down
6 changes: 3 additions & 3 deletions Example/Sources/DBProxies/InMemoryRealmProxy.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,21 @@ struct UserInMemoryRealmProxy<RealmManager: InMemoryRealmManager>: RealmProxiabl
// MARK: Methods

func append(_ user: User) {
realmManager().transaction(writeHandler: { (realm) in
rm.transaction(writeHandler: { (realm) in
realm.add(user, update: true)
})
}

func delete(_ user: User) {
realmManager().transaction(writeHandler: { (realm) in
rm.transaction(writeHandler: { (realm) in
realm.delete(user)
})
}

func updateName(id: String, name: String, age: Int) {
guard let user = userFromId(id) else {return}

realmManager().transaction(writeHandler: { (realm) in
rm.transaction(writeHandler: { (realm) in
user.name = name
user.age = age
realm.add(user, update: true)
Expand Down
8 changes: 4 additions & 4 deletions Example/Sources/DBProxies/UserRealmProxy.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,27 +11,27 @@ struct UserRealmProxy<RealmManager: UserRealmManager>: RealmProxiable {
// MARK: Methods

func append(_ user: User) {
realmManager().transaction(writeHandler: { (realm) in
rm.transaction(writeHandler: { (realm) in
realm.add(user, update: true)
})
}

func delete(_ user: User) {
realmManager().transaction(writeHandler: { (realm) in
rm.transaction(writeHandler: { (realm) in
realm.delete(user)
})
}

func deleteAll() {
realmManager().transaction(writeHandler: { (realm) in
rm.transaction(writeHandler: { (realm) in
realm.delete(self.users.results)
})
}

func updateName(id: String, name: String, age: Int) {
guard let user = userFromId(id) else {return}

realmManager().transaction(writeHandler: { (realm) in
rm.transaction(writeHandler: { (realm) in
user.name = name
user.age = age
realm.add(user, update: true)
Expand Down
16 changes: 8 additions & 8 deletions Sources/RealmManageable.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,6 @@ public enum OrderingType {

public protocol RealmManageable {

// MARK: - Constants

static var shared: Self { get }

// MARK: - Properties

var deleteRealmIfMigrationNeeded: Bool { get }
Expand All @@ -28,6 +24,10 @@ public protocol RealmManageable {
var syncConfiguration: SyncConfiguration? { get }
var objectTypes: [Object.Type]? { get }

// MARK: - Constructor

init()

}

public extension RealmManageable {
Expand Down Expand Up @@ -66,17 +66,17 @@ public extension RealmManageable {
return nil
}

// MARK: - Internal methods
// MARK: - Public methods

func clear(writeQueue: DispatchQueue = Self.defaultQueue, isSync: Bool = true, completion: RealmCompletionHandler? = nil) {
public func clear(writeQueue: DispatchQueue = Self.defaultQueue, isSync: Bool = true, completion: RealmCompletionHandler? = nil) {
transaction(writeQueue: writeQueue, isSync: isSync, writeHandler: { (realm) in
realm.deleteAll()
}) { (realm, error) in
completion?(realm, error)
}
}

func createConfiguration() -> Realm.Configuration {
public func createConfiguration() -> Realm.Configuration {
var config = Realm.Configuration()
config.schemaVersion = schemaVersion
config.migrationBlock = migrationBlock
Expand All @@ -100,7 +100,7 @@ public extension RealmManageable {
return config
}

func transaction(writeQueue: DispatchQueue = Self.defaultQueue, isSync: Bool = true, writeHandler: @escaping RealmWriteHandler, completionQueue: DispatchQueue = DispatchQueue.main, completion: RealmCompletionHandler? = nil) {
public func transaction(writeQueue: DispatchQueue = Self.defaultQueue, isSync: Bool = true, writeHandler: @escaping RealmWriteHandler, completionQueue: DispatchQueue = DispatchQueue.main, completion: RealmCompletionHandler? = nil) {
guard isSync else {
writeQueue.async {
self.perform(writeHandler: writeHandler, completionQueue: completionQueue, completion: completion)
Expand Down
7 changes: 4 additions & 3 deletions Sources/RealmProxiable.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@ import RealmSwift

public protocol RealmProxiable {
associatedtype RealmManager where RealmManager: RealmManageable
var rm: RealmManager { get }
}

public extension RealmProxiable {

func realmManager() -> RealmManager {
return RealmManager.shared
var rm: RealmManager {
return RealmManager()
}

func query<T: Object>(_ type: T.Type = T.self, filter: String? = nil, sortProperty: String? = nil, ordering: OrderingType = .ascending) -> RealmQuery<T> {
let realm = try! Realm(configuration: realmManager().createConfiguration())
let realm = try! Realm(configuration: rm.createConfiguration())
var results = realm.objects(type)
if let filter = filter {
results = results.filter(filter)
Expand Down

0 comments on commit 85b7b74

Please sign in to comment.