diff --git a/.swift-version b/.swift-version index 819e07a..a75b92f 100644 --- a/.swift-version +++ b/.swift-version @@ -1 +1 @@ -5.0 +5.1 diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 4990dbd..0a9ad2b 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,10 +1,10 @@ PODS: - GradientLoadingBar (2.0.3): - - LightweightObservable (~> 2.0) - - LightweightObservable (2.0.0) - - SnapshotTesting (1.7.1) - - SwiftFormat/CLI (0.44.2) - - SwiftLint (0.38.2) + - LightweightObservable (~> 2.1) + - LightweightObservable (2.1.0) + - SnapshotTesting (1.7.2) + - SwiftFormat/CLI (0.44.4) + - SwiftLint (0.39.1) DEPENDENCIES: - GradientLoadingBar (from `../`) @@ -24,11 +24,11 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - GradientLoadingBar: ad7664a77f8ed743bfcbc0c8b1fbfc5464314dc1 - LightweightObservable: f0c032384379a17cb048b861e33de8209155d7be - SnapshotTesting: 8bfed637364cfd68164bb7a9f2266cc3ed8bb950 - SwiftFormat: 53968b5cc5d466727e796f789fa9be6c38da34cb - SwiftLint: 8f5d2f903e1c9bcbc832fd16771e80a263ac6cbb + GradientLoadingBar: 47e099d0c0b0ed00b358d07dafc399fad50506b7 + LightweightObservable: 6cd1c52bf48ba8d34d3f7a61034206adcb349760 + SnapshotTesting: 8caa6661fea7c8019d5b46de77c16bab99c36c5c + SwiftFormat: 8b3c6b69454305a61c221355095f62dacc0811bf + SwiftLint: 55e96a4a4d537d4a3156859fc1c54bd24851a046 PODFILE CHECKSUM: f56a08d884831d712155be32578b7364270d0af0 diff --git a/Example/Pods/LightweightObservable/LightweightObservable/Classes/Extensions/Observable+Equatable.swift b/Example/Pods/LightweightObservable/LightweightObservable/Classes/Extensions/Observable+Equatable.swift index 5c5f3d3..37e077f 100644 --- a/Example/Pods/LightweightObservable/LightweightObservable/Classes/Extensions/Observable+Equatable.swift +++ b/Example/Pods/LightweightObservable/LightweightObservable/Classes/Extensions/Observable+Equatable.swift @@ -8,7 +8,7 @@ import Foundation -/// Additonal helper methods for an observable that can be compared for equality. +/// Additional helper methods for an observable that that underlying type conforms to `Equatable`. public extension Observable where T: Equatable { // MARK: - Types diff --git a/Example/Pods/LightweightObservable/LightweightObservable/Classes/Extensions/Observable+KeyPath.swift b/Example/Pods/LightweightObservable/LightweightObservable/Classes/Extensions/Observable+KeyPath.swift new file mode 100644 index 0000000..41c7fe4 --- /dev/null +++ b/Example/Pods/LightweightObservable/LightweightObservable/Classes/Extensions/Observable+KeyPath.swift @@ -0,0 +1,37 @@ +// +// Observable+KeyPath.swift +// LightweightObservable +// +// Created by Felix Mau on 03/01/20. +// Copyright © 2020 Felix Mau. All rights reserved. +// + +import Foundation + +/// Additional helper methods for binding an observable to a property using Swifts `KeyPath` feature. +public extension Observable { + /// Updates the property at the given key-path on changes to our property `value`. + /// + /// - Parameters: + /// - keyPath: The key-path that indicates the property to assign. + /// - object: The object containing the property to update. + func bind(to keyPath: ReferenceWritableKeyPath, on object: Root) -> Disposable { + subscribe { newValue, _ in + object[keyPath: keyPath] = newValue + } + } + + /// Updates the property at the given key-path on changes to our property `value`. + /// + /// - Parameters: + /// - keyPath: The key-path that indicates the property to assign. + /// - object: The object containing the property to update. + /// + /// - Note: We need to explicitly define this method for an optional type of `Value`, as otherwise we e.g. could not bind a `String` to the + /// optional string property `text` of an `UILabel` + func bind(to keyPath: ReferenceWritableKeyPath, on object: Root) -> Disposable { + subscribe { newValue, _ in + object[keyPath: keyPath] = newValue + } + } +} diff --git a/Example/Pods/LightweightObservable/LightweightObservable/Classes/Observable.swift b/Example/Pods/LightweightObservable/LightweightObservable/Classes/Observable.swift index e2985c8..2e70355 100644 --- a/Example/Pods/LightweightObservable/LightweightObservable/Classes/Observable.swift +++ b/Example/Pods/LightweightObservable/LightweightObservable/Classes/Observable.swift @@ -11,6 +11,9 @@ import Foundation /// An observable sequence that you can subscribe to. /// /// - Note: Implementation is partly based on [roberthein/Observable](https://github.com/roberthein/Observable). +/// +/// - Remark: I'd prefer having a protocol definition here, but casting an instance with a generic (e.g. `Variable(0)`) to a +/// protocol with an associated type (`Observable`) does not work. Therefore we use an "abstract" class as a workaround. public class Observable { // MARK: - Types @@ -34,7 +37,7 @@ public class Observable { /// /// - Attention: It's always better to subscribe to a given observable! This **shortcut** should only be used during **testing**. public var value: Value? { - fatalError("⚠️ – Subclasses need to overwrite this computed property.") + fatalError("⚠️ – Subclasses need to overwrite and implement this computed property.") } // MARK: - Private properties @@ -50,13 +53,11 @@ public class Observable { /// Initializes a new observable. /// /// - Note: Declared `fileprivate` in order to prevent directly initializing an observable, which can not be updated. - fileprivate init() { - // swiftformat:disable:previous redundantFileprivate - } + fileprivate init() {} // MARK: - Public methods - /// Informs the given observer on changes to our `value`. + /// Informs the given observer on changes to our property `value`. /// /// - Parameter observer: The observer-closure that is notified on changes. public func subscribe(_ observer: @escaping Observer) -> Disposable { @@ -72,8 +73,8 @@ public class Observable { // MARK: - Private methods - fileprivate func notifyObserver(_ value: Value, oldValue: OldValue) { - for (_, observer) in observers { + fileprivate func notifyObserver(with value: Value, from oldValue: OldValue) { + observers.values.forEach { observer in observer(value, oldValue) } } @@ -85,13 +86,15 @@ public final class PublishSubject: Observable { /// The current (readonly) value of the observable (if available). public override var value: Value? { - currentValue + _value } // MARK: - Private properties /// The storage for our computed property. - private var currentValue: Value? + /// + /// - Note: Workaround for compiler error `Cannot override with a stored property 'value'`. + private var _value: Value? // MARK: - Initializer @@ -106,11 +109,12 @@ public final class PublishSubject: Observable { /// Updates the publish subject using the given value. public func update(_ value: Value) { - let oldValue = currentValue - currentValue = value + let oldValue = _value + _value = value - // We inform the observer here instead of using `didSet` to prevent unwrapping an optional (`currentValue` is nullable, as we're starting empty!). - notifyObserver(value, oldValue: oldValue) + // We inform the observer here instead of using `didSet` on `_value` to prevent unwrapping an optional (`_value` is nullable, as we're starting empty!). + // Unwrapping lead to issues on having an underlying optional type. + notifyObserver(with: value, from: oldValue) } } @@ -120,20 +124,18 @@ public final class Variable: Observable { /// The current (read- and writeable) value of the variable. public override var value: Value { - get { - currentValue - } - set { - currentValue = newValue - } + get { _value } + set { _value = newValue } } // MARK: - Private properties /// The storage for our computed property. - private var currentValue: Value { + /// + /// - Note: Workaround for compiler error `Cannot override with a stored property 'value'`. + private var _value: Value { didSet { - notifyObserver(value, oldValue: oldValue) + notifyObserver(with: value, from: oldValue) } } @@ -143,7 +145,7 @@ public final class Variable: Observable { /// /// - Note: We keep the initializer to the super class `Observable` fileprivate in order to verify always having a value. public init(_ value: Value) { - currentValue = value + _value = value super.init() } @@ -152,7 +154,7 @@ public final class Variable: Observable { public override func subscribe(_ observer: @escaping Observer) -> Disposable { // A variable should inform the observer with the initial value. - observer(value, nil) + observer(_value, nil) return super.subscribe(observer) } diff --git a/Example/Pods/LightweightObservable/README.md b/Example/Pods/LightweightObservable/README.md index 2c94095..b1c15a7 100644 --- a/Example/Pods/LightweightObservable/README.md +++ b/Example/Pods/LightweightObservable/README.md @@ -11,18 +11,23 @@ ## Features -Lightweight Observable is a simple implementation of an observable sequence that you can subscribe to. The framework is designed to be minimal meanwhile convenient. The entire code is only ~90 lines (excluding comments). With Lightweight Observable you can easily set up UI-Bindings in an MVVM application, handle asynchronous network calls and a lot more. +Lightweight Observable is a simple implementation of an observable sequence that you can subscribe to. The framework is designed to be minimal meanwhile convenient. The entire code is only ~100 lines (excluding comments). With Lightweight Observable you can easily set up UI-Bindings in an MVVM application, handle asynchronous network calls and a lot more. -##### Credits +##### Credits The code was heavily influenced by [roberthein/observable](https://github.com/roberthein/Observable). However I needed something that was syntactically closer to [RxSwift](https://github.com/ReactiveX/RxSwift), which is why I came up with this code, and for re-usability reasons afterwards moved it into a CocoaPod. -##### Migration Guide +##### Migration Guide If you want to update from version 1.x.x, please have a look at the [Lightweight Observable 2.0 Migration Guide ](Documentation/Lightweight%20Observable%202.0%20Migration%20Guide.md) ### Example To run the example project, clone the repo, and open the workspace from the Example directory. +### Requirements +- Swift 5.0 +- Xcode 10.2+ +- iOS 9.0+ + ### Integration ##### CocoaPods [CocoaPods](https://cocoapods.org) is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate Lightweight Observable into your Xcode project using CocoaPods, specify it in your `Podfile`: @@ -56,8 +61,8 @@ dependencies: [ The framework provides three classes `Observable`, `PublishSubject` and `Variable`: - `Observable`: An observable sequence that you can subscribe to, but not change the underlying value (immutable). This is useful to avoid side-effects on an internal API. - - `PublishSubject`: Subclass of `Observable`, that starts empty and only emits new elements to subscribers (mutable). - - `Variable`: Subclass of `Observable`, that starts with an initial value and replays it or the latest element to new subscribers (mutable). + - `PublishSubject`: Subclass of `Observable` that starts empty and only emits new elements to subscribers (mutable). + - `Variable`: Subclass of `Observable` that starts with an initial value and replays it or the latest element to new subscribers (mutable). #### – Create and update a `PublishSubject` A `PublishSubject` starts empty and only emits new elements to subscribers. @@ -82,7 +87,7 @@ formattedTimeSubject.value = "4:21 PM" ``` #### – Create an `Observable` -Initializing an observable directly is not possible, as this would lead to a sequence that will never change. Instead you need to cast a `PublishSubject` or a `Variable` to an observable. +Initializing an observable directly is not possible, as this would lead to a sequence that will never change. Instead you need to cast a `PublishSubject` or a `Variable` to an Observable. ```swift var formattedTime: Observable { @@ -94,12 +99,19 @@ lazy var formattedTime: Observable = formattedTimeSubject ``` #### – Subscribe to changes -A subscriber will be informed at different times, depending on the subclass of the observable: +A subscriber will be informed at different times, depending on the corresponding subclass of the observable: - `PublishSubject`: Starts empty and only emits new elements to subscribers. - `Variable`: Starts with an initial value and replays it or the latest element to new subscribers. -To subscribe to an observable, you need to use the method `func subscribe(_ observer: @escaping Observer) -> Disposable`. +##### – Closure based subscription +**Declaration** + +```swift +func subscribe(_ observer: @escaping Observer) -> Disposable +``` + +Use this method to subscribe to an observable via a closure: ```swift formattedTime.subscribe { [weak self] newFormattedTime, oldFormattedTime in @@ -107,10 +119,23 @@ formattedTime.subscribe { [weak self] newFormattedTime, oldFormattedTime in } ``` -Please notice that the old value (`oldFormattedTime`) is an optional of the underlying type, as we don't have this value on the initial call to the subscriber. +Please notice that the old value (`oldFormattedTime`) is an optional of the underlying type, as we might not have this value on the initial call to the subscriber. **Important:** To avoid retain cycles and/or crashes, **always** use `[weak self]` when self is needed by an observer. +##### - KeyPath based subscription +**Declaration** + +```swift +func bind(to keyPath: ReferenceWritableKeyPath, on object: Root) -> Disposable +``` + +It is also possible to use Swift's KeyPath feature to bind an observable directly to a property: + +```swift +formattedTime.bind(to: \.text, on: timeLabel) +``` + #### – Memory Management (`Disposable` / `DisposeBag`) When you subscribe to an `Observable` the method returns a `Disposable`, which is basically a reference to the new subscription. @@ -121,7 +146,7 @@ Let me explain you why in a little example: > Imagine having a MVVM application using a service layer for network calls. A service is used as a singleton across the entire app. > -> The view-model has a reference to a service and subscribes to an observable property. The subscription-closure is now saved inside the observable property on the service. +> The view-model has a reference to a service and subscribes to an observable property of this service. The subscription-closure is now saved inside the observable property on the service. > > If the view-model gets deallocated (e.g. due to a dismissed view-controller), without noticing the observable property somehow, the subscription-closure would continue to be alive. > @@ -130,9 +155,17 @@ Let me explain you why in a little example: In case you only use a single subscriber you can store the returned `Disposable` to a variable: ```swift +// MARK: - Using `subscribe(_:)` + let disposable = formattedTime.subscribe { [weak self] newFormattedTime, oldFormattedTime in - // ... + self?.timeLabel.text = newFormattedTime } + +// MARK: - Using a `bind(to:on:)` + +let disposable = dateTimeViewModel + .formattedTime + .bind(to: \.text, on: timeLabel) ``` In case you're having multiple observers, you can store all returned `Disposable` in an array of `Disposable`. (To match the syntax from [RxSwift](https://github.com/ReactiveX/RxSwift), this pod contains a typealias called `DisposeBag`, which is an array of `Disposable`). @@ -140,13 +173,25 @@ In case you're having multiple observers, you can store all returned `Disposable ```swift var disposeBag = DisposeBag() +// MARK: - Using `subscribe(_:)` + formattedTime.subscribe { [weak self] newFormattedTime, oldFormattedTime in - // ... + self?.timeLabel.text = newFormattedTime }.disposed(by: &disposeBag) formattedDate.subscribe { [weak self] newFormattedDate, oldFormattedDate in - // ... + self?.dateLabel.text = newFormattedDate }.disposed(by: &disposeBag) + +// MARK: - Using a `bind(to:on:)` + +formattedTime + .bind(to: \.text, on: timeLabel) + .disposed(by: &disposeBag) + +formattedDate + .bind(to: \.text, on: dateLabel) + .disposed(by: &disposeBag) ``` A `DisposeBag` is exactly what it says it is, a bag (or array) of disposables. @@ -229,9 +274,10 @@ class TimeViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() - timeViewModel.formattedTime.subscribe { [weak self] newFormattedTime, _ in - self?.timeLabel.text = newFormattedTime - }.disposed(by: &disposeBag) + timeViewModel + .formattedTime + .bind(to: \.text, on: timeLabel) + .disposed(by: &disposeBag) } ``` Feel free to check out the example application as well for a better understanding of this approach 🙂 diff --git a/Example/Pods/Local Podspecs/GradientLoadingBar.podspec.json b/Example/Pods/Local Podspecs/GradientLoadingBar.podspec.json index c3cf3e6..3dbfef9 100644 --- a/Example/Pods/Local Podspecs/GradientLoadingBar.podspec.json +++ b/Example/Pods/Local Podspecs/GradientLoadingBar.podspec.json @@ -17,15 +17,15 @@ "tag": "2.0.3" }, "social_media_url": "https://twitter.com/_fxm90", - "swift_versions": "5.0", + "swift_versions": "5.1", "platforms": { "ios": "9.0" }, "source_files": "GradientLoadingBar/Classes/**/*", "dependencies": { "LightweightObservable": [ - "~> 2.0" + "~> 2.1" ] }, - "swift_version": "5.0" + "swift_version": "5.1" } diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 4990dbd..0a9ad2b 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -1,10 +1,10 @@ PODS: - GradientLoadingBar (2.0.3): - - LightweightObservable (~> 2.0) - - LightweightObservable (2.0.0) - - SnapshotTesting (1.7.1) - - SwiftFormat/CLI (0.44.2) - - SwiftLint (0.38.2) + - LightweightObservable (~> 2.1) + - LightweightObservable (2.1.0) + - SnapshotTesting (1.7.2) + - SwiftFormat/CLI (0.44.4) + - SwiftLint (0.39.1) DEPENDENCIES: - GradientLoadingBar (from `../`) @@ -24,11 +24,11 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - GradientLoadingBar: ad7664a77f8ed743bfcbc0c8b1fbfc5464314dc1 - LightweightObservable: f0c032384379a17cb048b861e33de8209155d7be - SnapshotTesting: 8bfed637364cfd68164bb7a9f2266cc3ed8bb950 - SwiftFormat: 53968b5cc5d466727e796f789fa9be6c38da34cb - SwiftLint: 8f5d2f903e1c9bcbc832fd16771e80a263ac6cbb + GradientLoadingBar: 47e099d0c0b0ed00b358d07dafc399fad50506b7 + LightweightObservable: 6cd1c52bf48ba8d34d3f7a61034206adcb349760 + SnapshotTesting: 8caa6661fea7c8019d5b46de77c16bab99c36c5c + SwiftFormat: 8b3c6b69454305a61c221355095f62dacc0811bf + SwiftLint: 55e96a4a4d537d4a3156859fc1c54bd24851a046 PODFILE CHECKSUM: f56a08d884831d712155be32578b7364270d0af0 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 42da3ac..67e6512 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -28,64 +28,65 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 01757E29DF92738C1D5D0528F1EB4824 /* View.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB566E9F56389E71F668874F6330A3D8 /* View.swift */; }; - 0DAED264381366A2E84119677C6F6DCB /* Disposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB3D0379877D54A00DA0C730991234FC /* Disposable.swift */; }; - 11F2134521037184F745C9010217B501 /* Description.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B368EC86D03FF1D2C637602F63DBC0 /* Description.swift */; }; - 14CC16A84D0558FF9DC6927E1BA82F02 /* Any.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A9B182D3C73DE76A751C41C6010D262 /* Any.swift */; }; - 17638B38223AAF22D7B211867EFDEADC /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74CA7F64B54CF1D4162684DEC1753F7E /* Observable.swift */; }; - 18ED84EFAF015095FCCF61A8E494F325 /* AssertSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 145CF6DB183B8072293466290B6042C5 /* AssertSnapshot.swift */; }; - 1A1F20E176923FF03A0EAEA886703719 /* NSView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDA8D2ED34769BCAD0702552A6EA6CE /* NSView.swift */; }; + 01757E29DF92738C1D5D0528F1EB4824 /* View.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CC8479F5FAD0A3741C90C5733436E5B /* View.swift */; }; + 11F2134521037184F745C9010217B501 /* Description.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D858C8618F658A93D46D48F4121ECF9 /* Description.swift */; }; + 14CC16A84D0558FF9DC6927E1BA82F02 /* Any.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFD55DB186331EE8D73484E3BF110F9B /* Any.swift */; }; + 18ED84EFAF015095FCCF61A8E494F325 /* AssertSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDA61AA9DB273679F07D1D39E5B29BED /* AssertSnapshot.swift */; }; + 1A1F20E176923FF03A0EAEA886703719 /* NSView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83999F48F026E73B54F280F788711F10 /* NSView.swift */; }; 1AB5DB926319ED83D108A7029C3CE863 /* GradientActivityIndicatorView+AnimateIsHidden.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CB4951B606B02B2484B9451FAEC183C /* GradientActivityIndicatorView+AnimateIsHidden.swift */; }; - 2371CFDF095282B1D6935C36C81E46FC /* UIImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70304AAE5F27DB9235683870604F0FF6 /* UIImage.swift */; }; - 23B3D1B39D273F7B43BA45F255EDE5C5 /* CaseIterable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F90E3F5B1DE1045ED7B12C66733FD5AB /* CaseIterable.swift */; }; + 2371CFDF095282B1D6935C36C81E46FC /* UIImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = F671FDAA1DC1D0D9E32E34A8922BCD7B /* UIImage.swift */; }; + 23B3D1B39D273F7B43BA45F255EDE5C5 /* CaseIterable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 477347354D7CDF791AACFA928088B3E3 /* CaseIterable.swift */; }; 23ED8630B019A004BC2A54C98AB1399C /* Pods-GradientLoadingBar_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8194C4CB9E683FC366F48513ED1B1A9A /* Pods-GradientLoadingBar_Example-dummy.m */; }; - 29F37DB8A1899894CA87E8E8381E2C11 /* NSViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0189BC0BC96937A70E5FCDA35D6C612 /* NSViewController.swift */; }; + 29F37DB8A1899894CA87E8E8381E2C11 /* NSViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5787FBAAF2D2AEA9E190508E1561907 /* NSViewController.swift */; }; 2A7E059B2E978382CFA30F2A3BB6D2C5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E59CE2F9522AE21F97AA29799051F00E /* Foundation.framework */; }; - 33432CD4B8F83F0C678B5C67CAF13414 /* String+SpecialCharacters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50B7E9522F00DD0AD7027DC144353F0E /* String+SpecialCharacters.swift */; }; - 440314FEC8EC90F865D8D20910989A69 /* Diffing.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC2483757321AE49F67B395A25AC844D /* Diffing.swift */; }; - 44A9CDE2D522E447FC0887D67AD6C94D /* Observable+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A33690F94F4CADD91B92B600AE27F8C1 /* Observable+Equatable.swift */; }; - 46B2A4686C72C29C24576FC6FF56A7BE /* AssertInlineSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3897B649E07351294B0FA29D44D407E0 /* AssertInlineSnapshot.swift */; }; + 33432CD4B8F83F0C678B5C67CAF13414 /* String+SpecialCharacters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D7EC9A1311F806CBF9A5DC3F4473BB9 /* String+SpecialCharacters.swift */; }; + 440314FEC8EC90F865D8D20910989A69 /* Diffing.swift in Sources */ = {isa = PBXBuildFile; fileRef = D535B1C4D9694B90ED676E88AF7C6C78 /* Diffing.swift */; }; + 46B2A4686C72C29C24576FC6FF56A7BE /* AssertInlineSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CB2F6F13A3B476898DAB23BF591E593 /* AssertInlineSnapshot.swift */; }; 4A53946B8515FB1817A70D133E62A27E /* LightweightObservable.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 834918404C77B6D44D53C01B3D12C581 /* LightweightObservable.framework */; }; 4B5A5EBA97A912894C10D040B5A1225D /* Pods-GradientLoadingBar_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 132C18988D60EF85736C043D43C19E57 /* Pods-GradientLoadingBar_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4CDC105622C39458E5795C079A7DA4ED /* Pods-GradientLoadingBar_SnapshotTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 172DF8516EF6D5757C3FBEF1C0CB52DC /* Pods-GradientLoadingBar_SnapshotTests-dummy.m */; }; - 4E5AA162D02372A80FABE033AD6BFFE6 /* Diff.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4AEC60BBDB141366B0ED68123828698 /* Diff.swift */; }; - 4F03BBCA0FCF5903B46F72BE0BADDF34 /* SceneKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46AFF395387A4CC60FE92A786E828D1D /* SceneKit.swift */; }; - 509FAAD85506B9E1BCCA50505B8C93DB /* SpriteKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BFA0A4F2719DD193DC28891A9A4B01 /* SpriteKit.swift */; }; - 56B2D76BD27EAA69A1BED0113B7F9F51 /* UIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A248C8477DBF2E9546D92D44650EF3D /* UIView.swift */; }; - 57244463125C60529B7391F9FA3052AD /* Snapshotting.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9FC114FA60991ED25D9014101F2F1F9 /* Snapshotting.swift */; }; + 4E5AA162D02372A80FABE033AD6BFFE6 /* Diff.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC2F44A96EACCDB8A6FAF1D7D48C8D79 /* Diff.swift */; }; + 4F03BBCA0FCF5903B46F72BE0BADDF34 /* SceneKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBC7701C922E43A4A1F49B8657678732 /* SceneKit.swift */; }; + 509FAAD85506B9E1BCCA50505B8C93DB /* SpriteKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C26EAC439F1FBA498D28DFA9216E43 /* SpriteKit.swift */; }; + 56B2D76BD27EAA69A1BED0113B7F9F51 /* UIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56A2569F5C3ACDFB048437F96FB0EF1C /* UIView.swift */; }; + 57244463125C60529B7391F9FA3052AD /* Snapshotting.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3E3DE03E022E49CB4DF37876A63FEC2 /* Snapshotting.swift */; }; 5C646D4C61F7CDC27DBCBD7960C48BB4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E59CE2F9522AE21F97AA29799051F00E /* Foundation.framework */; }; 604C51928D4CFDAE15A6CAB6327B68D6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E59CE2F9522AE21F97AA29799051F00E /* Foundation.framework */; }; 6466CB6250CBD3F61D35E1132618C759 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0965FCF94C6751E5F873995C0CC05032 /* XCTest.framework */; }; - 6658F9FE5EEFD579907F946DD9FDD8E3 /* URLRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03C42ADEC9E051CAEE2581980D758C6C /* URLRequest.swift */; }; - 67C39A754A360A5EFC7FE0037CECE5C3 /* CALayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2CDB9637C8A3BCD493F2873B29345EE /* CALayer.swift */; }; + 6658F9FE5EEFD579907F946DD9FDD8E3 /* URLRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D944FAE7CA8EDDED04EB439E16C8B263 /* URLRequest.swift */; }; + 67C39A754A360A5EFC7FE0037CECE5C3 /* CALayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = E683F810F781ECA1AE2D01147ED31672 /* CALayer.swift */; }; 72E7D09F895BFB276F79212661207A3E /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6586E9DC77F13E27590E444324A36C47 /* Constants.swift */; }; 757352462D522BDB0B228DE9880106ED /* Pods-GradientLoadingBar_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A9107CAA27BA0679345F24910903133 /* Pods-GradientLoadingBar_Tests-dummy.m */; }; - 8003323F07F7A6F822902979CE092B88 /* Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CBE6D3BD4247E80F91E431B477FA2DE /* Wait.swift */; }; - 84432746DEB076256002FB7BABDAAAA5 /* SnapshotTesting-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DB311F6AB773AD31970F8F0463FAF8C /* SnapshotTesting-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8003323F07F7A6F822902979CE092B88 /* Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = 302A2DB9EBB52D7D26ED48A1760D6F0A /* Wait.swift */; }; + 82D922DBF9F2AEB2B7CC70CE5B5FD3C4 /* Observable+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77D5D87EBA171ABF5A9772846682816D /* Observable+Equatable.swift */; }; + 84432746DEB076256002FB7BABDAAAA5 /* SnapshotTesting-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 03D84ABBED41038857FE59EC6B2CA236 /* SnapshotTesting-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 845E53EF69DD891F41769CBFAD775C5C /* GradientActivityIndicatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90FFED11EFBD01CF65BD4AAB92DD02DB /* GradientActivityIndicatorView.swift */; }; - 8CD5CB3FDF05526DBF034B61F696BA93 /* PlistEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EFE9D4953984AD96B2517795BB89947 /* PlistEncoder.swift */; }; - 8E1FBD13A74F689CFC06054841BFC596 /* UIViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0584C869DE5531706FE387B70665028E /* UIViewController.swift */; }; + 8CD5CB3FDF05526DBF034B61F696BA93 /* PlistEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B3E5C6B64E40725EB4916B2514010D /* PlistEncoder.swift */; }; + 8E1FBD13A74F689CFC06054841BFC596 /* UIViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E08F4F83A330F518BF57EE942CDE054F /* UIViewController.swift */; }; 97D4B62D9EEEFE2B493AA25E7E1764A3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E59CE2F9522AE21F97AA29799051F00E /* Foundation.framework */; }; 9BF500319938CCD42F882041380B4A4E /* GradientLoadingBar-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4283AD1FDC393BDF3385FDEB6295B439 /* GradientLoadingBar-dummy.m */; }; 9E6D6DD2645D1D0FBA57DEF8113795EF /* GradientLoadingBar-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D20C44E8C1353812EF9D6DE25B423AA /* GradientLoadingBar-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A455E5B77A019CEAEEA0F9D26B1B74E6 /* Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB4C06EC8ED1F2B831637BFB66173255 /* Codable.swift */; }; + A455E5B77A019CEAEEA0F9D26B1B74E6 /* Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D94FA98F0478E28C18DCB86BA2969EAB /* Codable.swift */; }; A46F1CB493251F84297943B5B60C8D5C /* Pods-GradientLoadingBar_SnapshotTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4371A74F9A6D74628527A30E755EFF25 /* Pods-GradientLoadingBar_SnapshotTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AA6612CD34134596239652A299AC0F76 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8BCE5D4302A674F243C447256652B99 /* Async.swift */; }; - B04CA17471143BEDA50779BE9660BD2A /* SnapshotTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63B326D215E29E571E19647FACF32678 /* SnapshotTestCase.swift */; }; + AA6612CD34134596239652A299AC0F76 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4F5FBEFE31797D51F0BD44B0568D23C /* Async.swift */; }; + B04CA17471143BEDA50779BE9660BD2A /* SnapshotTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EEADBC38816F2D8A458ADF75ECA9417 /* SnapshotTestCase.swift */; }; B25E5B67C110AC032DF1D9E03AD1E16D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E59CE2F9522AE21F97AA29799051F00E /* Foundation.framework */; }; - BAE545730096FD246A85F92769270B23 /* LightweightObservable-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 49762E013FE83803DB1E5CE46068C2DB /* LightweightObservable-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BDFAF00F9FE360EAFD864F290030A2D0 /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C8982B0BAB629DA2E7C976F96AFEBE6 /* Data.swift */; }; - BE068F001E2344449F6E193DFB12B1D1 /* NSImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 944EF97215D2CF081F9158E29862E2BE /* NSImage.swift */; }; - C2B818BE2E57EF9A8CE51775FCB33C2B /* Internal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B3FE895B6D7DC499100524F6143EBA5 /* Internal.swift */; }; + B6759C159085251DC67B5A59BE46F143 /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19B3095E6F095553E089904478EB2EE3 /* Observable.swift */; }; + BAE545730096FD246A85F92769270B23 /* LightweightObservable-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 949ED74A35563376B6C22858CFDF8813 /* LightweightObservable-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BDFAF00F9FE360EAFD864F290030A2D0 /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE5A03B096BD2EAB43489F8B21557344 /* Data.swift */; }; + BE068F001E2344449F6E193DFB12B1D1 /* NSImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F3F4D83DD328E56C9F477194D38C231 /* NSImage.swift */; }; + C2B818BE2E57EF9A8CE51775FCB33C2B /* Internal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99FFC9115C3DA352D09EA9B15C411354 /* Internal.swift */; }; + C698935821AA55555EEF8A27C7FB3D5D /* Disposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C36132768EC1C143DAE993E8ED2B03 /* Disposable.swift */; }; CE8387F85FA7B1C55704E5BDD58C9F17 /* GradientLoadingBarViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06BCAE0CD3437194563898E5D3689C0C /* GradientLoadingBarViewModel.swift */; }; - D429373DA9F337AEEFE4B5828482799F /* LightweightObservable-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BECA9867F015F9E3F25CA6850B9E0B4B /* LightweightObservable-dummy.m */; }; - D56563764E24224FB95BC77EC18F7D9E /* String.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D1FB61CB56E047078BD03B9497C92F7 /* String.swift */; }; - D6A43851802E3E81CF23D65CA9A81E4E /* SnapshotTesting-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 38225529036DDFB469893052C21DB4FE /* SnapshotTesting-dummy.m */; }; + D56563764E24224FB95BC77EC18F7D9E /* String.swift in Sources */ = {isa = PBXBuildFile; fileRef = D34F268E74688E44D924F41D602AC1F1 /* String.swift */; }; + D6A43851802E3E81CF23D65CA9A81E4E /* SnapshotTesting-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 37B08EF2DE49CECBF1DDFF3C7B09D176 /* SnapshotTesting-dummy.m */; }; DC82754FF0AA19CEEF707C55CBB24008 /* GradientActivityIndicatorViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53527D1C0CB9BB59CCA8EE08A62C2224 /* GradientActivityIndicatorViewModel.swift */; }; E8945D07A466F2FA6A965D3AA13F41EF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E59CE2F9522AE21F97AA29799051F00E /* Foundation.framework */; }; + E964CE43D2624DD003460825556D1101 /* LightweightObservable-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E61B28A1F9F3AC46D6D09267A81C903 /* LightweightObservable-dummy.m */; }; EA1F3BF177FD4A38CBE9B67849F9DAC4 /* GradientLoadingBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDA6FB19B0D9F0690352027FE76771A /* GradientLoadingBarController.swift */; }; + F430BE5B457D633EC1D32F1339B90265 /* Observable+KeyPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23F679E24890DF755674CA06C586692C /* Observable+KeyPath.swift */; }; F56FA75EA015F922C46B949B40394B3E /* Pods-GradientLoadingBar_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A900E1CFF1D76CF61DDF7358F5C8863 /* Pods-GradientLoadingBar_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FDAD70506FFFD578C1327E64876A08E3 /* XCTAttachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA14A4267F2ED8BE8B0491ABB57F25AC /* XCTAttachment.swift */; }; + FDAD70506FFFD578C1327E64876A08E3 /* XCTAttachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C1D722D54B2832393800F29E59D5368 /* XCTAttachment.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -148,102 +149,103 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 03C42ADEC9E051CAEE2581980D758C6C /* URLRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = URLRequest.swift; path = Sources/SnapshotTesting/Snapshotting/URLRequest.swift; sourceTree = ""; }; - 0584C869DE5531706FE387B70665028E /* UIViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UIViewController.swift; path = Sources/SnapshotTesting/Snapshotting/UIViewController.swift; sourceTree = ""; }; + 03D84ABBED41038857FE59EC6B2CA236 /* SnapshotTesting-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapshotTesting-umbrella.h"; sourceTree = ""; }; 06BCAE0CD3437194563898E5D3689C0C /* GradientLoadingBarViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GradientLoadingBarViewModel.swift; sourceTree = ""; }; 0965FCF94C6751E5F873995C0CC05032 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; - 0DB311F6AB773AD31970F8F0463FAF8C /* SnapshotTesting-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapshotTesting-umbrella.h"; sourceTree = ""; }; + 0CEA09EB76FD94932516CE432021C25E /* SnapshotTesting.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SnapshotTesting.modulemap; sourceTree = ""; }; 108AACC96F7DBC089B0840E09F19C698 /* Pods-GradientLoadingBar_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-GradientLoadingBar_Example.release.xcconfig"; sourceTree = ""; }; 11D94A25CBB2F8B53BC2ADA080BC09FE /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; 12A083D7F47F281A3A24E2E246151F93 /* GradientLoadingBar.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = GradientLoadingBar.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 12C36132768EC1C143DAE993E8ED2B03 /* Disposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Disposable.swift; path = LightweightObservable/Classes/Disposable.swift; sourceTree = ""; }; 132C18988D60EF85736C043D43C19E57 /* Pods-GradientLoadingBar_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-GradientLoadingBar_Tests-umbrella.h"; sourceTree = ""; }; 13520AB8B3790CE3CEDCBBEEE1EF237A /* Pods_GradientLoadingBar_SnapshotTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_GradientLoadingBar_SnapshotTests.framework; path = "Pods-GradientLoadingBar_SnapshotTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 145CF6DB183B8072293466290B6042C5 /* AssertSnapshot.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssertSnapshot.swift; path = Sources/SnapshotTesting/AssertSnapshot.swift; sourceTree = ""; }; - 14BFA0A4F2719DD193DC28891A9A4B01 /* SpriteKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SpriteKit.swift; path = Sources/SnapshotTesting/Snapshotting/SpriteKit.swift; sourceTree = ""; }; 1679A4CF92D4ADFB15F8200201EC3AE5 /* Pods-GradientLoadingBar_SnapshotTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-GradientLoadingBar_SnapshotTests-frameworks.sh"; sourceTree = ""; }; 1711FC18263D47D46851F0433A93F110 /* Pods_GradientLoadingBar_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_GradientLoadingBar_Tests.framework; path = "Pods-GradientLoadingBar_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 172DF8516EF6D5757C3FBEF1C0CB52DC /* Pods-GradientLoadingBar_SnapshotTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-GradientLoadingBar_SnapshotTests-dummy.m"; sourceTree = ""; }; + 19A2BA4739E5143D17BF1B0D2B7FEECE /* SnapshotTesting-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapshotTesting-prefix.pch"; sourceTree = ""; }; + 19B3095E6F095553E089904478EB2EE3 /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Observable.swift; path = LightweightObservable/Classes/Observable.swift; sourceTree = ""; }; 1A9107CAA27BA0679345F24910903133 /* Pods-GradientLoadingBar_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-GradientLoadingBar_Tests-dummy.m"; sourceTree = ""; }; 1B664F0A7F5E59140F761C16069995E9 /* Pods-GradientLoadingBar_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-GradientLoadingBar_Tests.release.xcconfig"; sourceTree = ""; }; 1CA5ADE67427DB590BC5414E8E4498BA /* Pods-GradientLoadingBar_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-GradientLoadingBar_Tests-acknowledgements.plist"; sourceTree = ""; }; + 1CB2F6F13A3B476898DAB23BF591E593 /* AssertInlineSnapshot.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssertInlineSnapshot.swift; path = Sources/SnapshotTesting/AssertInlineSnapshot.swift; sourceTree = ""; }; 1CB4951B606B02B2484B9451FAEC183C /* GradientActivityIndicatorView+AnimateIsHidden.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "GradientActivityIndicatorView+AnimateIsHidden.swift"; sourceTree = ""; }; 219D91F90F2D4E48019FF8920700C17F /* Pods-GradientLoadingBar_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-GradientLoadingBar_Tests-acknowledgements.markdown"; sourceTree = ""; }; + 23F679E24890DF755674CA06C586692C /* Observable+KeyPath.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+KeyPath.swift"; path = "LightweightObservable/Classes/Extensions/Observable+KeyPath.swift"; sourceTree = ""; }; + 2A27D75DEC4968580F9C10ADBDE7F15C /* LightweightObservable.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LightweightObservable.xcconfig; sourceTree = ""; }; + 2C1D722D54B2832393800F29E59D5368 /* XCTAttachment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XCTAttachment.swift; path = Sources/SnapshotTesting/Common/XCTAttachment.swift; sourceTree = ""; }; 2D246858B1E28690CC1921F1EC8328E1 /* Pods-GradientLoadingBar_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-GradientLoadingBar_Example-frameworks.sh"; sourceTree = ""; }; + 2D7EC9A1311F806CBF9A5DC3F4473BB9 /* String+SpecialCharacters.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+SpecialCharacters.swift"; path = "Sources/SnapshotTesting/Common/String+SpecialCharacters.swift"; sourceTree = ""; }; 2E16A843354D5BC8D4DA54D9AEFEAAB2 /* Pods-GradientLoadingBar_SnapshotTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-GradientLoadingBar_SnapshotTests-acknowledgements.plist"; sourceTree = ""; }; - 2EFE9D4953984AD96B2517795BB89947 /* PlistEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PlistEncoder.swift; path = Sources/SnapshotTesting/Common/PlistEncoder.swift; sourceTree = ""; }; + 2EEADBC38816F2D8A458ADF75ECA9417 /* SnapshotTestCase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SnapshotTestCase.swift; path = Sources/SnapshotTesting/SnapshotTestCase.swift; sourceTree = ""; }; + 302A2DB9EBB52D7D26ED48A1760D6F0A /* Wait.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Wait.swift; path = Sources/SnapshotTesting/Extensions/Wait.swift; sourceTree = ""; }; 349852370D1AB476FD5FA4B23F1404F9 /* GradientLoadingBar-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GradientLoadingBar-prefix.pch"; sourceTree = ""; }; - 38225529036DDFB469893052C21DB4FE /* SnapshotTesting-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SnapshotTesting-dummy.m"; sourceTree = ""; }; - 3897B649E07351294B0FA29D44D407E0 /* AssertInlineSnapshot.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssertInlineSnapshot.swift; path = Sources/SnapshotTesting/AssertInlineSnapshot.swift; sourceTree = ""; }; - 3A248C8477DBF2E9546D92D44650EF3D /* UIView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UIView.swift; path = Sources/SnapshotTesting/Snapshotting/UIView.swift; sourceTree = ""; }; + 37B08EF2DE49CECBF1DDFF3C7B09D176 /* SnapshotTesting-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SnapshotTesting-dummy.m"; sourceTree = ""; }; 3A900E1CFF1D76CF61DDF7358F5C8863 /* Pods-GradientLoadingBar_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-GradientLoadingBar_Example-umbrella.h"; sourceTree = ""; }; - 3A9B182D3C73DE76A751C41C6010D262 /* Any.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Any.swift; path = Sources/SnapshotTesting/Snapshotting/Any.swift; sourceTree = ""; }; 3C6A379C135C84644F189B8056CCBA04 /* Pods_GradientLoadingBar_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_GradientLoadingBar_Example.framework; path = "Pods-GradientLoadingBar_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 41B368EC86D03FF1D2C637602F63DBC0 /* Description.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Description.swift; path = Sources/SnapshotTesting/Snapshotting/Description.swift; sourceTree = ""; }; + 41B3E5C6B64E40725EB4916B2514010D /* PlistEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PlistEncoder.swift; path = Sources/SnapshotTesting/Common/PlistEncoder.swift; sourceTree = ""; }; 4283AD1FDC393BDF3385FDEB6295B439 /* GradientLoadingBar-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GradientLoadingBar-dummy.m"; sourceTree = ""; }; 4371A74F9A6D74628527A30E755EFF25 /* Pods-GradientLoadingBar_SnapshotTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-GradientLoadingBar_SnapshotTests-umbrella.h"; sourceTree = ""; }; - 46AFF395387A4CC60FE92A786E828D1D /* SceneKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SceneKit.swift; path = Sources/SnapshotTesting/Snapshotting/SceneKit.swift; sourceTree = ""; }; - 49762E013FE83803DB1E5CE46068C2DB /* LightweightObservable-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LightweightObservable-umbrella.h"; sourceTree = ""; }; - 4A7C14AA8E878698976216570AF16ECF /* SwiftFormat.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftFormat.xcconfig; sourceTree = ""; }; - 50B7E9522F00DD0AD7027DC144353F0E /* String+SpecialCharacters.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+SpecialCharacters.swift"; path = "Sources/SnapshotTesting/Common/String+SpecialCharacters.swift"; sourceTree = ""; }; + 477347354D7CDF791AACFA928088B3E3 /* CaseIterable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CaseIterable.swift; path = Sources/SnapshotTesting/Snapshotting/CaseIterable.swift; sourceTree = ""; }; + 47C26EAC439F1FBA498D28DFA9216E43 /* SpriteKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SpriteKit.swift; path = Sources/SnapshotTesting/Snapshotting/SpriteKit.swift; sourceTree = ""; }; + 4F3F4D83DD328E56C9F477194D38C231 /* NSImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NSImage.swift; path = Sources/SnapshotTesting/Snapshotting/NSImage.swift; sourceTree = ""; }; 53527D1C0CB9BB59CCA8EE08A62C2224 /* GradientActivityIndicatorViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GradientActivityIndicatorViewModel.swift; sourceTree = ""; }; - 5B919D8BD4EB0AE92F60A8D362B095FD /* LightweightObservable.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LightweightObservable.xcconfig; sourceTree = ""; }; - 63B326D215E29E571E19647FACF32678 /* SnapshotTestCase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SnapshotTestCase.swift; path = Sources/SnapshotTesting/SnapshotTestCase.swift; sourceTree = ""; }; + 56A2569F5C3ACDFB048437F96FB0EF1C /* UIView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UIView.swift; path = Sources/SnapshotTesting/Snapshotting/UIView.swift; sourceTree = ""; }; + 5CC8479F5FAD0A3741C90C5733436E5B /* View.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = View.swift; path = Sources/SnapshotTesting/Common/View.swift; sourceTree = ""; }; 652D9AA358DBDB2DBA1CFB02CCBA8DC4 /* Pods-GradientLoadingBar_Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-GradientLoadingBar_Tests-Info.plist"; sourceTree = ""; }; 6586E9DC77F13E27590E444324A36C47 /* Constants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = ""; }; 67873E92210DD4E777C49C6E8AEDC108 /* GradientLoadingBar.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = GradientLoadingBar.framework; path = GradientLoadingBar.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 69838A921E83418B945E72EB342809F5 /* Pods-GradientLoadingBar_SnapshotTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-GradientLoadingBar_SnapshotTests.debug.xcconfig"; sourceTree = ""; }; - 6D1FB61CB56E047078BD03B9497C92F7 /* String.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = String.swift; path = Sources/SnapshotTesting/Snapshotting/String.swift; sourceTree = ""; }; 6DDA6FB19B0D9F0690352027FE76771A /* GradientLoadingBarController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GradientLoadingBarController.swift; path = GradientLoadingBar/Classes/GradientLoadingBarController.swift; sourceTree = ""; }; - 6DDA8D2ED34769BCAD0702552A6EA6CE /* NSView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NSView.swift; path = Sources/SnapshotTesting/Snapshotting/NSView.swift; sourceTree = ""; }; - 70304AAE5F27DB9235683870604F0FF6 /* UIImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UIImage.swift; path = Sources/SnapshotTesting/Snapshotting/UIImage.swift; sourceTree = ""; }; - 72C2698A8A0A8746D86D24BEBCCDBCDD /* LightweightObservable.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = LightweightObservable.modulemap; sourceTree = ""; }; + 70F310082EC544CB790C23AA809E9E99 /* LightweightObservable-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LightweightObservable-prefix.pch"; sourceTree = ""; }; 73DF3D7BD316EDAA8BE47C2708C98323 /* GradientLoadingBar.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = GradientLoadingBar.modulemap; sourceTree = ""; }; - 74CA7F64B54CF1D4162684DEC1753F7E /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Observable.swift; path = LightweightObservable/Classes/Observable.swift; sourceTree = ""; }; - 7B3FE895B6D7DC499100524F6143EBA5 /* Internal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Internal.swift; path = Sources/SnapshotTesting/Common/Internal.swift; sourceTree = ""; }; + 77D5D87EBA171ABF5A9772846682816D /* Observable+Equatable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Equatable.swift"; path = "LightweightObservable/Classes/Extensions/Observable+Equatable.swift"; sourceTree = ""; }; 7D20C44E8C1353812EF9D6DE25B423AA /* GradientLoadingBar-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GradientLoadingBar-umbrella.h"; sourceTree = ""; }; 8194C4CB9E683FC366F48513ED1B1A9A /* Pods-GradientLoadingBar_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-GradientLoadingBar_Example-dummy.m"; sourceTree = ""; }; 834918404C77B6D44D53C01B3D12C581 /* LightweightObservable.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LightweightObservable.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8C8982B0BAB629DA2E7C976F96AFEBE6 /* Data.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Data.swift; path = Sources/SnapshotTesting/Snapshotting/Data.swift; sourceTree = ""; }; + 83999F48F026E73B54F280F788711F10 /* NSView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NSView.swift; path = Sources/SnapshotTesting/Snapshotting/NSView.swift; sourceTree = ""; }; + 8D858C8618F658A93D46D48F4121ECF9 /* Description.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Description.swift; path = Sources/SnapshotTesting/Snapshotting/Description.swift; sourceTree = ""; }; 90FFED11EFBD01CF65BD4AAB92DD02DB /* GradientActivityIndicatorView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GradientActivityIndicatorView.swift; sourceTree = ""; }; - 944EF97215D2CF081F9158E29862E2BE /* NSImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NSImage.swift; path = Sources/SnapshotTesting/Snapshotting/NSImage.swift; sourceTree = ""; }; + 949ED74A35563376B6C22858CFDF8813 /* LightweightObservable-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LightweightObservable-umbrella.h"; sourceTree = ""; }; 9798910590C4A9BAAEF4C64926A5345B /* GradientLoadingBar-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "GradientLoadingBar-Info.plist"; sourceTree = ""; }; - 9CBE6D3BD4247E80F91E431B477FA2DE /* Wait.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Wait.swift; path = Sources/SnapshotTesting/Extensions/Wait.swift; sourceTree = ""; }; - 9D539BEB45DEBD6496F16893800CA9AA /* SnapshotTesting.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SnapshotTesting.xcconfig; sourceTree = ""; }; + 99FFC9115C3DA352D09EA9B15C411354 /* Internal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Internal.swift; path = Sources/SnapshotTesting/Common/Internal.swift; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 9DD32929B122D2561D1E99468EECDBF7 /* Pods-GradientLoadingBar_SnapshotTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-GradientLoadingBar_SnapshotTests.release.xcconfig"; sourceTree = ""; }; - 9EA8D5E9404B94D46ADEA149A2780D0E /* LightweightObservable-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "LightweightObservable-Info.plist"; sourceTree = ""; }; - A0189BC0BC96937A70E5FCDA35D6C612 /* NSViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NSViewController.swift; path = Sources/SnapshotTesting/Snapshotting/NSViewController.swift; sourceTree = ""; }; + 9E61B28A1F9F3AC46D6D09267A81C903 /* LightweightObservable-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LightweightObservable-dummy.m"; sourceTree = ""; }; A037DBBCCACBFACB5C39A80B1C273043 /* SnapshotTesting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SnapshotTesting.framework; path = SnapshotTesting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A33690F94F4CADD91B92B600AE27F8C1 /* Observable+Equatable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Observable+Equatable.swift"; path = "LightweightObservable/Classes/Extensions/Observable+Equatable.swift"; sourceTree = ""; }; A4670DF6ADBDF1CD1175DD92AADA3089 /* GradientLoadingBar.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GradientLoadingBar.xcconfig; sourceTree = ""; }; - A52A38520CE7F6D3AEF76CCDA7586B03 /* SnapshotTesting.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SnapshotTesting.modulemap; sourceTree = ""; }; A652F20CE7EE44E64565C2120B651665 /* Pods-GradientLoadingBar_SnapshotTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-GradientLoadingBar_SnapshotTests.modulemap"; sourceTree = ""; }; A95E7032DE35DF972EF7FEC8A884303B /* Pods-GradientLoadingBar_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-GradientLoadingBar_Example.debug.xcconfig"; sourceTree = ""; }; - A9FC114FA60991ED25D9014101F2F1F9 /* Snapshotting.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Snapshotting.swift; path = Sources/SnapshotTesting/Snapshotting.swift; sourceTree = ""; }; + AC2F44A96EACCDB8A6FAF1D7D48C8D79 /* Diff.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Diff.swift; path = Sources/SnapshotTesting/Diff.swift; sourceTree = ""; }; + AC9D7E697FF015085DA64927EAAA9B4F /* LightweightObservable-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "LightweightObservable-Info.plist"; sourceTree = ""; }; + AFD55DB186331EE8D73484E3BF110F9B /* Any.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Any.swift; path = Sources/SnapshotTesting/Snapshotting/Any.swift; sourceTree = ""; }; B1518F0564D9405495037F4713C4F143 /* Pods-GradientLoadingBar_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-GradientLoadingBar_Tests.modulemap"; sourceTree = ""; }; B27AAA41B1DEF56C8059867126A15A38 /* Pods-GradientLoadingBar_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-GradientLoadingBar_Example-Info.plist"; sourceTree = ""; }; - B4AEC60BBDB141366B0ED68123828698 /* Diff.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Diff.swift; path = Sources/SnapshotTesting/Diff.swift; sourceTree = ""; }; B7FF35F32E5C06204CAF8183AC101D53 /* Pods-GradientLoadingBar_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-GradientLoadingBar_Example-acknowledgements.plist"; sourceTree = ""; }; - BC2483757321AE49F67B395A25AC844D /* Diffing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Diffing.swift; path = Sources/SnapshotTesting/Diffing.swift; sourceTree = ""; }; + BBF53C477B750D241B3CDA92FC56773C /* SwiftFormat.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftFormat.xcconfig; sourceTree = ""; }; BEBA37204701F79F631433A8EEF190E7 /* Pods-GradientLoadingBar_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-GradientLoadingBar_Example-acknowledgements.markdown"; sourceTree = ""; }; - BECA9867F015F9E3F25CA6850B9E0B4B /* LightweightObservable-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LightweightObservable-dummy.m"; sourceTree = ""; }; - C2CDB9637C8A3BCD493F2873B29345EE /* CALayer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CALayer.swift; path = Sources/SnapshotTesting/Snapshotting/CALayer.swift; sourceTree = ""; }; - C8326A4C4AF54A8DE4605E3FD9644158 /* SnapshotTesting-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SnapshotTesting-Info.plist"; sourceTree = ""; }; - CB4C06EC8ED1F2B831637BFB66173255 /* Codable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Codable.swift; path = Sources/SnapshotTesting/Snapshotting/Codable.swift; sourceTree = ""; }; - D8BCE5D4302A674F243C447256652B99 /* Async.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Async.swift; path = Sources/SnapshotTesting/Async.swift; sourceTree = ""; }; - DEA1E2AE846F92072ED166B3B19A8B94 /* LightweightObservable-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LightweightObservable-prefix.pch"; sourceTree = ""; }; + CE5A03B096BD2EAB43489F8B21557344 /* Data.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Data.swift; path = Sources/SnapshotTesting/Snapshotting/Data.swift; sourceTree = ""; }; + D34F268E74688E44D924F41D602AC1F1 /* String.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = String.swift; path = Sources/SnapshotTesting/Snapshotting/String.swift; sourceTree = ""; }; + D4F5FBEFE31797D51F0BD44B0568D23C /* Async.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Async.swift; path = Sources/SnapshotTesting/Async.swift; sourceTree = ""; }; + D535B1C4D9694B90ED676E88AF7C6C78 /* Diffing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Diffing.swift; path = Sources/SnapshotTesting/Diffing.swift; sourceTree = ""; }; + D5787FBAAF2D2AEA9E190508E1561907 /* NSViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NSViewController.swift; path = Sources/SnapshotTesting/Snapshotting/NSViewController.swift; sourceTree = ""; }; + D944FAE7CA8EDDED04EB439E16C8B263 /* URLRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = URLRequest.swift; path = Sources/SnapshotTesting/Snapshotting/URLRequest.swift; sourceTree = ""; }; + D94FA98F0478E28C18DCB86BA2969EAB /* Codable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Codable.swift; path = Sources/SnapshotTesting/Snapshotting/Codable.swift; sourceTree = ""; }; + DB5EF41BA1CAE6DC735A396274B2867B /* LightweightObservable.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = LightweightObservable.modulemap; sourceTree = ""; }; + DDA660E7611925621C42BCFAF2EEB08C /* SnapshotTesting.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SnapshotTesting.xcconfig; sourceTree = ""; }; + E08F4F83A330F518BF57EE942CDE054F /* UIViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UIViewController.swift; path = Sources/SnapshotTesting/Snapshotting/UIViewController.swift; sourceTree = ""; }; E0D90990792D653F523A884442305989 /* Pods-GradientLoadingBar_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-GradientLoadingBar_Example.modulemap"; sourceTree = ""; }; - E23F6C00A08F14EF0FF18822A3751859 /* SwiftLint.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftLint.xcconfig; sourceTree = ""; }; + E3E3DE03E022E49CB4DF37876A63FEC2 /* Snapshotting.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Snapshotting.swift; path = Sources/SnapshotTesting/Snapshotting.swift; sourceTree = ""; }; E59CE2F9522AE21F97AA29799051F00E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - E8BA552F42F5836B71392FE4C3B323E5 /* SnapshotTesting-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapshotTesting-prefix.pch"; sourceTree = ""; }; + E683F810F781ECA1AE2D01147ED31672 /* CALayer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CALayer.swift; path = Sources/SnapshotTesting/Snapshotting/CALayer.swift; sourceTree = ""; }; + E689B867F07168468D90759AE0417D07 /* SnapshotTesting-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SnapshotTesting-Info.plist"; sourceTree = ""; }; E94DC28C03CC14E19767737B588D8D43 /* readme.md */ = {isa = PBXFileReference; includeInIndex = 1; path = readme.md; sourceTree = ""; }; - EA14A4267F2ED8BE8B0491ABB57F25AC /* XCTAttachment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = XCTAttachment.swift; path = Sources/SnapshotTesting/Common/XCTAttachment.swift; sourceTree = ""; }; - EB3D0379877D54A00DA0C730991234FC /* Disposable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Disposable.swift; path = LightweightObservable/Classes/Disposable.swift; sourceTree = ""; }; - EB566E9F56389E71F668874F6330A3D8 /* View.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = View.swift; path = Sources/SnapshotTesting/Common/View.swift; sourceTree = ""; }; F196AAA163469B17170E99B82C7C4C0A /* LightweightObservable.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = LightweightObservable.framework; path = LightweightObservable.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F671FDAA1DC1D0D9E32E34A8922BCD7B /* UIImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UIImage.swift; path = Sources/SnapshotTesting/Snapshotting/UIImage.swift; sourceTree = ""; }; F7B1750DE470F045803DE2094D5F7264 /* Pods-GradientLoadingBar_SnapshotTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-GradientLoadingBar_SnapshotTests-Info.plist"; sourceTree = ""; }; - F90E3F5B1DE1045ED7B12C66733FD5AB /* CaseIterable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CaseIterable.swift; path = Sources/SnapshotTesting/Snapshotting/CaseIterable.swift; sourceTree = ""; }; FBAEAE91BB9B77006558E537894C33C5 /* Pods-GradientLoadingBar_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-GradientLoadingBar_Tests.debug.xcconfig"; sourceTree = ""; }; + FBC7701C922E43A4A1F49B8657678732 /* SceneKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SceneKit.swift; path = Sources/SnapshotTesting/Snapshotting/SceneKit.swift; sourceTree = ""; }; + FDA61AA9DB273679F07D1D39E5B29BED /* AssertSnapshot.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssertSnapshot.swift; path = Sources/SnapshotTesting/AssertSnapshot.swift; sourceTree = ""; }; + FEF7FD978E983EDDB770351D4F6A1EF2 /* SwiftLint.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftLint.xcconfig; sourceTree = ""; }; FF135E1D23F08BE7F1D7FFC86260EF9B /* Pods-GradientLoadingBar_SnapshotTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-GradientLoadingBar_SnapshotTests-acknowledgements.markdown"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -301,10 +303,19 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 017E679626426B2B93BBEE6D2B0363CF /* SwiftLint */ = { + 0104C765451F1127EAF1E190FCF845AC /* SwiftFormat */ = { isa = PBXGroup; children = ( - 4D8D63188903D740B96A1B89FDA7F295 /* Support Files */, + 4E69C8E0E32BE6A0E8BE5903A7EB52AD /* Support Files */, + ); + name = SwiftFormat; + path = SwiftFormat; + sourceTree = ""; + }; + 03C21C8DFBE4F739EA197AD502ABEB51 /* SwiftLint */ = { + isa = PBXGroup; + children = ( + 54D1E094F9F49151A0D8246D38FC2B3C /* Support Files */, ); name = SwiftLint; path = SwiftLint; @@ -326,24 +337,18 @@ path = "Target Support Files/Pods-GradientLoadingBar_Tests"; sourceTree = ""; }; - 31C8B2DD36C1EE2997C7396A78D0E869 /* Pods */ = { + 3DE8A43ACA4C7967B13E42D501B31597 /* Support Files */ = { isa = PBXGroup; children = ( - 7EFF4F2EB1AA15941456CF562C2BABA5 /* LightweightObservable */, - DFE7EB4CD5739DBF1832563A657DD279 /* SnapshotTesting */, - 330769B0562420C46D40D9BD3F18099B /* SwiftFormat */, - 017E679626426B2B93BBEE6D2B0363CF /* SwiftLint */, + DB5EF41BA1CAE6DC735A396274B2867B /* LightweightObservable.modulemap */, + 2A27D75DEC4968580F9C10ADBDE7F15C /* LightweightObservable.xcconfig */, + 9E61B28A1F9F3AC46D6D09267A81C903 /* LightweightObservable-dummy.m */, + AC9D7E697FF015085DA64927EAAA9B4F /* LightweightObservable-Info.plist */, + 70F310082EC544CB790C23AA809E9E99 /* LightweightObservable-prefix.pch */, + 949ED74A35563376B6C22858CFDF8813 /* LightweightObservable-umbrella.h */, ); - name = Pods; - sourceTree = ""; - }; - 330769B0562420C46D40D9BD3F18099B /* SwiftFormat */ = { - isa = PBXGroup; - children = ( - 84AC08096FB74956D9319FEBF7CF0334 /* Support Files */, - ); - name = SwiftFormat; - path = SwiftFormat; + name = "Support Files"; + path = "../Target Support Files/LightweightObservable"; sourceTree = ""; }; 43B10757738539C40D5ED2A1ECDB8ADE /* Products */ = { @@ -368,13 +373,13 @@ path = GradientLoadingBar/Classes/Misc; sourceTree = ""; }; - 4D8D63188903D740B96A1B89FDA7F295 /* Support Files */ = { + 4E69C8E0E32BE6A0E8BE5903A7EB52AD /* Support Files */ = { isa = PBXGroup; children = ( - E23F6C00A08F14EF0FF18822A3751859 /* SwiftLint.xcconfig */, + BBF53C477B750D241B3CDA92FC56773C /* SwiftFormat.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/SwiftLint"; + path = "../Target Support Files/SwiftFormat"; sourceTree = ""; }; 53BCC163307702BEE4D1B8E3EA5BAB0B /* Views */ = { @@ -387,6 +392,15 @@ path = GradientLoadingBar/Classes/Views; sourceTree = ""; }; + 54D1E094F9F49151A0D8246D38FC2B3C /* Support Files */ = { + isa = PBXGroup; + children = ( + FEF7FD978E983EDDB770351D4F6A1EF2 /* SwiftLint.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/SwiftLint"; + sourceTree = ""; + }; 6083CB933269AE8EC9B95029E6B5BCD8 /* Development Pods */ = { isa = PBXGroup; children = ( @@ -395,32 +409,6 @@ name = "Development Pods"; sourceTree = ""; }; - 6A1EA7EEB441BB20A010194D1D56538A /* Support Files */ = { - isa = PBXGroup; - children = ( - A52A38520CE7F6D3AEF76CCDA7586B03 /* SnapshotTesting.modulemap */, - 9D539BEB45DEBD6496F16893800CA9AA /* SnapshotTesting.xcconfig */, - 38225529036DDFB469893052C21DB4FE /* SnapshotTesting-dummy.m */, - C8326A4C4AF54A8DE4605E3FD9644158 /* SnapshotTesting-Info.plist */, - E8BA552F42F5836B71392FE4C3B323E5 /* SnapshotTesting-prefix.pch */, - 0DB311F6AB773AD31970F8F0463FAF8C /* SnapshotTesting-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/SnapshotTesting"; - sourceTree = ""; - }; - 7EFF4F2EB1AA15941456CF562C2BABA5 /* LightweightObservable */ = { - isa = PBXGroup; - children = ( - EB3D0379877D54A00DA0C730991234FC /* Disposable.swift */, - 74CA7F64B54CF1D4162684DEC1753F7E /* Observable.swift */, - A33690F94F4CADD91B92B600AE27F8C1 /* Observable+Equatable.swift */, - FB19392D2438D1D44615EF5CD0694F39 /* Support Files */, - ); - name = LightweightObservable; - path = LightweightObservable; - sourceTree = ""; - }; 810FDB3212C2E1BF5CEB60C53A119039 /* Pods-GradientLoadingBar_SnapshotTests */ = { isa = PBXGroup; children = ( @@ -438,13 +426,18 @@ path = "Target Support Files/Pods-GradientLoadingBar_SnapshotTests"; sourceTree = ""; }; - 84AC08096FB74956D9319FEBF7CF0334 /* Support Files */ = { + AE60BFEE0DC52B98A02AA6F84A960BE0 /* Support Files */ = { isa = PBXGroup; children = ( - 4A7C14AA8E878698976216570AF16ECF /* SwiftFormat.xcconfig */, + 0CEA09EB76FD94932516CE432021C25E /* SnapshotTesting.modulemap */, + DDA660E7611925621C42BCFAF2EEB08C /* SnapshotTesting.xcconfig */, + 37B08EF2DE49CECBF1DDFF3C7B09D176 /* SnapshotTesting-dummy.m */, + E689B867F07168468D90759AE0417D07 /* SnapshotTesting-Info.plist */, + 19A2BA4739E5143D17BF1B0D2B7FEECE /* SnapshotTesting-prefix.pch */, + 03D84ABBED41038857FE59EC6B2CA236 /* SnapshotTesting-umbrella.h */, ); name = "Support Files"; - path = "../Target Support Files/SwiftFormat"; + path = "../Target Support Files/SnapshotTesting"; sourceTree = ""; }; B61AD2E05C344D7309F63862B66F2BC0 /* Pods-GradientLoadingBar_Example */ = { @@ -473,56 +466,69 @@ name = iOS; sourceTree = ""; }; + C060B6B195C27D817A2E27C6FB13621C /* SnapshotTesting */ = { + isa = PBXGroup; + children = ( + AFD55DB186331EE8D73484E3BF110F9B /* Any.swift */, + 1CB2F6F13A3B476898DAB23BF591E593 /* AssertInlineSnapshot.swift */, + FDA61AA9DB273679F07D1D39E5B29BED /* AssertSnapshot.swift */, + D4F5FBEFE31797D51F0BD44B0568D23C /* Async.swift */, + E683F810F781ECA1AE2D01147ED31672 /* CALayer.swift */, + 477347354D7CDF791AACFA928088B3E3 /* CaseIterable.swift */, + D94FA98F0478E28C18DCB86BA2969EAB /* Codable.swift */, + CE5A03B096BD2EAB43489F8B21557344 /* Data.swift */, + 8D858C8618F658A93D46D48F4121ECF9 /* Description.swift */, + AC2F44A96EACCDB8A6FAF1D7D48C8D79 /* Diff.swift */, + D535B1C4D9694B90ED676E88AF7C6C78 /* Diffing.swift */, + 99FFC9115C3DA352D09EA9B15C411354 /* Internal.swift */, + 4F3F4D83DD328E56C9F477194D38C231 /* NSImage.swift */, + 83999F48F026E73B54F280F788711F10 /* NSView.swift */, + D5787FBAAF2D2AEA9E190508E1561907 /* NSViewController.swift */, + 41B3E5C6B64E40725EB4916B2514010D /* PlistEncoder.swift */, + FBC7701C922E43A4A1F49B8657678732 /* SceneKit.swift */, + 2EEADBC38816F2D8A458ADF75ECA9417 /* SnapshotTestCase.swift */, + E3E3DE03E022E49CB4DF37876A63FEC2 /* Snapshotting.swift */, + 47C26EAC439F1FBA498D28DFA9216E43 /* SpriteKit.swift */, + D34F268E74688E44D924F41D602AC1F1 /* String.swift */, + 2D7EC9A1311F806CBF9A5DC3F4473BB9 /* String+SpecialCharacters.swift */, + F671FDAA1DC1D0D9E32E34A8922BCD7B /* UIImage.swift */, + 56A2569F5C3ACDFB048437F96FB0EF1C /* UIView.swift */, + E08F4F83A330F518BF57EE942CDE054F /* UIViewController.swift */, + D944FAE7CA8EDDED04EB439E16C8B263 /* URLRequest.swift */, + 5CC8479F5FAD0A3741C90C5733436E5B /* View.swift */, + 302A2DB9EBB52D7D26ED48A1760D6F0A /* Wait.swift */, + 2C1D722D54B2832393800F29E59D5368 /* XCTAttachment.swift */, + AE60BFEE0DC52B98A02AA6F84A960BE0 /* Support Files */, + ); + name = SnapshotTesting; + path = SnapshotTesting; + sourceTree = ""; + }; + C371D74FC28C4A9A0CD6BAE5AD6BEB26 /* LightweightObservable */ = { + isa = PBXGroup; + children = ( + 12C36132768EC1C143DAE993E8ED2B03 /* Disposable.swift */, + 19B3095E6F095553E089904478EB2EE3 /* Observable.swift */, + 77D5D87EBA171ABF5A9772846682816D /* Observable+Equatable.swift */, + 23F679E24890DF755674CA06C586692C /* Observable+KeyPath.swift */, + 3DE8A43ACA4C7967B13E42D501B31597 /* Support Files */, + ); + name = LightweightObservable; + path = LightweightObservable; + sourceTree = ""; + }; CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, 6083CB933269AE8EC9B95029E6B5BCD8 /* Development Pods */, ED635EACC8572F31376B6F8762793E86 /* Frameworks */, - 31C8B2DD36C1EE2997C7396A78D0E869 /* Pods */, + FE5B5656A9C615AEA4FA2FD452F27E0B /* Pods */, 43B10757738539C40D5ED2A1ECDB8ADE /* Products */, F35D8C7C6DA5C631C17C6CAC2AECDFEA /* Targets Support Files */, ); sourceTree = ""; }; - DFE7EB4CD5739DBF1832563A657DD279 /* SnapshotTesting */ = { - isa = PBXGroup; - children = ( - 3A9B182D3C73DE76A751C41C6010D262 /* Any.swift */, - 3897B649E07351294B0FA29D44D407E0 /* AssertInlineSnapshot.swift */, - 145CF6DB183B8072293466290B6042C5 /* AssertSnapshot.swift */, - D8BCE5D4302A674F243C447256652B99 /* Async.swift */, - C2CDB9637C8A3BCD493F2873B29345EE /* CALayer.swift */, - F90E3F5B1DE1045ED7B12C66733FD5AB /* CaseIterable.swift */, - CB4C06EC8ED1F2B831637BFB66173255 /* Codable.swift */, - 8C8982B0BAB629DA2E7C976F96AFEBE6 /* Data.swift */, - 41B368EC86D03FF1D2C637602F63DBC0 /* Description.swift */, - B4AEC60BBDB141366B0ED68123828698 /* Diff.swift */, - BC2483757321AE49F67B395A25AC844D /* Diffing.swift */, - 7B3FE895B6D7DC499100524F6143EBA5 /* Internal.swift */, - 944EF97215D2CF081F9158E29862E2BE /* NSImage.swift */, - 6DDA8D2ED34769BCAD0702552A6EA6CE /* NSView.swift */, - A0189BC0BC96937A70E5FCDA35D6C612 /* NSViewController.swift */, - 2EFE9D4953984AD96B2517795BB89947 /* PlistEncoder.swift */, - 46AFF395387A4CC60FE92A786E828D1D /* SceneKit.swift */, - 63B326D215E29E571E19647FACF32678 /* SnapshotTestCase.swift */, - A9FC114FA60991ED25D9014101F2F1F9 /* Snapshotting.swift */, - 14BFA0A4F2719DD193DC28891A9A4B01 /* SpriteKit.swift */, - 6D1FB61CB56E047078BD03B9497C92F7 /* String.swift */, - 50B7E9522F00DD0AD7027DC144353F0E /* String+SpecialCharacters.swift */, - 70304AAE5F27DB9235683870604F0FF6 /* UIImage.swift */, - 3A248C8477DBF2E9546D92D44650EF3D /* UIView.swift */, - 0584C869DE5531706FE387B70665028E /* UIViewController.swift */, - 03C42ADEC9E051CAEE2581980D758C6C /* URLRequest.swift */, - EB566E9F56389E71F668874F6330A3D8 /* View.swift */, - 9CBE6D3BD4247E80F91E431B477FA2DE /* Wait.swift */, - EA14A4267F2ED8BE8B0491ABB57F25AC /* XCTAttachment.swift */, - 6A1EA7EEB441BB20A010194D1D56538A /* Support Files */, - ); - name = SnapshotTesting; - path = SnapshotTesting; - sourceTree = ""; - }; E84ED38190CB986A4475121DAB2DB342 /* Pod */ = { isa = PBXGroup; children = ( @@ -590,18 +596,15 @@ name = "Targets Support Files"; sourceTree = ""; }; - FB19392D2438D1D44615EF5CD0694F39 /* Support Files */ = { + FE5B5656A9C615AEA4FA2FD452F27E0B /* Pods */ = { isa = PBXGroup; children = ( - 72C2698A8A0A8746D86D24BEBCCDBCDD /* LightweightObservable.modulemap */, - 5B919D8BD4EB0AE92F60A8D362B095FD /* LightweightObservable.xcconfig */, - BECA9867F015F9E3F25CA6850B9E0B4B /* LightweightObservable-dummy.m */, - 9EA8D5E9404B94D46ADEA149A2780D0E /* LightweightObservable-Info.plist */, - DEA1E2AE846F92072ED166B3B19A8B94 /* LightweightObservable-prefix.pch */, - 49762E013FE83803DB1E5CE46068C2DB /* LightweightObservable-umbrella.h */, + C371D74FC28C4A9A0CD6BAE5AD6BEB26 /* LightweightObservable */, + C060B6B195C27D817A2E27C6FB13621C /* SnapshotTesting */, + 0104C765451F1127EAF1E190FCF845AC /* SwiftFormat */, + 03C21C8DFBE4F739EA197AD502ABEB51 /* SwiftLint */, ); - name = "Support Files"; - path = "../Target Support Files/LightweightObservable"; + name = Pods; sourceTree = ""; }; /* End PBXGroup section */ @@ -663,7 +666,7 @@ buildConfigurationList = ADE518225F2C0914D89DC54CBE22013A /* Build configuration list for PBXNativeTarget "LightweightObservable" */; buildPhases = ( 87C51E7819DE750015C7E24923412AD5 /* Headers */, - 173CEF6DBB1B6DE6E4B8D4EB67BB4381 /* Sources */, + 1AE099C2FAE37E63C6FA8EEFB92470A5 /* Sources */, A9DFC56864A32BEA089ED18F9566ED55 /* Frameworks */, 281E0743FF2C88D81B0B6D2162848B7B /* Resources */, ); @@ -854,14 +857,15 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 173CEF6DBB1B6DE6E4B8D4EB67BB4381 /* Sources */ = { + 1AE099C2FAE37E63C6FA8EEFB92470A5 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 0DAED264381366A2E84119677C6F6DCB /* Disposable.swift in Sources */, - D429373DA9F337AEEFE4B5828482799F /* LightweightObservable-dummy.m in Sources */, - 44A9CDE2D522E447FC0887D67AD6C94D /* Observable+Equatable.swift in Sources */, - 17638B38223AAF22D7B211867EFDEADC /* Observable.swift in Sources */, + C698935821AA55555EEF8A27C7FB3D5D /* Disposable.swift in Sources */, + E964CE43D2624DD003460825556D1101 /* LightweightObservable-dummy.m in Sources */, + 82D922DBF9F2AEB2B7CC70CE5B5FD3C4 /* Observable+Equatable.swift in Sources */, + F430BE5B457D633EC1D32F1339B90265 /* Observable+KeyPath.swift in Sources */, + B6759C159085251DC67B5A59BE46F143 /* Observable.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -996,7 +1000,7 @@ /* Begin XCBuildConfiguration section */ 008D005CE090F94D9AC21E11C4376BE6 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E23F6C00A08F14EF0FF18822A3751859 /* SwiftLint.xcconfig */; + baseConfigurationReference = FEF7FD978E983EDDB770351D4F6A1EF2 /* SwiftLint.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -1046,7 +1050,7 @@ }; 0D9E7A9AF4022B9C68A3082DE0765CA7 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9D539BEB45DEBD6496F16893800CA9AA /* SnapshotTesting.xcconfig */; + baseConfigurationReference = DDA660E7611925621C42BCFAF2EEB08C /* SnapshotTesting.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; @@ -1176,7 +1180,7 @@ }; 16DE951C016F7F918FD9DD9D4F6EBB55 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4A7C14AA8E878698976216570AF16ECF /* SwiftFormat.xcconfig */; + baseConfigurationReference = BBF53C477B750D241B3CDA92FC56773C /* SwiftFormat.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -1227,7 +1231,7 @@ }; 2DEA6B4F4EE303232D51D99A7D341460 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9D539BEB45DEBD6496F16893800CA9AA /* SnapshotTesting.xcconfig */; + baseConfigurationReference = DDA660E7611925621C42BCFAF2EEB08C /* SnapshotTesting.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; @@ -1258,9 +1262,41 @@ }; name = Debug; }; + 31B1DEE52C5F2F63573968B4C0F953CF /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A4670DF6ADBDF1CD1175DD92AADA3089 /* GradientLoadingBar.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/GradientLoadingBar/GradientLoadingBar-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/GradientLoadingBar/GradientLoadingBar-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/GradientLoadingBar/GradientLoadingBar.modulemap"; + PRODUCT_MODULE_NAME = GradientLoadingBar; + PRODUCT_NAME = GradientLoadingBar; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; 4A1AA437DA57B1A8278C07CD0CD65DC8 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5B919D8BD4EB0AE92F60A8D362B095FD /* LightweightObservable.xcconfig */; + baseConfigurationReference = 2A27D75DEC4968580F9C10ADBDE7F15C /* LightweightObservable.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CODE_SIGN_IDENTITY = ""; @@ -1328,7 +1364,7 @@ }; 5FF8028ED054F437A1BCF45B08FEA528 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4A7C14AA8E878698976216570AF16ECF /* SwiftFormat.xcconfig */; + baseConfigurationReference = BBF53C477B750D241B3CDA92FC56773C /* SwiftFormat.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -1340,9 +1376,42 @@ }; name = Debug; }; + 6074A1EE9600A0FD2E40BA75910BF52C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A4670DF6ADBDF1CD1175DD92AADA3089 /* GradientLoadingBar.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/GradientLoadingBar/GradientLoadingBar-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/GradientLoadingBar/GradientLoadingBar-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/GradientLoadingBar/GradientLoadingBar.modulemap"; + PRODUCT_MODULE_NAME = GradientLoadingBar; + PRODUCT_NAME = GradientLoadingBar; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; 7E8A79237CD57F0D31FF6F1CCE4C3E5E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5B919D8BD4EB0AE92F60A8D362B095FD /* LightweightObservable.xcconfig */; + baseConfigurationReference = 2A27D75DEC4968580F9C10ADBDE7F15C /* LightweightObservable.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CODE_SIGN_IDENTITY = ""; @@ -1409,7 +1478,7 @@ }; A8DC85C0B8873D44159D84BA7C962D7E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E23F6C00A08F14EF0FF18822A3751859 /* SwiftLint.xcconfig */; + baseConfigurationReference = FEF7FD978E983EDDB770351D4F6A1EF2 /* SwiftLint.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -1522,71 +1591,6 @@ }; name = Debug; }; - F632A0DD0F59922A679E95E9DE724E77 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A4670DF6ADBDF1CD1175DD92AADA3089 /* GradientLoadingBar.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/GradientLoadingBar/GradientLoadingBar-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/GradientLoadingBar/GradientLoadingBar-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/GradientLoadingBar/GradientLoadingBar.modulemap"; - PRODUCT_MODULE_NAME = GradientLoadingBar; - PRODUCT_NAME = GradientLoadingBar; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - F687FF6A0DE457D4C32040E7CC7844EC /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A4670DF6ADBDF1CD1175DD92AADA3089 /* GradientLoadingBar.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/GradientLoadingBar/GradientLoadingBar-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/GradientLoadingBar/GradientLoadingBar-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/GradientLoadingBar/GradientLoadingBar.modulemap"; - PRODUCT_MODULE_NAME = GradientLoadingBar; - PRODUCT_NAME = GradientLoadingBar; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -1602,8 +1606,8 @@ 391ADB9F2FDB967709042ACBCABE539A /* Build configuration list for PBXNativeTarget "GradientLoadingBar" */ = { isa = XCConfigurationList; buildConfigurations = ( - F687FF6A0DE457D4C32040E7CC7844EC /* Debug */, - F632A0DD0F59922A679E95E9DE724E77 /* Release */, + 31B1DEE52C5F2F63573968B4C0F953CF /* Debug */, + 6074A1EE9600A0FD2E40BA75910BF52C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/SnapshotTesting/README.md b/Example/Pods/SnapshotTesting/README.md index 6f69e5e..95a200b 100644 --- a/Example/Pods/SnapshotTesting/README.md +++ b/Example/Pods/SnapshotTesting/README.md @@ -1,6 +1,8 @@ # 📸 SnapshotTesting -[![Swift 5.1](https://img.shields.io/badge/swift-5.1-ED523F.svg?style=flat)](https://swift.org/download/) [![iOS/macOS/tvOS CI](https://img.shields.io/circleci/project/github/pointfreeco/swift-snapshot-testing/master.svg?label=ios/macos/tvos)](https://circleci.com/gh/pointfreeco/swift-snapshot-testing) [![Linux CI](https://img.shields.io/travis/pointfreeco/swift-snapshot-testing/master.svg?label=linux)](https://travis-ci.org/pointfreeco/swift-snapshot-testing) [![@pointfreeco](https://img.shields.io/badge/contact-@pointfreeco-5AA9E7.svg?style=flat)](https://twitter.com/pointfreeco) +[![Swift 5.1](https://img.shields.io/badge/swift-5.1-ED523F.svg?style=flat)](https://swift.org/download/) +[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fpointfreeco%2Fswift-snapshot-testing%2Fbadge&style=flat)](https://actions-badge.atrox.dev/pointfreeco/swift-snapshot-testing/goto) +[![@pointfreeco](https://img.shields.io/badge/contact-@pointfreeco-5AA9E7.svg?style=flat)](https://twitter.com/pointfreeco) Delightful Swift snapshot testing. @@ -141,7 +143,7 @@ If you want to use SnapshotTesting in any other project that uses [SwiftPM](http ```swift dependencies: [ - .package(url: "https://github.com/pointfreeco/swift-snapshot-testing.git", from: "1.7.0"), + .package(url: "https://github.com/pointfreeco/swift-snapshot-testing.git", from: "1.7.2"), ] ``` @@ -159,7 +161,7 @@ targets: [ If you use [Carthage](https://github.com/Carthage/Carthage), you can add the following dependency to your `Cartfile`: ``` ruby -github "pointfreeco/swift-snapshot-testing" ~> 1.6 +github "pointfreeco/swift-snapshot-testing" ~> 1.7.2 ``` > ⚠️ Warning: Carthage instructs you to drag frameworks into your Xcode project. Xcode may automatically attempt to link these frameworks to your app target. `SnapshotTesting.framework` is only compatible with test targets, so when you first add it to your project: @@ -177,7 +179,7 @@ If your project uses [CocoaPods](https://cocoapods.org), add the pod to any appl ```ruby target 'MyAppTests' do - pod 'SnapshotTesting', '~> 1.7' + pod 'SnapshotTesting', '~> 1.7.2' end ``` diff --git a/Example/Pods/SnapshotTesting/Sources/SnapshotTesting/AssertInlineSnapshot.swift b/Example/Pods/SnapshotTesting/Sources/SnapshotTesting/AssertInlineSnapshot.swift index 52f282e..86642df 100644 --- a/Example/Pods/SnapshotTesting/Sources/SnapshotTesting/AssertInlineSnapshot.swift +++ b/Example/Pods/SnapshotTesting/Sources/SnapshotTesting/AssertInlineSnapshot.swift @@ -109,7 +109,7 @@ public func _verifyInlineSnapshot( let sourceCode = try String(contentsOf: sourceCodeFilePath) var newRecordings = recordings - let modifiedSource = writeInlineSnapshot( + let modifiedSource = try writeInlineSnapshot( &newRecordings, Context( sourceCode: sourceCode, @@ -181,8 +181,10 @@ internal struct Context { } } -internal func writeInlineSnapshot(_ recordings: inout Recordings, - _ context: Context) -> Context { +internal func writeInlineSnapshot( + _ recordings: inout Recordings, + _ context: Context +) throws -> Context { var sourceCodeLines = context.sourceCode .split(separator: "\n", omittingEmptySubsequences: false) @@ -211,9 +213,14 @@ internal func writeInlineSnapshot(_ recordings: inout Recordings, /// If they haven't got a multi-line literal by now, then just fail. guard sourceCodeLines[functionLineIndex].hasSuffix(multiLineStringLiteralTerminator) else { - return context.setSourceCode(""" - To use inline snapshots, please convert the "with" argument to a multi-line literal. - """) + struct InlineError: LocalizedError { + var errorDescription: String? { + return """ +To use inline snapshots, please convert the "with" argument to a multi-line literal. +""" + } + } + throw InlineError() } /// Find the end of multi-line literal and replace contents with recording. diff --git a/Example/Pods/SnapshotTesting/Sources/SnapshotTesting/Common/View.swift b/Example/Pods/SnapshotTesting/Sources/SnapshotTesting/Common/View.swift index 04cd7ab..908a39f 100644 --- a/Example/Pods/SnapshotTesting/Sources/SnapshotTesting/Common/View.swift +++ b/Example/Pods/SnapshotTesting/Sources/SnapshotTesting/Common/View.swift @@ -742,8 +742,11 @@ private func add(traits: UITraitCollection, viewController: UIViewController, to rootViewController.view.translatesAutoresizingMaskIntoConstraints = viewController.view.translatesAutoresizingMaskIntoConstraints rootViewController.preferredContentSize = rootViewController.view.frame.size + + rootViewController.addChild(viewController) viewController.view.frame = rootViewController.view.frame rootViewController.view.addSubview(viewController.view) + if viewController.view.translatesAutoresizingMaskIntoConstraints { viewController.view.autoresizingMask = [.flexibleWidth, .flexibleHeight] } else { @@ -754,14 +757,18 @@ private func add(traits: UITraitCollection, viewController: UIViewController, to viewController.view.trailingAnchor.constraint(equalTo: rootViewController.view.trailingAnchor), ]) } - rootViewController.addChild(viewController) rootViewController.setOverrideTraitCollection(traits, forChild: viewController) viewController.didMove(toParent: rootViewController) + window.rootViewController = rootViewController + rootViewController.beginAppearanceTransition(true, animated: false) rootViewController.endAppearanceTransition() - window.rootViewController = rootViewController + rootViewController.view.setNeedsLayout() rootViewController.view.layoutIfNeeded() + + viewController.view.setNeedsLayout() + viewController.view.layoutIfNeeded() } private final class Window: UIWindow { diff --git a/Example/Pods/SnapshotTesting/Sources/SnapshotTesting/Snapshotting/UIView.swift b/Example/Pods/SnapshotTesting/Sources/SnapshotTesting/Snapshotting/UIView.swift index 9a5cca9..011a0f2 100644 --- a/Example/Pods/SnapshotTesting/Sources/SnapshotTesting/Snapshotting/UIView.swift +++ b/Example/Pods/SnapshotTesting/Sources/SnapshotTesting/Snapshotting/UIView.swift @@ -36,7 +36,9 @@ extension Snapshotting where Value == UIView, Format == UIImage { extension Snapshotting where Value == UIView, Format == String { /// A snapshot strategy for comparing views based on a recursive description of their properties and hierarchies. - public static let recursiveDescription = Snapshotting.recursiveDescription() + public static var recursiveDescription: Snapshotting { + return Snapshotting.recursiveDescription() + } /// A snapshot strategy for comparing views based on a recursive description of their properties and hierarchies. public static func recursiveDescription( diff --git a/Example/Pods/SnapshotTesting/Sources/SnapshotTesting/Snapshotting/UIViewController.swift b/Example/Pods/SnapshotTesting/Sources/SnapshotTesting/Snapshotting/UIViewController.swift index edbd47a..e4e7492 100644 --- a/Example/Pods/SnapshotTesting/Sources/SnapshotTesting/Snapshotting/UIViewController.swift +++ b/Example/Pods/SnapshotTesting/Sources/SnapshotTesting/Snapshotting/UIViewController.swift @@ -78,7 +78,9 @@ extension Snapshotting where Value == UIViewController, Format == String { } /// A snapshot strategy for comparing view controller views based on a recursive description of their properties and hierarchies. - public static let recursiveDescription = Snapshotting.recursiveDescription() + public static var recursiveDescription: Snapshotting { + return Snapshotting.recursiveDescription() + } /// A snapshot strategy for comparing view controller views based on a recursive description of their properties and hierarchies. /// diff --git a/Example/Pods/SwiftFormat/CommandLineTool/swiftformat b/Example/Pods/SwiftFormat/CommandLineTool/swiftformat index db80890..bd1de5e 100755 Binary files a/Example/Pods/SwiftFormat/CommandLineTool/swiftformat and b/Example/Pods/SwiftFormat/CommandLineTool/swiftformat differ diff --git a/Example/Pods/SwiftLint/swiftlint b/Example/Pods/SwiftLint/swiftlint index 7cfa886..4213e41 100755 Binary files a/Example/Pods/SwiftLint/swiftlint and b/Example/Pods/SwiftLint/swiftlint differ diff --git a/Example/Pods/Target Support Files/LightweightObservable/LightweightObservable-Info.plist b/Example/Pods/Target Support Files/LightweightObservable/LightweightObservable-Info.plist index 0a12077..7f71fff 100644 --- a/Example/Pods/Target Support Files/LightweightObservable/LightweightObservable-Info.plist +++ b/Example/Pods/Target Support Files/LightweightObservable/LightweightObservable-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.0.0 + 2.1.0 CFBundleSignature ???? CFBundleVersion diff --git a/Example/Pods/Target Support Files/SnapshotTesting/SnapshotTesting-Info.plist b/Example/Pods/Target Support Files/SnapshotTesting/SnapshotTesting-Info.plist index db89292..8d3c89a 100644 --- a/Example/Pods/Target Support Files/SnapshotTesting/SnapshotTesting-Info.plist +++ b/Example/Pods/Target Support Files/SnapshotTesting/SnapshotTesting-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.7.1 + 1.7.2 CFBundleSignature ???? CFBundleVersion diff --git a/GradientLoadingBar.podspec b/GradientLoadingBar.podspec index 8249c5a..f64b003 100644 --- a/GradientLoadingBar.podspec +++ b/GradientLoadingBar.podspec @@ -29,7 +29,7 @@ Inspired by https://codepen.io/marcobiedermann/pen/LExXWW s.source = { :git => 'https://github.com/fxm90/GradientLoadingBar.git', :tag => s.version.to_s } s.social_media_url = 'https://twitter.com/_fxm90' - s.swift_version = '5.0' + s.swift_version = '5.1' s.ios.deployment_target = '9.0' s.source_files = 'GradientLoadingBar/Classes/**/*' @@ -40,6 +40,6 @@ Inspired by https://codepen.io/marcobiedermann/pen/LExXWW # s.public_header_files = 'Pod/Classes/**/*.h' # s.frameworks = 'UIKit', 'MapKit' -s.dependency 'LightweightObservable', '~> 2.0' +s.dependency 'LightweightObservable', '~> 2.1' end