Skip to content

Commit 8a0c821

Browse files
committed
Cleanup NSManagedObjectContext+Rx extension
1 parent d2014b6 commit 8a0c821

1 file changed

Lines changed: 18 additions & 28 deletions

File tree

Sources/NSManagedObjectContext+Rx.swift

Lines changed: 18 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,3 @@
1-
//
2-
// NSManagedObjectContext+Rx.swift
3-
// RxCoreData
4-
//
5-
// Created by Krunoslav Zaher on 5/18/16.
6-
// Copyright © 2016 Krunoslav Zaher. All rights reserved.
7-
//
8-
91
import Foundation
102
import CoreData
113
import RxSwift
@@ -20,18 +12,18 @@ public extension Reactive where Base: NSManagedObjectContext {
2012
- returns: An `Observable` array of `NSManagedObjects` objects that can be bound to a table view.
2113
*/
2214
func entities<T: NSManagedObject>(fetchRequest: NSFetchRequest<T>,
23-
sectionNameKeyPath: String? = nil,
24-
cacheName: String? = nil) -> Observable<[T]> {
15+
sectionNameKeyPath: String? = nil,
16+
cacheName: String? = nil) -> Observable<[T]> {
17+
2518
return Observable.create { observer in
26-
27-
let observerAdapter = FetchedResultsControllerEntityObserver(observer: observer, fetchRequest: fetchRequest, managedObjectContext: self.base, sectionNameKeyPath: sectionNameKeyPath, cacheName: cacheName)
28-
29-
return Disposables.create {
30-
observerAdapter.dispose()
31-
}
19+
let observerAdapter = FetchedResultsControllerEntityObserver(observer: observer, fetchRequest: fetchRequest, managedObjectContext: self.base, sectionNameKeyPath: sectionNameKeyPath, cacheName: cacheName)
20+
21+
return Disposables.create {
22+
observerAdapter.dispose()
23+
}
3224
}
3325
}
34-
26+
3527
/**
3628
Executes a fetch request and returns the fetched section objects as an `Observable` array of `NSFetchedResultsSectionInfo`.
3729
- parameter fetchRequest: an instance of `NSFetchRequest` to describe the search criteria used to retrieve data from a persistent store
@@ -40,8 +32,9 @@ public extension Reactive where Base: NSManagedObjectContext {
4032
- returns: An `Observable` array of `NSFetchedResultsSectionInfo` objects that can be bound to a table view.
4133
*/
4234
func sections<T: NSManagedObject>(fetchRequest: NSFetchRequest<T>,
43-
sectionNameKeyPath: String? = nil,
44-
cacheName: String? = nil) -> Observable<[NSFetchedResultsSectionInfo]> {
35+
sectionNameKeyPath: String? = nil,
36+
cacheName: String? = nil) -> Observable<[NSFetchedResultsSectionInfo]> {
37+
4538
return Observable.create { observer in
4639
let frc = NSFetchedResultsController(fetchRequest: fetchRequest,
4740
managedObjectContext: self.base,
@@ -60,15 +53,13 @@ public extension Reactive where Base: NSManagedObjectContext {
6053
- parameter updateAction: a throwing update action
6154
*/
6255
func performUpdate(updateAction: (NSManagedObjectContext) throws -> Void) throws {
56+
6357
let privateContext = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
6458
privateContext.parent = self.base
6559

6660
try updateAction(privateContext)
67-
6861
guard privateContext.hasChanges else { return }
69-
7062
try privateContext.save()
71-
7263
try self.base.save()
7364
}
7465
}
@@ -95,6 +86,7 @@ public extension Reactive where Base: NSManagedObjectContext {
9586
- parameter persistable: a `Persistable` object
9687
*/
9788
func delete<P: Persistable>(_ persistable: P) throws {
89+
9890
if let entity = try get(persistable) {
9991
self.base.delete(entity)
10092

@@ -115,16 +107,14 @@ public extension Reactive where Base: NSManagedObjectContext {
115107
- returns: An `Observable` array of `Persistable` objects that can be bound to a table view.
116108
*/
117109
func entities<P: Persistable>(_ type: P.Type = P.self,
118-
predicate: NSPredicate? = nil,
119-
sortDescriptors: [NSSortDescriptor]? = nil) -> Observable<[P]> {
110+
predicate: NSPredicate? = nil,
111+
sortDescriptors: [NSSortDescriptor]? = nil) -> Observable<[P]> {
112+
120113
let fetchRequest: NSFetchRequest<P.T> = NSFetchRequest(entityName: P.entityName)
121114
fetchRequest.predicate = predicate
122115
fetchRequest.sortDescriptors = sortDescriptors ?? [NSSortDescriptor(key: P.primaryAttributeName, ascending: true)]
123116

124-
return entities(fetchRequest: fetchRequest)
125-
.map {
126-
$0.map(P.init)
127-
}
117+
return entities(fetchRequest: fetchRequest).map {$0.map(P.init)}
128118
}
129119

130120
/**

0 commit comments

Comments
 (0)