Rename UserDefaults wrapper

This commit is contained in:
Justin Mazzocchi 2020-08-05 23:45:57 -07:00
parent 038d17674b
commit c39f2d94d3
No known key found for this signature in database
GPG key ID: E223E6937AAFB01C
5 changed files with 19 additions and 19 deletions

View file

@ -24,11 +24,11 @@ extension Secrets {
}() }()
} }
extension Preferences { extension Defaults {
static func fresh() -> Preferences { Preferences(userDefaults: FakeUserDefaults()) } static func fresh() -> Defaults { Defaults(userDefaults: FakeUserDefaults()) }
static let development: Preferences = { static let development: Defaults = {
let preferences = Preferences.fresh() let preferences = Defaults.fresh()
preferences[.recentIdentityID] = devIdentityID preferences[.recentIdentityID] = devIdentityID
@ -99,13 +99,13 @@ extension AppEnvironment {
static func fresh( static func fresh(
URLSessionConfiguration: URLSessionConfiguration = .stubbing, URLSessionConfiguration: URLSessionConfiguration = .stubbing,
identityDatabase: IdentityDatabase = .fresh(), identityDatabase: IdentityDatabase = .fresh(),
preferences: Preferences = .fresh(), defaults: Defaults = .fresh(),
secrets: Secrets = .fresh(), secrets: Secrets = .fresh(),
webAuthSessionType: WebAuthSession.Type = SuccessfulStubbingWebAuthSession.self) -> AppEnvironment { webAuthSessionType: WebAuthSession.Type = SuccessfulStubbingWebAuthSession.self) -> AppEnvironment {
AppEnvironment( AppEnvironment(
URLSessionConfiguration: URLSessionConfiguration, URLSessionConfiguration: URLSessionConfiguration,
identityDatabase: identityDatabase, identityDatabase: identityDatabase,
preferences: preferences, defaults: defaults,
secrets: secrets, secrets: secrets,
webAuthSessionType: webAuthSessionType) webAuthSessionType: webAuthSessionType)
} }
@ -113,7 +113,7 @@ extension AppEnvironment {
static let development = AppEnvironment( static let development = AppEnvironment(
URLSessionConfiguration: .stubbing, URLSessionConfiguration: .stubbing,
identityDatabase: .development, identityDatabase: .development,
preferences: .development, defaults: .development,
secrets: .development, secrets: .development,
webAuthSessionType: SuccessfulStubbingWebAuthSession.self) webAuthSessionType: SuccessfulStubbingWebAuthSession.self)
} }

View file

@ -24,8 +24,8 @@
D052BBC724D749C800A80A7A /* RootViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D052BBC624D749C800A80A7A /* RootViewModelTests.swift */; }; D052BBC724D749C800A80A7A /* RootViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D052BBC624D749C800A80A7A /* RootViewModelTests.swift */; };
D052BBCA24D74C9200A80A7A /* FakeUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = D052BBC824D74B6400A80A7A /* FakeUserDefaults.swift */; }; D052BBCA24D74C9200A80A7A /* FakeUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = D052BBC824D74B6400A80A7A /* FakeUserDefaults.swift */; };
D052BBCB24D74C9300A80A7A /* FakeUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = D052BBC824D74B6400A80A7A /* FakeUserDefaults.swift */; }; D052BBCB24D74C9300A80A7A /* FakeUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = D052BBC824D74B6400A80A7A /* FakeUserDefaults.swift */; };
D052BBCF24D750C000A80A7A /* Preferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = D052BBCE24D750C000A80A7A /* Preferences.swift */; }; D052BBCF24D750C000A80A7A /* Defaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = D052BBCE24D750C000A80A7A /* Defaults.swift */; };
D052BBD024D750C000A80A7A /* Preferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = D052BBCE24D750C000A80A7A /* Preferences.swift */; }; D052BBD024D750C000A80A7A /* Defaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = D052BBCE24D750C000A80A7A /* Defaults.swift */; };
D052BBD124D750CA00A80A7A /* AppEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = D052BBCC24D750A100A80A7A /* AppEnvironment.swift */; }; D052BBD124D750CA00A80A7A /* AppEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = D052BBCC24D750A100A80A7A /* AppEnvironment.swift */; };
D052BBD224D750CB00A80A7A /* AppEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = D052BBCC24D750A100A80A7A /* AppEnvironment.swift */; }; D052BBD224D750CB00A80A7A /* AppEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = D052BBCC24D750A100A80A7A /* AppEnvironment.swift */; };
D052BBE024D805E300A80A7A /* MainNavigationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D052BBDF24D805E300A80A7A /* MainNavigationViewModel.swift */; }; D052BBE024D805E300A80A7A /* MainNavigationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D052BBDF24D805E300A80A7A /* MainNavigationViewModel.swift */; };
@ -166,7 +166,7 @@
D052BBC624D749C800A80A7A /* RootViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootViewModelTests.swift; sourceTree = "<group>"; }; D052BBC624D749C800A80A7A /* RootViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootViewModelTests.swift; sourceTree = "<group>"; };
D052BBC824D74B6400A80A7A /* FakeUserDefaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FakeUserDefaults.swift; sourceTree = "<group>"; }; D052BBC824D74B6400A80A7A /* FakeUserDefaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FakeUserDefaults.swift; sourceTree = "<group>"; };
D052BBCC24D750A100A80A7A /* AppEnvironment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppEnvironment.swift; sourceTree = "<group>"; }; D052BBCC24D750A100A80A7A /* AppEnvironment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppEnvironment.swift; sourceTree = "<group>"; };
D052BBCE24D750C000A80A7A /* Preferences.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Preferences.swift; sourceTree = "<group>"; }; D052BBCE24D750C000A80A7A /* Defaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Defaults.swift; sourceTree = "<group>"; };
D052BBDF24D805E300A80A7A /* MainNavigationViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainNavigationViewModel.swift; sourceTree = "<group>"; }; D052BBDF24D805E300A80A7A /* MainNavigationViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainNavigationViewModel.swift; sourceTree = "<group>"; };
D065F53A24D3B33A00741304 /* View+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Extensions.swift"; sourceTree = "<group>"; }; D065F53A24D3B33A00741304 /* View+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Extensions.swift"; sourceTree = "<group>"; };
D065F53D24D3D20300741304 /* InstanceEndpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstanceEndpoint.swift; sourceTree = "<group>"; }; D065F53D24D3D20300741304 /* InstanceEndpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstanceEndpoint.swift; sourceTree = "<group>"; };
@ -338,7 +338,7 @@
D0666A4D24C6C39600F3F04B /* Instance.swift */, D0666A4D24C6C39600F3F04B /* Instance.swift */,
D0DC177324D0B58800A75C65 /* Keychain.swift */, D0DC177324D0B58800A75C65 /* Keychain.swift */,
D0ED1BE224CFA84400B4899C /* MastodonError.swift */, D0ED1BE224CFA84400B4899C /* MastodonError.swift */,
D052BBCE24D750C000A80A7A /* Preferences.swift */, D052BBCE24D750C000A80A7A /* Defaults.swift */,
D0666A7124C6E0D300F3F04B /* Secrets.swift */, D0666A7124C6E0D300F3F04B /* Secrets.swift */,
); );
path = Model; path = Model;
@ -657,7 +657,7 @@
D0BEC94724CA22C400E864C4 /* TimelineViewModel.swift in Sources */, D0BEC94724CA22C400E864C4 /* TimelineViewModel.swift in Sources */,
D0666A4E24C6C39600F3F04B /* Instance.swift in Sources */, D0666A4E24C6C39600F3F04B /* Instance.swift in Sources */,
D0ED1BDA24CF963E00B4899C /* AppAuthorizationEndpoint.swift in Sources */, D0ED1BDA24CF963E00B4899C /* AppAuthorizationEndpoint.swift in Sources */,
D052BBCF24D750C000A80A7A /* Preferences.swift in Sources */, D052BBCF24D750C000A80A7A /* Defaults.swift in Sources */,
D0ED1BE324CFA84400B4899C /* MastodonError.swift in Sources */, D0ED1BE324CFA84400B4899C /* MastodonError.swift in Sources */,
D0666A6324C6DC6C00F3F04B /* AppAuthorization.swift in Sources */, D0666A6324C6DC6C00F3F04B /* AppAuthorization.swift in Sources */,
D065F53B24D3B33A00741304 /* View+Extensions.swift in Sources */, D065F53B24D3B33A00741304 /* View+Extensions.swift in Sources */,
@ -723,7 +723,7 @@
D0BEC94824CA22C400E864C4 /* TimelineViewModel.swift in Sources */, D0BEC94824CA22C400E864C4 /* TimelineViewModel.swift in Sources */,
D0666A4F24C6C39600F3F04B /* Instance.swift in Sources */, D0666A4F24C6C39600F3F04B /* Instance.swift in Sources */,
D0ED1BDB24CF963E00B4899C /* AppAuthorizationEndpoint.swift in Sources */, D0ED1BDB24CF963E00B4899C /* AppAuthorizationEndpoint.swift in Sources */,
D052BBD024D750C000A80A7A /* Preferences.swift in Sources */, D052BBD024D750C000A80A7A /* Defaults.swift in Sources */,
D0ED1BE424CFA84400B4899C /* MastodonError.swift in Sources */, D0ED1BE424CFA84400B4899C /* MastodonError.swift in Sources */,
D0666A6424C6DC6C00F3F04B /* AppAuthorization.swift in Sources */, D0666A6424C6DC6C00F3F04B /* AppAuthorization.swift in Sources */,
D065F53C24D3B33A00741304 /* View+Extensions.swift in Sources */, D065F53C24D3B33A00741304 /* View+Extensions.swift in Sources */,

View file

@ -18,7 +18,7 @@ struct MetatextApp: App {
environment = AppEnvironment( environment = AppEnvironment(
URLSessionConfiguration: .default, URLSessionConfiguration: .default,
identityDatabase: identityDatabase, identityDatabase: identityDatabase,
preferences: Preferences(userDefaults: .standard), defaults: Defaults(userDefaults: .standard),
secrets: Secrets(keychain: Keychain(service: "com.metabolist.metatext")), secrets: Secrets(keychain: Keychain(service: "com.metabolist.metatext")),
webAuthSessionType: RealWebAuthSession.self) webAuthSessionType: RealWebAuthSession.self)
} }

View file

@ -5,7 +5,7 @@ import Foundation
struct AppEnvironment { struct AppEnvironment {
let URLSessionConfiguration: URLSessionConfiguration let URLSessionConfiguration: URLSessionConfiguration
let identityDatabase: IdentityDatabase let identityDatabase: IdentityDatabase
let preferences: Preferences let defaults: Defaults
let secrets: Secrets let secrets: Secrets
let webAuthSessionType: WebAuthSession.Type let webAuthSessionType: WebAuthSession.Type
} }

View file

@ -2,7 +2,7 @@
import Foundation import Foundation
class Preferences { class Defaults {
private let userDefaults: UserDefaults private let userDefaults: UserDefaults
init(userDefaults: UserDefaults) { init(userDefaults: UserDefaults) {
@ -10,14 +10,14 @@ class Preferences {
} }
} }
extension Preferences { extension Defaults {
enum Item: String { enum Item: String {
case recentIdentityID = "recent-identity-id" case recentIdentityID = "recent-identity-id"
} }
} }
extension Preferences { extension Defaults {
subscript<T>(index: Preferences.Item) -> T? { subscript<T>(index: Defaults.Item) -> T? {
get { userDefaults.value(forKey: index.rawValue) as? T } get { userDefaults.value(forKey: index.rawValue) as? T }
set { userDefaults.set(newValue, forKey: index.rawValue) } set { userDefaults.set(newValue, forKey: index.rawValue) }
} }