Skip to content

Commit 612e28c

Browse files
Roman KyrylenkoRoman Kyrylenko
Roman Kyrylenko
authored and
Roman Kyrylenko
committed
renamed folder; added crud methods for single object;
1 parent 61f9243 commit 612e28c

10 files changed

+49
-6
lines changed

DBClient.podspec

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = "DBClient"
3-
s.version = "0.1"
3+
s.version = "0.1.1"
44
s.requires_arc = true
55
s.summary = "CoreData & Realm wrapper written on Swift"
66
s.homepage = ""
@@ -11,19 +11,19 @@ Pod::Spec.new do |s|
1111
s.homepage = 'https://yalantis.com/'
1212

1313
s.ios.deployment_target = "10.0"
14-
s.source_files = ['DBClient/Core/**/*.{swift}']
14+
s.source_files = ['Source/Core/*']
1515
s.dependency "Bolts-Swift", "~> 1.3.0"
1616
s.frameworks = ['Foundation']
1717

1818
s.default_subspec = "CoreData"
1919

2020
s.subspec "CoreData" do |spec|
21-
spec.source_files = ['DBClient/CoreData/*']
21+
spec.source_files = ['CoreData/*']
2222
spec.frameworks = ['CoreData']
2323
end
2424

2525
s.subspec "Realm" do |spec|
26-
spec.source_files = ['DBClient/Realm/*']
26+
spec.source_files = ['Realm/*']
2727
spec.dependency "RealmSwift", "~> 2.1.1"
2828
end
2929

DBClient/Core/DBClient.swift renamed to Source/Core/DBClient.swift

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,4 +104,47 @@ public extension DBClient {
104104
return Task(nil)
105105
}
106106

107+
/**
108+
Deletes object from database.
109+
110+
- Parameter object: object to be deleted
111+
112+
- Returns: `Task` with deleted object or appropriate error in case of failure.
113+
*/
114+
func delete<T: Stored>(_ object: T) -> Task<T> {
115+
return convertArrayTaskToSingleObject(delete([object]))
116+
}
117+
118+
/**
119+
Updates changed performed with object to database.
120+
121+
- Parameter object: object to be updated
122+
123+
- Returns: `Task` with updated object or appropriate error in case of failure.
124+
*/
125+
func update<T: Stored>(_ object: T) -> Task<T> {
126+
return convertArrayTaskToSingleObject(update([object]))
127+
}
128+
129+
/**
130+
Saves object to database.
131+
132+
- Parameter object: object to be saved
133+
134+
- Returns: `Task` with saved object or appropriate error in case of failure.
135+
*/
136+
func save<T: Stored>(_ object: T) -> Task<T> {
137+
return convertArrayTaskToSingleObject(save([object]))
138+
}
139+
140+
private func convertArrayTaskToSingleObject<T>(_ task: Task<[T]>) -> Task<T> {
141+
if let objects = task.result, let object = objects.first {
142+
return Task<T>(object)
143+
} else if let error = task.error {
144+
return Task<T>(error: error)
145+
} else { // no objects returned
146+
return Task<T>.cancelledTask()
147+
}
148+
}
149+
107150
}
File renamed without changes.
File renamed without changes.

DBClient/Realm/RealmDBClient.swift renamed to Source/Realm/RealmDBClient.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,5 +120,5 @@ extension RealmDBClient: DBClient {
120120
// return RealmObservable(request: request, realm: realm)
121121
return RequestObservable(request: request)
122122
}
123-
123+
124124
}

DBClient/Realm/RealmObservable.swift renamed to Source/Realm/RealmObservable.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public class RealmObservable<T: Object>: RequestObservable<T> {
3737
}
3838
}
3939

40-
public override func stopObserving() {
40+
public func stopObserving() {
4141
notificationToken = nil
4242
}
4343

0 commit comments

Comments
 (0)