Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Forge/Classes/Forge.swift
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ public final class Forge {
let executionManager: ExecutionManager
let taskRetrier: TaskRetrier

public init(with UUID: String) {
public init(with UUID: String, storeURL: URL) {
self.UUID = UUID
self.persistor = Persistor(UUID: UUID)
self.persistor = Persistor(UUID: UUID, storeURL: storeURL)
self.persistor.markAllTasksReadyToExecute()
self.executionManager = ExecutionManager()
self.executionManager.executionDelegate = self.persistor
Expand Down
2 changes: 1 addition & 1 deletion Forge/Classes/Int+Extension.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ extension Int {
let color = UIColor(red: 31.rgb, green: 32.rgb, blue: 53.rgb, alpha: 1)
```
*/
public var rgb: CGFloat {
var rgb: CGFloat {
return CGFloat(Double(self)/255.0)
}
}
13 changes: 8 additions & 5 deletions Forge/Classes/Persistor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import CoreData
fileprivate let RetryAfter: TimeInterval = 5

class Persistor {
static func persistentContainer(UUID: String) -> NSPersistentContainer {
static func persistentContainer(UUID: String, storeURL: URL) -> NSPersistentContainer {
guard let bundlePath = Bundle(for: Persistor.self).path(forResource: "Forge", ofType: "bundle"), // defined in podspec
let forgeBundle = Bundle(path: bundlePath),
let modelURL = forgeBundle.url(forResource: "forge", withExtension: "momd") else {
Expand All @@ -13,7 +13,10 @@ class Persistor {
guard let model = NSManagedObjectModel(contentsOf: modelURL) else {
fatalError("Failed to create model from model URL for forge.")
}
return NSPersistentContainer(name: UUID, managedObjectModel: model)
let description = NSPersistentStoreDescription(url: storeURL.appendingPathComponent(UUID + ".sqlite"))
let container = NSPersistentContainer(name: UUID, managedObjectModel: model)
container.persistentStoreDescriptions = [description]
return container
}

let UUID: String
Expand All @@ -22,10 +25,10 @@ class Persistor {
let mainContext : NSManagedObjectContext
let transformer: PersistentTaskToCDTaskTransformer

init(UUID: String) {
init(UUID: String, storeURL: URL) {
self.UUID = UUID
// FIXME: UUID should be name of sqlite created too.
self.persistentContainer = type(of: self).persistentContainer(UUID: UUID)
self.persistentContainer = type(of: self).persistentContainer(UUID: UUID, storeURL: storeURL)
persistentContainer.loadPersistentStores { (description, error) in
if let error = error {
fatalError("Failed to load Core Data stack: \(error)")
Expand Down Expand Up @@ -180,7 +183,7 @@ extension Persistor: ExecutionDelegate {
}

extension NSManagedObjectContext {
public func saveNow() {
func saveNow() {
if self.hasChanges {
do {
try self.save()
Expand Down