Skip to content

Commit

Permalink
Not quite there..
Browse files Browse the repository at this point in the history
  • Loading branch information
steffendsommer committed Feb 18, 2016
1 parent c022936 commit 30454fc
Show file tree
Hide file tree
Showing 18 changed files with 158 additions and 330 deletions.
2 changes: 1 addition & 1 deletion Podfile
Expand Up @@ -25,5 +25,5 @@ end
target 'TodaysReactiveMenuWatch Extension' do
platform :watchos, '2.0'

shared_pods
#shared_pods
end
4 changes: 2 additions & 2 deletions Podfile.lock
Expand Up @@ -35,6 +35,6 @@ SPEC CHECKSUMS:
Result: caef80340451e1f07492fa1e89117f83613bce24
Unbox: af6e75fddb73ee790c80114bf7b6edef56a0dcd8

PODFILE CHECKSUM: 460989c6e469c36b41a979594279a9baf138d00c
PODFILE CHECKSUM: 88d712ec84df97988fafe5fd9b2bc48abd1a925e

COCOAPODS: 1.0.0.beta.2
COCOAPODS: 1.0.0.beta.3
10 changes: 0 additions & 10 deletions TodaysReactiveMenu.xcodeproj/project.pbxproj
Expand Up @@ -18,8 +18,6 @@
3A29EB401BB828B10053207C /* ComplicationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A29EB3F1BB828B10053207C /* ComplicationController.swift */; };
3A29EB421BB828B10053207C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3A29EB411BB828B10053207C /* Assets.xcassets */; };
3A29EB461BB828B10053207C /* TodaysReactiveMenuWatch.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 3A29EB241BB828B10053207C /* TodaysReactiveMenuWatch.app */; };
3A3F776F1C57DF9F003AE95E /* Formattable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A492DC61C57D87F0017209A /* Formattable.swift */; };
3A3F77701C57DFA2003AE95E /* Archivable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A492DC41C57D72E0017209A /* Archivable.swift */; };
3A492DC51C57D72E0017209A /* Archivable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A492DC41C57D72E0017209A /* Archivable.swift */; };
3A492DC71C57D87F0017209A /* Formattable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A492DC61C57D87F0017209A /* Formattable.swift */; };
3A4C49C71C552FF50002FC01 /* MenuService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A7B52741B13071100C0F539 /* MenuService.swift */; };
Expand All @@ -30,17 +28,14 @@
3A7B52791B13071D00C0F539 /* UIKitExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A7B52781B13071D00C0F539 /* UIKitExtensions.swift */; };
3A7B527B1B13072900C0F539 /* TodaysMenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A7B527A1B13072900C0F539 /* TodaysMenuViewController.swift */; };
3A7B527D1B13073000C0F539 /* TodaysMenuViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A7B527C1B13073000C0F539 /* TodaysMenuViewModel.swift */; };
3A80207B1B602AD200AED403 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3A80207A1B602AD200AED403 /* GoogleService-Info.plist */; };
3A9912921BBC4F1A0064777E /* WatchService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A9912911BBC4F1A0064777E /* WatchService.swift */; };
3AB0EE8F1B120DCD0065C13F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0EE8E1B120DCD0065C13F /* AppDelegate.swift */; };
3AB0EE961B120DCD0065C13F /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3AB0EE951B120DCD0065C13F /* Images.xcassets */; };
3AB0EE991B120DCD0065C13F /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3AB0EE971B120DCD0065C13F /* LaunchScreen.xib */; };
3AB0EEA51B120DCD0065C13F /* TodaysReactiveMenuTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0EEA41B120DCD0065C13F /* TodaysReactiveMenuTests.swift */; };
3ABD432C1BE2AD3900B13DC8 /* PhoneService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3ABD432B1BE2AD3900B13DC8 /* PhoneService.swift */; };
3AC7ACF31BE0A605000149DF /* MenuStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AC7ACF21BE0A605000149DF /* MenuStorage.swift */; };
3AC7ACF51BE0A886000149DF /* Menu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A7B52721B1306FF00C0F539 /* Menu.swift */; };
3AC7C2AD1C593F61008A4B3F /* RemoteResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AC7C2AC1C593F61008A4B3F /* RemoteResource.swift */; };
3AC7C2AE1C594E90008A4B3F /* RemoteResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AC7C2AC1C593F61008A4B3F /* RemoteResource.swift */; };
55F0E732BC11408D70458C55 /* Pods_TodaysReactiveMenuTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5AEB36F9D95371D2F64BFCE3 /* Pods_TodaysReactiveMenuTests.framework */; };
CD993281339459990EDD4A2A /* Pods_TodaysReactiveMenu.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE023256D3802D1984B7F121 /* Pods_TodaysReactiveMenu.framework */; };
/* End PBXBuildFile section */
Expand Down Expand Up @@ -534,7 +529,6 @@
files = (
3AB0EE991B120DCD0065C13F /* LaunchScreen.xib in Resources */,
3AB0EE961B120DCD0065C13F /* Images.xcassets in Resources */,
3A80207B1B602AD200AED403 /* GoogleService-Info.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -708,16 +702,12 @@
3ABD432C1BE2AD3900B13DC8 /* PhoneService.swift in Sources */,
3AC7ACF31BE0A605000149DF /* MenuStorage.swift in Sources */,
3A29EB3C1BB828B10053207C /* NotificationController.swift in Sources */,
3AC7ACF51BE0A886000149DF /* Menu.swift in Sources */,
3A3F77701C57DFA2003AE95E /* Archivable.swift in Sources */,
3A29EB3A1BB828B10053207C /* ExtensionDelegate.swift in Sources */,
3A29EB401BB828B10053207C /* ComplicationController.swift in Sources */,
3A29EB381BB828B10053207C /* InterfaceController.swift in Sources */,
3A6C4D6A1C55174E00346F3B /* WatchService.swift in Sources */,
3A3F776F1C57DF9F003AE95E /* Formattable.swift in Sources */,
3A4C49C71C552FF50002FC01 /* MenuService.swift in Sources */,
3A29EB3E1BB828B10053207C /* GlanceController.swift in Sources */,
3AC7C2AE1C594E90008A4B3F /* RemoteResource.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down

This file was deleted.

This file was deleted.

24 changes: 0 additions & 24 deletions TodaysReactiveMenu/GoogleService-Info.plist

This file was deleted.

1 change: 1 addition & 0 deletions TodaysReactiveMenu/Model/Archivable.swift
Expand Up @@ -48,6 +48,7 @@ extension Archivable where Self: Formattable {
return
}

print("menu loaded")
observer.sendNext(data)
observer.sendCompleted()
}
Expand Down
79 changes: 71 additions & 8 deletions TodaysReactiveMenu/Model/Menu.swift
Expand Up @@ -29,6 +29,68 @@ final class Menu: Unboxable, Archivable, Formattable {
}


// MARK: - Helpers -

extension Menu {

private func dateFormatter() -> NSDateFormatter {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
return dateFormatter
}

enum FetchMenuError: ErrorType {
case UnknownError
case APIError
case CacheError
}

static func fetchTodaysMenuFromCacheOrRemote(menuAPI: RemoteAPI) -> SignalProducer<Menu, FetchMenuError> {

let cacheSharedIdentifier = "menu"

// Download latest menu and deserialize into a menu instance.
let fetchMenuFromRemote = menuAPI.latestMenu()
.mapError { _ in
return FetchMenuError.APIError
}
.flatMap(.Latest) { JSON in
return Menu.deserializeFromJSON(JSON)
.mapError { error in
return FetchMenuError.APIError
}
}

let fetchMenuFromCache = Menu.loadUsingIdentifier(cacheSharedIdentifier)
.mapError { _ in
return FetchMenuError.CacheError
}

let fetchMenuFromCacheOrRemote = fetchMenuFromCache
.flatMap(.Latest) { menu in
return menu.isTodaysMenu() ? SignalProducer<Menu, FetchMenuError>(value: menu) : fetchMenuFromRemote
}
.flatMapError { error in
return (error == FetchMenuError.CacheError) ? fetchMenuFromRemote : SignalProducer<Menu, FetchMenuError>(error: error)
}

return fetchMenuFromCacheOrRemote
.flatMap(.Latest) { menu in
return menu.saveUsingIdentifier(cacheSharedIdentifier)
.map { _ in
return menu
}
.flatMapError { _ in
return SignalProducer<Menu, FetchMenuError>(value: menu)
}
}
}

}


// MARK: - Unboxable extension -

extension Menu {

// Unbox extension.
Expand All @@ -41,7 +103,13 @@ extension Menu {
self.servedAt = unboxer.unbox("serving_date", formatter: self.dateFormatter())
}

// Formattable extension
}


// MARK: - Formattable extension -

extension Menu {

func serialize() -> SignalProducer<[String: AnyObject], FormattableError> {
return SignalProducer<[String: AnyObject], FormattableError>(value: [
"link": self.link,
Expand All @@ -52,10 +120,5 @@ extension Menu {
])
}

private func dateFormatter() -> NSDateFormatter {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
return dateFormatter
}

}
}

1 change: 1 addition & 0 deletions TodaysReactiveMenu/Model/RemoteResource.swift
Expand Up @@ -46,6 +46,7 @@ struct TodaysMenuAPI: RemoteAPI {
return
}

print("menu downloaded")
observer.sendNext(JSON.first!)
observer.sendCompleted()

Expand Down
6 changes: 3 additions & 3 deletions TodaysReactiveMenu/Service/MenuService.swift
Expand Up @@ -6,9 +6,9 @@
// Copyright (c) 2015 steffendsommer. All rights reserved.
//

import ReactiveCocoa
import Alamofire
import Unbox
//import ReactiveCocoa
//import Alamofire
//import Unbox


//#if DEBUG
Expand Down
4 changes: 2 additions & 2 deletions TodaysReactiveMenu/Service/WatchService.swift
Expand Up @@ -23,7 +23,7 @@ class WatchService: NSObject, WCSessionDelegate {
}
}

func sendMenu(menu: Menu) {
// func sendMenu(menu: Menu) {

// // Make sure that the session is up and running.
// if (sessionStarted) {
Expand All @@ -35,6 +35,6 @@ class WatchService: NSObject, WCSessionDelegate {
// }
// }

}
// }

}

0 comments on commit 30454fc

Please sign in to comment.