diff --git a/CHANGELOG.md b/CHANGELOG.md index 89a51615..2b7102c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,8 +12,11 @@ All notable changes to this project will be documented in this file. * use cases like `cell.rx_sentMessage("prepareForReuse")` are now supported. * Linux support (proof of concept, but single threaded mode works) * more info in [Documentation/Linux.md](https://github.com/ReactiveX/RxSwift/blob/master/Documentation/Linux.md) -* Initial support for `Swift Package Manager` (works on `Linux`, still can't compile `RxCocoa` on `OSX`) +* Initial support for `Swift Package Manager` + * works on `Linux` (`RxSwift`, `RxBlocking`, `RxTests`) + * doesn't work on OSX because it can't compile `RxCocoa` and `RxTests` (because of inclusion of `XCTest` extensions), but OSX has two other package managers and manual method. * Project content is linked to `Sources` automagically using custom tool + * more info in [Documentation/Linux.md](https://github.com/ReactiveX/RxSwift/blob/master/Documentation/Linux.md) * Adds `VirtualTimeScheduler` to `RxSwift` * Adds `HistoricalScheduler` to `RxSwift` * Improves performance of virtual schedulers using priority queue. diff --git a/Documentation/Examples.md b/Documentation/Examples.md index ed5cd54b..958494e9 100644 --- a/Documentation/Examples.md +++ b/Documentation/Examples.md @@ -5,7 +5,7 @@ Examples 1. [Simple UI bindings](#simple-ui-bindings) 1. [Autocomplete](#autocomplete) 1. [more examples](../RxExample) -1. [Playgrounds](../Rx.Playground) +1. [Playgrounds](../README.md#playgrounds) ## Calculated variable diff --git a/Documentation/Linux.md b/Documentation/Linux.md index ab921b2d..6ba059a6 100644 --- a/Documentation/Linux.md +++ b/Documentation/Linux.md @@ -5,13 +5,15 @@ We've made a proof of concept for Linux. To test it, create `Package.swift` in your test directory with the following content: +**This will start to work once we release 2.0.0 because it looks like spm has some issues dealing with prerelease versions. Running `swift build` inside RxSwift repository will work on Linux.** + ``` import PackageDescription let package = Package( name: "MyShinyUnicornCat", dependencies: [ - .Package(url: "https://github.com/ReactiveX/RxSwift.git", Version(2, 0, 0, prereleaseIdentifiers: ["rc", "0"])) + .Package(url: "https://github.com/ReactiveX/RxSwift.git", Version(2, 0, 0)) ] ) ``` diff --git a/Package.swift b/Package.swift index 55caff03..99b9b3bf 100644 --- a/Package.swift +++ b/Package.swift @@ -1,7 +1,13 @@ import PackageDescription +#if os(OSX) let package = Package( name: "RxSwift", + exclude: [ + "Sources/RxCocoa", + "Sources/RxTests", + "Sources/AllTests" + ], targets: [ Target( name: "RxSwift" @@ -28,9 +34,36 @@ let package = Package( ) ] ) -#if os(OSX) - package.exclude = ["Sources/RxCocoa", "Sources/RxTests", "Sources/AllTests"] #elseif os(Linux) - package.exclude = ["Sources/RxCocoa"] -#else +let package = Package( + name: "RxSwift", + exclude: [ + "Sources/RxCocoa", + ], + targets: [ + Target( + name: "RxSwift" + ), + Target( + name: "RxTests", + dependencies: [ + .Target(name: "RxSwift") + ] + ), + Target( + name: "RxBlocking", + dependencies: [ + .Target(name: "RxSwift") + ] + ), + Target( + name: "AllTests", + dependencies: [ + .Target(name: "RxSwift"), + .Target(name: "RxBlocking"), + .Target(name: "RxTests") + ] + ) + ] +) #endif diff --git a/Rx.playground/Pages/Transforming_Observables.xcplaygroundpage/Contents.swift b/Rx.playground/Pages/Transforming_Observables.xcplaygroundpage/Contents.swift index 1b7e776c..92fcff8e 100644 --- a/Rx.playground/Pages/Transforming_Observables.xcplaygroundpage/Contents.swift +++ b/Rx.playground/Pages/Transforming_Observables.xcplaygroundpage/Contents.swift @@ -44,8 +44,9 @@ example("flatMap") { let sequenceString = Observable.of("A", "B", "C", "D", "E", "F", "--") _ = sequenceInt - .flatMap { int in - sequenceString + .flatMap { (x:Int) -> Observable in + print("from sequenceInt \(x)") + return sequenceString } .subscribe { print($0) diff --git a/Rx.xcodeproj/project.pbxproj b/Rx.xcodeproj/project.pbxproj index da5c0eb4..84df3bd9 100644 --- a/Rx.xcodeproj/project.pbxproj +++ b/Rx.xcodeproj/project.pbxproj @@ -13,6 +13,10 @@ 84C225A31C33F00B008724EC /* RxTextStorageDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C225A21C33F00B008724EC /* RxTextStorageDelegateProxy.swift */; }; 84C225A41C33F00B008724EC /* RxTextStorageDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C225A21C33F00B008724EC /* RxTextStorageDelegateProxy.swift */; }; 84C225A51C33F00B008724EC /* RxTextStorageDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C225A21C33F00B008724EC /* RxTextStorageDelegateProxy.swift */; }; + 79E9DE891C3417FD009970AF /* DispatchQueueSchedulerQOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79E9DE881C3417FD009970AF /* DispatchQueueSchedulerQOS.swift */; }; + 79E9DE8A1C3417FD009970AF /* DispatchQueueSchedulerQOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79E9DE881C3417FD009970AF /* DispatchQueueSchedulerQOS.swift */; }; + 79E9DE8B1C3417FD009970AF /* DispatchQueueSchedulerQOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79E9DE881C3417FD009970AF /* DispatchQueueSchedulerQOS.swift */; }; + 79E9DE8C1C3417FD009970AF /* DispatchQueueSchedulerQOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79E9DE881C3417FD009970AF /* DispatchQueueSchedulerQOS.swift */; }; 9BA1CBD31C0F7D550044B50A /* UIActivityIndicatorView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */; }; 9BA1CBFD1C0F84A10044B50A /* UIActivityIndicatorView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */; }; 9BA1CBFE1C0F84C40044B50A /* UIActivityIndicatorView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */; }; @@ -61,8 +65,6 @@ C8093CE61B8A72BE0088E94D /* NopDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C5C1B8A72BE0088E94D /* NopDisposable.swift */; }; C8093CE71B8A72BE0088E94D /* ScheduledDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C5D1B8A72BE0088E94D /* ScheduledDisposable.swift */; }; C8093CE81B8A72BE0088E94D /* ScheduledDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C5D1B8A72BE0088E94D /* ScheduledDisposable.swift */; }; - C8093CE91B8A72BE0088E94D /* ScopedDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C5E1B8A72BE0088E94D /* ScopedDisposable.swift */; }; - C8093CEA1B8A72BE0088E94D /* ScopedDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C5E1B8A72BE0088E94D /* ScopedDisposable.swift */; }; C8093CEB1B8A72BE0088E94D /* SerialDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C5F1B8A72BE0088E94D /* SerialDisposable.swift */; }; C8093CEC1B8A72BE0088E94D /* SerialDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C5F1B8A72BE0088E94D /* SerialDisposable.swift */; }; C8093CED1B8A72BE0088E94D /* SingleAssignmentDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C601B8A72BE0088E94D /* SingleAssignmentDisposable.swift */; }; @@ -175,8 +177,6 @@ C8093D741B8A72BE0088E94D /* ObserverBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CA61B8A72BE0088E94D /* ObserverBase.swift */; }; C8093D791B8A72BE0088E94D /* TailRecursiveSink.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CA91B8A72BE0088E94D /* TailRecursiveSink.swift */; }; C8093D7A1B8A72BE0088E94D /* TailRecursiveSink.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CA91B8A72BE0088E94D /* TailRecursiveSink.swift */; }; - C8093D7B1B8A72BE0088E94D /* ObserverType+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CAA1B8A72BE0088E94D /* ObserverType+Extensions.swift */; }; - C8093D7C1B8A72BE0088E94D /* ObserverType+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CAA1B8A72BE0088E94D /* ObserverType+Extensions.swift */; }; C8093D7D1B8A72BE0088E94D /* ObserverType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CAB1B8A72BE0088E94D /* ObserverType.swift */; }; C8093D7E1B8A72BE0088E94D /* ObserverType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CAB1B8A72BE0088E94D /* ObserverType.swift */; }; C8093D851B8A72BE0088E94D /* Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CAF1B8A72BE0088E94D /* Rx.swift */; }; @@ -187,8 +187,6 @@ C8093D8E1B8A72BE0088E94D /* SchedulerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB31B8A72BE0088E94D /* SchedulerType.swift */; }; C8093D8F1B8A72BE0088E94D /* ConcurrentDispatchQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB51B8A72BE0088E94D /* ConcurrentDispatchQueueScheduler.swift */; }; C8093D901B8A72BE0088E94D /* ConcurrentDispatchQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB51B8A72BE0088E94D /* ConcurrentDispatchQueueScheduler.swift */; }; - C8093D911B8A72BE0088E94D /* DispatchQueueSchedulerPriority.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB61B8A72BE0088E94D /* DispatchQueueSchedulerPriority.swift */; }; - C8093D921B8A72BE0088E94D /* DispatchQueueSchedulerPriority.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB61B8A72BE0088E94D /* DispatchQueueSchedulerPriority.swift */; }; C8093D931B8A72BE0088E94D /* MainScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB71B8A72BE0088E94D /* MainScheduler.swift */; }; C8093D941B8A72BE0088E94D /* MainScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB71B8A72BE0088E94D /* MainScheduler.swift */; }; C8093D951B8A72BE0088E94D /* OperationQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB81B8A72BE0088E94D /* OperationQueueScheduler.swift */; }; @@ -234,8 +232,6 @@ C8093EF01B8A732E0088E94D /* KVOObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E941B8A732E0088E94D /* KVOObserver.swift */; }; C8093EF11B8A732E0088E94D /* NSNotificationCenter+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E951B8A732E0088E94D /* NSNotificationCenter+Rx.swift */; }; C8093EF21B8A732E0088E94D /* NSNotificationCenter+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E951B8A732E0088E94D /* NSNotificationCenter+Rx.swift */; }; - C8093EF31B8A732E0088E94D /* NSObject+Rx+CoreGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E961B8A732E0088E94D /* NSObject+Rx+CoreGraphics.swift */; }; - C8093EF41B8A732E0088E94D /* NSObject+Rx+CoreGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E961B8A732E0088E94D /* NSObject+Rx+CoreGraphics.swift */; }; C8093EF51B8A732E0088E94D /* NSObject+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E971B8A732E0088E94D /* NSObject+Rx.swift */; }; C8093EF61B8A732E0088E94D /* NSObject+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E971B8A732E0088E94D /* NSObject+Rx.swift */; }; C8093EF71B8A732E0088E94D /* NSURLSession+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E981B8A732E0088E94D /* NSURLSession+Rx.swift */; }; @@ -381,8 +377,6 @@ C88254181B8A752B00B02D69 /* ItemEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253F41B8A752B00B02D69 /* ItemEvents.swift */; }; C882541A1B8A752B00B02D69 /* RxCollectionViewDataSourceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253F71B8A752B00B02D69 /* RxCollectionViewDataSourceType.swift */; }; C882541B1B8A752B00B02D69 /* RxTableViewDataSourceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253F81B8A752B00B02D69 /* RxTableViewDataSourceType.swift */; }; - C882541C1B8A752B00B02D69 /* RxActionSheetDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253FA1B8A752B00B02D69 /* RxActionSheetDelegateProxy.swift */; }; - C882541D1B8A752B00B02D69 /* RxAlertViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253FB1B8A752B00B02D69 /* RxAlertViewDelegateProxy.swift */; }; C882541E1B8A752B00B02D69 /* RxCollectionViewDataSourceProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253FC1B8A752B00B02D69 /* RxCollectionViewDataSourceProxy.swift */; }; C882541F1B8A752B00B02D69 /* RxCollectionViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253FD1B8A752B00B02D69 /* RxCollectionViewDelegateProxy.swift */; }; C88254201B8A752B00B02D69 /* RxScrollViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253FE1B8A752B00B02D69 /* RxScrollViewDelegateProxy.swift */; }; @@ -390,8 +384,6 @@ C88254221B8A752B00B02D69 /* RxTableViewDataSourceProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254001B8A752B00B02D69 /* RxTableViewDataSourceProxy.swift */; }; C88254231B8A752B00B02D69 /* RxTableViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254011B8A752B00B02D69 /* RxTableViewDelegateProxy.swift */; }; C88254241B8A752B00B02D69 /* RxTextViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254021B8A752B00B02D69 /* RxTextViewDelegateProxy.swift */; }; - C88254251B8A752B00B02D69 /* UIActionSheet+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254031B8A752B00B02D69 /* UIActionSheet+Rx.swift */; }; - C88254261B8A752B00B02D69 /* UIAlertView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254041B8A752B00B02D69 /* UIAlertView+Rx.swift */; }; C88254271B8A752B00B02D69 /* UIBarButtonItem+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254051B8A752B00B02D69 /* UIBarButtonItem+Rx.swift */; }; C88254281B8A752B00B02D69 /* UIButton+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254061B8A752B00B02D69 /* UIButton+Rx.swift */; }; C88254291B8A752B00B02D69 /* UICollectionView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254071B8A752B00B02D69 /* UICollectionView+Rx.swift */; }; @@ -446,14 +438,14 @@ C8BCD3F51C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3F31C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift */; }; C8BCD3F61C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3F31C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift */; }; C8BCD3F71C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3F31C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift */; }; - C8BF34CB1C2E426800416CAE /* Darwin.Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34C91C2E426800416CAE /* Darwin.Platform.swift */; }; - C8BF34CC1C2E426800416CAE /* Darwin.Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34C91C2E426800416CAE /* Darwin.Platform.swift */; }; - C8BF34CD1C2E426800416CAE /* Darwin.Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34C91C2E426800416CAE /* Darwin.Platform.swift */; }; - C8BF34CE1C2E426800416CAE /* Darwin.Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34C91C2E426800416CAE /* Darwin.Platform.swift */; }; - C8BF34CF1C2E426800416CAE /* Linux.Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34CA1C2E426800416CAE /* Linux.Platform.swift */; }; - C8BF34D01C2E426800416CAE /* Linux.Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34CA1C2E426800416CAE /* Linux.Platform.swift */; }; - C8BF34D11C2E426800416CAE /* Linux.Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34CA1C2E426800416CAE /* Linux.Platform.swift */; }; - C8BF34D21C2E426800416CAE /* Linux.Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34CA1C2E426800416CAE /* Linux.Platform.swift */; }; + C8BF34CB1C2E426800416CAE /* Platform.Darwin.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34C91C2E426800416CAE /* Platform.Darwin.swift */; }; + C8BF34CC1C2E426800416CAE /* Platform.Darwin.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34C91C2E426800416CAE /* Platform.Darwin.swift */; }; + C8BF34CD1C2E426800416CAE /* Platform.Darwin.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34C91C2E426800416CAE /* Platform.Darwin.swift */; }; + C8BF34CE1C2E426800416CAE /* Platform.Darwin.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34C91C2E426800416CAE /* Platform.Darwin.swift */; }; + C8BF34CF1C2E426800416CAE /* Platform.Linux.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34CA1C2E426800416CAE /* Platform.Linux.swift */; }; + C8BF34D01C2E426800416CAE /* Platform.Linux.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34CA1C2E426800416CAE /* Platform.Linux.swift */; }; + C8BF34D11C2E426800416CAE /* Platform.Linux.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34CA1C2E426800416CAE /* Platform.Linux.swift */; }; + C8BF34D21C2E426800416CAE /* Platform.Linux.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34CA1C2E426800416CAE /* Platform.Linux.swift */; }; C8C3D9FE1B935EDF004D233E /* Zip+CollectionType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C3D9FD1B935EDF004D233E /* Zip+CollectionType.swift */; }; C8C3D9FF1B935EDF004D233E /* Zip+CollectionType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C3D9FD1B935EDF004D233E /* Zip+CollectionType.swift */; }; C8C3DA031B9390C4004D233E /* Just.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C3DA021B9390C4004D233E /* Just.swift */; }; @@ -577,7 +569,6 @@ C8F0BFB61BBBFB8B001B112F /* BinaryDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C551B8A72BE0088E94D /* BinaryDisposable.swift */; }; C8F0BFB71BBBFB8B001B112F /* ObserveOn.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C801B8A72BE0088E94D /* ObserveOn.swift */; }; C8F0BFB81BBBFB8B001B112F /* Sample.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C861B8A72BE0088E94D /* Sample.swift */; }; - C8F0BFB91BBBFB8B001B112F /* ScopedDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C5E1B8A72BE0088E94D /* ScopedDisposable.swift */; }; C8F0BFBA1BBBFB8B001B112F /* Multicast.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C7E1B8A72BE0088E94D /* Multicast.swift */; }; C8F0BFBB1BBBFB8B001B112F /* CurrentThreadScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C3DA0E1B939767004D233E /* CurrentThreadScheduler.swift */; }; C8F0BFBC1BBBFB8B001B112F /* Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CAF1B8A72BE0088E94D /* Rx.swift */; }; @@ -591,7 +582,6 @@ C8F0BFC41BBBFB8B001B112F /* SchedulerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB31B8A72BE0088E94D /* SchedulerType.swift */; }; C8F0BFC51BBBFB8B001B112F /* Variable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CC21B8A72BE0088E94D /* Variable.swift */; }; C8F0BFC61BBBFB8B001B112F /* OperationQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB81B8A72BE0088E94D /* OperationQueueScheduler.swift */; }; - C8F0BFC71BBBFB8B001B112F /* DispatchQueueSchedulerPriority.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB61B8A72BE0088E94D /* DispatchQueueSchedulerPriority.swift */; }; C8F0BFC81BBBFB8B001B112F /* CombineLatest+arity.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C6F1B8A72BE0088E94D /* CombineLatest+arity.swift */; }; C8F0BFC91BBBFB8B001B112F /* DisposeBag.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C581B8A72BE0088E94D /* DisposeBag.swift */; }; C8F0BFCA1BBBFB8B001B112F /* RecursiveScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB91B8A72BE0088E94D /* RecursiveScheduler.swift */; }; @@ -638,7 +628,6 @@ C8F0BFF51BBBFB8B001B112F /* NAryDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C5A1B8A72BE0088E94D /* NAryDisposable.swift */; }; C8F0BFF61BBBFB8B001B112F /* SerialDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C5F1B8A72BE0088E94D /* SerialDisposable.swift */; }; C8F0BFF71BBBFB8B001B112F /* Never.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C3DA0B1B93959F004D233E /* Never.swift */; }; - C8F0BFF81BBBFB8B001B112F /* ObserverType+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CAA1B8A72BE0088E94D /* ObserverType+Extensions.swift */; }; C8F0BFF91BBBFB8B001B112F /* Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C641B8A72BE0088E94D /* Event.swift */; }; C8F0BFFA1BBBFB8B001B112F /* Zip.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C941B8A72BE0088E94D /* Zip.swift */; }; C8F0C0061BBBFBB9001B112F /* UISlider+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254101B8A752B00B02D69 /* UISlider+Rx.swift */; }; @@ -655,28 +644,23 @@ C8F0C0111BBBFBB9001B112F /* UIStepper+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = F31F35AF1BB4FED800961002 /* UIStepper+Rx.swift */; }; C8F0C0121BBBFBB9001B112F /* UIImageView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C882540B1B8A752B00B02D69 /* UIImageView+Rx.swift */; }; C8F0C0131BBBFBB9001B112F /* ControlEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C80D33931B922FB00014629D /* ControlEvent.swift */; }; - C8F0C0141BBBFBB9001B112F /* NSObject+Rx+CoreGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E961B8A732E0088E94D /* NSObject+Rx+CoreGraphics.swift */; }; C8F0C0151BBBFBB9001B112F /* UIControl+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254081B8A752B00B02D69 /* UIControl+Rx.swift */; }; C8F0C0161BBBFBB9001B112F /* UITableView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254121B8A752B00B02D69 /* UITableView+Rx.swift */; }; C8F0C0171BBBFBB9001B112F /* RxCollectionViewReactiveArrayDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253F11B8A752B00B02D69 /* RxCollectionViewReactiveArrayDataSource.swift */; }; C8F0C0181BBBFBB9001B112F /* KVOObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E941B8A732E0088E94D /* KVOObserver.swift */; }; - C8F0C0191BBBFBB9001B112F /* UIAlertView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254041B8A752B00B02D69 /* UIAlertView+Rx.swift */; }; C8F0C01A1BBBFBB9001B112F /* RxCollectionViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253FD1B8A752B00B02D69 /* RxCollectionViewDelegateProxy.swift */; }; C8F0C01B1BBBFBB9001B112F /* RxScrollViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253FE1B8A752B00B02D69 /* RxScrollViewDelegateProxy.swift */; }; C8F0C01C1BBBFBB9001B112F /* UILabel+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C882540C1B8A752B00B02D69 /* UILabel+Rx.swift */; }; C8F0C01D1BBBFBB9001B112F /* RxSearchBarDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253FF1B8A752B00B02D69 /* RxSearchBarDelegateProxy.swift */; }; - C8F0C01E1BBBFBB9001B112F /* RxAlertViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253FB1B8A752B00B02D69 /* RxAlertViewDelegateProxy.swift */; }; C8F0C01F1BBBFBB9001B112F /* Observable+Bind.swift in Sources */ = {isa = PBXBuildFile; fileRef = C80D338E1B91EF9E0014629D /* Observable+Bind.swift */; }; C8F0C0201BBBFBB9001B112F /* UISegmentedControl+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C882540F1B8A752B00B02D69 /* UISegmentedControl+Rx.swift */; }; C8F0C0211BBBFBB9001B112F /* KVOObservable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E931B8A732E0088E94D /* KVOObservable.swift */; }; C8F0C0221BBBFBB9001B112F /* UIButton+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254061B8A752B00B02D69 /* UIButton+Rx.swift */; }; C8F0C0231BBBFBB9001B112F /* CLLocationManager+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E8A1B8A732E0088E94D /* CLLocationManager+Rx.swift */; }; - C8F0C0251BBBFBB9001B112F /* RxActionSheetDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253FA1B8A752B00B02D69 /* RxActionSheetDelegateProxy.swift */; }; C8F0C0261BBBFBB9001B112F /* _RXDelegateProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = C8093E851B8A732E0088E94D /* _RXDelegateProxy.m */; }; C8F0C0271BBBFBB9001B112F /* NSObject+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E971B8A732E0088E94D /* NSObject+Rx.swift */; }; C8F0C0281BBBFBB9001B112F /* RxTextViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254021B8A752B00B02D69 /* RxTextViewDelegateProxy.swift */; }; C8F0C0291BBBFBB9001B112F /* UIBarButtonItem+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254051B8A752B00B02D69 /* UIBarButtonItem+Rx.swift */; }; - C8F0C02A1BBBFBB9001B112F /* UIActionSheet+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254031B8A752B00B02D69 /* UIActionSheet+Rx.swift */; }; C8F0C02B1BBBFBB9001B112F /* ControlProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = C80D33941B922FB00014629D /* ControlProperty.swift */; }; C8F0C02C1BBBFBB9001B112F /* UIDatePicker+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254091B8A752B00B02D69 /* UIDatePicker+Rx.swift */; }; C8F0C02D1BBBFBB9001B112F /* RxTableViewDataSourceProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254001B8A752B00B02D69 /* RxTableViewDataSourceProxy.swift */; }; @@ -749,8 +733,6 @@ D203C4F51BB9C52900D02D00 /* ItemEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253F41B8A752B00B02D69 /* ItemEvents.swift */; }; D203C4F61BB9C52E00D02D00 /* RxCollectionViewDataSourceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253F71B8A752B00B02D69 /* RxCollectionViewDataSourceType.swift */; }; D203C4F71BB9C53100D02D00 /* RxTableViewDataSourceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253F81B8A752B00B02D69 /* RxTableViewDataSourceType.swift */; }; - D203C4F81BB9C53700D02D00 /* RxActionSheetDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253FA1B8A752B00B02D69 /* RxActionSheetDelegateProxy.swift */; }; - D203C4F91BB9C53700D02D00 /* RxAlertViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253FB1B8A752B00B02D69 /* RxAlertViewDelegateProxy.swift */; }; D203C4FA1BB9C53700D02D00 /* RxCollectionViewDataSourceProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253FC1B8A752B00B02D69 /* RxCollectionViewDataSourceProxy.swift */; }; D203C4FB1BB9C53700D02D00 /* RxCollectionViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253FD1B8A752B00B02D69 /* RxCollectionViewDelegateProxy.swift */; }; D203C4FC1BB9C53700D02D00 /* RxScrollViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88253FE1B8A752B00B02D69 /* RxScrollViewDelegateProxy.swift */; }; @@ -758,8 +740,6 @@ D203C4FE1BB9C53700D02D00 /* RxTableViewDataSourceProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254001B8A752B00B02D69 /* RxTableViewDataSourceProxy.swift */; }; D203C4FF1BB9C53700D02D00 /* RxTableViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254011B8A752B00B02D69 /* RxTableViewDelegateProxy.swift */; }; D203C5001BB9C53700D02D00 /* RxTextViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254021B8A752B00B02D69 /* RxTextViewDelegateProxy.swift */; }; - D203C5011BB9C53E00D02D00 /* UIActionSheet+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254031B8A752B00B02D69 /* UIActionSheet+Rx.swift */; }; - D203C5021BB9C53E00D02D00 /* UIAlertView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254041B8A752B00B02D69 /* UIAlertView+Rx.swift */; }; D203C5031BB9C53E00D02D00 /* UIBarButtonItem+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254051B8A752B00B02D69 /* UIBarButtonItem+Rx.swift */; }; D203C5051BB9C53E00D02D00 /* UICollectionView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254071B8A752B00B02D69 /* UICollectionView+Rx.swift */; }; D203C5061BB9C53E00D02D00 /* UIControl+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C88254081B8A752B00B02D69 /* UIControl+Rx.swift */; }; @@ -794,7 +774,6 @@ D2138C911BB9BED600339B5C /* KVOObservable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E931B8A732E0088E94D /* KVOObservable.swift */; }; D2138C921BB9BED600339B5C /* KVOObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E941B8A732E0088E94D /* KVOObserver.swift */; }; D2138C931BB9BEDA00339B5C /* NSNotificationCenter+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E951B8A732E0088E94D /* NSNotificationCenter+Rx.swift */; }; - D2138C941BB9BEDA00339B5C /* NSObject+Rx+CoreGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E961B8A732E0088E94D /* NSObject+Rx+CoreGraphics.swift */; }; D2138C951BB9BEDA00339B5C /* NSObject+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E971B8A732E0088E94D /* NSObject+Rx.swift */; }; D2138C961BB9BEDA00339B5C /* NSURLSession+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E981B8A732E0088E94D /* NSURLSession+Rx.swift */; }; D2138C971BB9BEE700339B5C /* RxCLLocationManagerDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093E9A1B8A732E0088E94D /* RxCLLocationManagerDelegateProxy.swift */; }; @@ -824,7 +803,6 @@ D2EBEAE41BB9B697003A27DC /* ObservableType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C9E1B8A72BE0088E94D /* ObservableType.swift */; }; D2EBEAE51BB9B697003A27DC /* AnyObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CA01B8A72BE0088E94D /* AnyObserver.swift */; }; D2EBEAE61BB9B697003A27DC /* ObserverType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CAB1B8A72BE0088E94D /* ObserverType.swift */; }; - D2EBEAE71BB9B697003A27DC /* ObserverType+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CAA1B8A72BE0088E94D /* ObserverType+Extensions.swift */; }; D2EBEAE81BB9B697003A27DC /* Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CAF1B8A72BE0088E94D /* Rx.swift */; }; D2EBEAE91BB9B697003A27DC /* RxMutableBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB01B8A72BE0088E94D /* RxMutableBox.swift */; }; D2EBEAEA1BB9B697003A27DC /* SchedulerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB31B8A72BE0088E94D /* SchedulerType.swift */; }; @@ -841,7 +819,6 @@ D2EBEAF51BB9B6AE003A27DC /* NAryDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C5A1B8A72BE0088E94D /* NAryDisposable.swift */; }; D2EBEAF61BB9B6B2003A27DC /* NopDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C5C1B8A72BE0088E94D /* NopDisposable.swift */; }; D2EBEAF71BB9B6B2003A27DC /* ScheduledDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C5D1B8A72BE0088E94D /* ScheduledDisposable.swift */; }; - D2EBEAF81BB9B6B2003A27DC /* ScopedDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C5E1B8A72BE0088E94D /* ScopedDisposable.swift */; }; D2EBEAF91BB9B6B2003A27DC /* SerialDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C5F1B8A72BE0088E94D /* SerialDisposable.swift */; }; D2EBEAFA1BB9B6B2003A27DC /* SingleAssignmentDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C601B8A72BE0088E94D /* SingleAssignmentDisposable.swift */; }; D2EBEAFB1BB9B6B2003A27DC /* StableCompositeDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C611B8A72BE0088E94D /* StableCompositeDisposable.swift */; }; @@ -903,7 +880,6 @@ D2EBEB351BB9B6D2003A27DC /* ObserverBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CA61B8A72BE0088E94D /* ObserverBase.swift */; }; D2EBEB361BB9B6D2003A27DC /* TailRecursiveSink.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CA91B8A72BE0088E94D /* TailRecursiveSink.swift */; }; D2EBEB381BB9B6D8003A27DC /* ConcurrentDispatchQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB51B8A72BE0088E94D /* ConcurrentDispatchQueueScheduler.swift */; }; - D2EBEB391BB9B6D8003A27DC /* DispatchQueueSchedulerPriority.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB61B8A72BE0088E94D /* DispatchQueueSchedulerPriority.swift */; }; D2EBEB3A1BB9B6D8003A27DC /* MainScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB71B8A72BE0088E94D /* MainScheduler.swift */; }; D2EBEB3B1BB9B6D8003A27DC /* OperationQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB81B8A72BE0088E94D /* OperationQueueScheduler.swift */; }; D2EBEB3C1BB9B6D8003A27DC /* RecursiveScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CB91B8A72BE0088E94D /* RecursiveScheduler.swift */; }; @@ -1012,6 +988,7 @@ /* Begin PBXFileReference section */ 842A5A281C357F7D003568D5 /* NSTextStorage+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSTextStorage+Rx.swift"; sourceTree = ""; }; 84C225A21C33F00B008724EC /* RxTextStorageDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxTextStorageDelegateProxy.swift; sourceTree = ""; }; + 79E9DE881C3417FD009970AF /* DispatchQueueSchedulerQOS.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DispatchQueueSchedulerQOS.swift; sourceTree = ""; }; 9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIActivityIndicatorView+Rx.swift"; sourceTree = ""; }; A111CE961B91C97C00D0DCEE /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; B1B7C3BC1BDD39DB0076934E /* TakeLast.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TakeLast.swift; sourceTree = ""; }; @@ -1038,7 +1015,6 @@ C8093C5B1B8A72BE0088E94D /* NAryDisposable.tt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NAryDisposable.tt; sourceTree = ""; }; C8093C5C1B8A72BE0088E94D /* NopDisposable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NopDisposable.swift; sourceTree = ""; }; C8093C5D1B8A72BE0088E94D /* ScheduledDisposable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScheduledDisposable.swift; sourceTree = ""; }; - C8093C5E1B8A72BE0088E94D /* ScopedDisposable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScopedDisposable.swift; sourceTree = ""; }; C8093C5F1B8A72BE0088E94D /* SerialDisposable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SerialDisposable.swift; sourceTree = ""; }; C8093C601B8A72BE0088E94D /* SingleAssignmentDisposable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SingleAssignmentDisposable.swift; sourceTree = ""; }; C8093C611B8A72BE0088E94D /* StableCompositeDisposable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StableCompositeDisposable.swift; sourceTree = ""; }; @@ -1098,13 +1074,11 @@ C8093CA21B8A72BE0088E94D /* AnonymousObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnonymousObserver.swift; sourceTree = ""; }; C8093CA61B8A72BE0088E94D /* ObserverBase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ObserverBase.swift; sourceTree = ""; }; C8093CA91B8A72BE0088E94D /* TailRecursiveSink.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TailRecursiveSink.swift; sourceTree = ""; }; - C8093CAA1B8A72BE0088E94D /* ObserverType+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ObserverType+Extensions.swift"; sourceTree = ""; }; C8093CAB1B8A72BE0088E94D /* ObserverType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ObserverType.swift; sourceTree = ""; }; C8093CAF1B8A72BE0088E94D /* Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Rx.swift; sourceTree = ""; }; C8093CB01B8A72BE0088E94D /* RxMutableBox.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxMutableBox.swift; sourceTree = ""; }; C8093CB31B8A72BE0088E94D /* SchedulerType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SchedulerType.swift; sourceTree = ""; }; C8093CB51B8A72BE0088E94D /* ConcurrentDispatchQueueScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConcurrentDispatchQueueScheduler.swift; sourceTree = ""; }; - C8093CB61B8A72BE0088E94D /* DispatchQueueSchedulerPriority.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DispatchQueueSchedulerPriority.swift; sourceTree = ""; }; C8093CB71B8A72BE0088E94D /* MainScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainScheduler.swift; sourceTree = ""; }; C8093CB81B8A72BE0088E94D /* OperationQueueScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OperationQueueScheduler.swift; sourceTree = ""; }; C8093CB91B8A72BE0088E94D /* RecursiveScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecursiveScheduler.swift; sourceTree = ""; }; @@ -1129,7 +1103,6 @@ C8093E931B8A732E0088E94D /* KVOObservable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KVOObservable.swift; sourceTree = ""; }; C8093E941B8A732E0088E94D /* KVOObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KVOObserver.swift; sourceTree = ""; }; C8093E951B8A732E0088E94D /* NSNotificationCenter+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSNotificationCenter+Rx.swift"; sourceTree = ""; }; - C8093E961B8A732E0088E94D /* NSObject+Rx+CoreGraphics.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSObject+Rx+CoreGraphics.swift"; sourceTree = ""; }; C8093E971B8A732E0088E94D /* NSObject+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSObject+Rx.swift"; sourceTree = ""; }; C8093E981B8A732E0088E94D /* NSURLSession+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSURLSession+Rx.swift"; sourceTree = ""; }; C8093E9A1B8A732E0088E94D /* RxCLLocationManagerDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxCLLocationManagerDelegateProxy.swift; sourceTree = ""; }; @@ -1183,8 +1156,6 @@ C88253F41B8A752B00B02D69 /* ItemEvents.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemEvents.swift; sourceTree = ""; }; C88253F71B8A752B00B02D69 /* RxCollectionViewDataSourceType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxCollectionViewDataSourceType.swift; sourceTree = ""; }; C88253F81B8A752B00B02D69 /* RxTableViewDataSourceType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxTableViewDataSourceType.swift; sourceTree = ""; }; - C88253FA1B8A752B00B02D69 /* RxActionSheetDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxActionSheetDelegateProxy.swift; sourceTree = ""; }; - C88253FB1B8A752B00B02D69 /* RxAlertViewDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxAlertViewDelegateProxy.swift; sourceTree = ""; }; C88253FC1B8A752B00B02D69 /* RxCollectionViewDataSourceProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxCollectionViewDataSourceProxy.swift; sourceTree = ""; }; C88253FD1B8A752B00B02D69 /* RxCollectionViewDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxCollectionViewDelegateProxy.swift; sourceTree = ""; }; C88253FE1B8A752B00B02D69 /* RxScrollViewDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxScrollViewDelegateProxy.swift; sourceTree = ""; }; @@ -1192,8 +1163,6 @@ C88254001B8A752B00B02D69 /* RxTableViewDataSourceProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxTableViewDataSourceProxy.swift; sourceTree = ""; }; C88254011B8A752B00B02D69 /* RxTableViewDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxTableViewDelegateProxy.swift; sourceTree = ""; }; C88254021B8A752B00B02D69 /* RxTextViewDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxTextViewDelegateProxy.swift; sourceTree = ""; }; - C88254031B8A752B00B02D69 /* UIActionSheet+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIActionSheet+Rx.swift"; sourceTree = ""; }; - C88254041B8A752B00B02D69 /* UIAlertView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIAlertView+Rx.swift"; sourceTree = ""; }; C88254051B8A752B00B02D69 /* UIBarButtonItem+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "UIBarButtonItem+Rx.swift"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; C88254061B8A752B00B02D69 /* UIButton+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIButton+Rx.swift"; sourceTree = ""; }; C88254071B8A752B00B02D69 /* UICollectionView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UICollectionView+Rx.swift"; sourceTree = ""; }; @@ -1226,8 +1195,8 @@ C8BCD3EC1C14B5FB005F1280 /* UIView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIView+Rx.swift"; sourceTree = ""; }; C8BCD3F11C14B62B005F1280 /* NSView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSView+Rx.swift"; sourceTree = ""; }; C8BCD3F31C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSLayoutConstraint+Rx.swift"; sourceTree = ""; }; - C8BF34C91C2E426800416CAE /* Darwin.Platform.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Darwin.Platform.swift; sourceTree = ""; }; - C8BF34CA1C2E426800416CAE /* Linux.Platform.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Linux.Platform.swift; sourceTree = ""; }; + C8BF34C91C2E426800416CAE /* Platform.Darwin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Platform.Darwin.swift; sourceTree = ""; }; + C8BF34CA1C2E426800416CAE /* Platform.Linux.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Platform.Linux.swift; sourceTree = ""; }; C8C3D9FD1B935EDF004D233E /* Zip+CollectionType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Zip+CollectionType.swift"; sourceTree = ""; }; C8C3DA021B9390C4004D233E /* Just.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Just.swift; sourceTree = ""; }; C8C3DA051B9393AC004D233E /* Empty.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Empty.swift; sourceTree = ""; }; @@ -1411,7 +1380,6 @@ C8093C9E1B8A72BE0088E94D /* ObservableType.swift */, C8093CA01B8A72BE0088E94D /* AnyObserver.swift */, C8093CAB1B8A72BE0088E94D /* ObserverType.swift */, - C8093CAA1B8A72BE0088E94D /* ObserverType+Extensions.swift */, C8093CAF1B8A72BE0088E94D /* Rx.swift */, C8093CB01B8A72BE0088E94D /* RxMutableBox.swift */, C8093CB31B8A72BE0088E94D /* SchedulerType.swift */, @@ -1468,7 +1436,6 @@ C8093C5C1B8A72BE0088E94D /* NopDisposable.swift */, CB883B3F1BE24C15000AC2EE /* RefCountDisposable.swift */, C8093C5D1B8A72BE0088E94D /* ScheduledDisposable.swift */, - C8093C5E1B8A72BE0088E94D /* ScopedDisposable.swift */, C8093C5F1B8A72BE0088E94D /* SerialDisposable.swift */, C8093C601B8A72BE0088E94D /* SingleAssignmentDisposable.swift */, C8093C611B8A72BE0088E94D /* StableCompositeDisposable.swift */, @@ -1579,7 +1546,7 @@ C8093CB51B8A72BE0088E94D /* ConcurrentDispatchQueueScheduler.swift */, C8B144FA1BD2D44500267DCE /* ConcurrentMainScheduler.swift */, C8C3DA0E1B939767004D233E /* CurrentThreadScheduler.swift */, - C8093CB61B8A72BE0088E94D /* DispatchQueueSchedulerPriority.swift */, + 79E9DE881C3417FD009970AF /* DispatchQueueSchedulerQOS.swift */, C8B144FF1BD2D80100267DCE /* ImmediateScheduler.swift */, C8093CB71B8A72BE0088E94D /* MainScheduler.swift */, C8093CB81B8A72BE0088E94D /* OperationQueueScheduler.swift */, @@ -1652,7 +1619,6 @@ children = ( C8093E8F1B8A732E0088E94D /* Implementations */, C8093E951B8A732E0088E94D /* NSNotificationCenter+Rx.swift */, - C8093E961B8A732E0088E94D /* NSObject+Rx+CoreGraphics.swift */, C8093E971B8A732E0088E94D /* NSObject+Rx.swift */, C8F6A1441BF0B9B1007DF367 /* NSObject+Rx+RawRepresentable.swift */, C8DB96821BF754C80084BD53 /* NSObject+Rx+KVORepresentable.swift */, @@ -1760,8 +1726,6 @@ C88253F31B8A752B00B02D69 /* Events */, C88253F61B8A752B00B02D69 /* Protocols */, C88253F91B8A752B00B02D69 /* Proxies */, - C88254031B8A752B00B02D69 /* UIActionSheet+Rx.swift */, - C88254041B8A752B00B02D69 /* UIAlertView+Rx.swift */, C88254051B8A752B00B02D69 /* UIBarButtonItem+Rx.swift */, C88254061B8A752B00B02D69 /* UIButton+Rx.swift */, C88254071B8A752B00B02D69 /* UICollectionView+Rx.swift */, @@ -1815,8 +1779,6 @@ C88253F91B8A752B00B02D69 /* Proxies */ = { isa = PBXGroup; children = ( - C88253FA1B8A752B00B02D69 /* RxActionSheetDelegateProxy.swift */, - C88253FB1B8A752B00B02D69 /* RxAlertViewDelegateProxy.swift */, C88253FC1B8A752B00B02D69 /* RxCollectionViewDataSourceProxy.swift */, C88253FD1B8A752B00B02D69 /* RxCollectionViewDelegateProxy.swift */, C88253FE1B8A752B00B02D69 /* RxScrollViewDelegateProxy.swift */, @@ -1866,8 +1828,8 @@ C8BF34C81C2E426800416CAE /* Platform */ = { isa = PBXGroup; children = ( - C8BF34C91C2E426800416CAE /* Darwin.Platform.swift */, - C8BF34CA1C2E426800416CAE /* Linux.Platform.swift */, + C8BF34C91C2E426800416CAE /* Platform.Darwin.swift */, + C8BF34CA1C2E426800416CAE /* Platform.Linux.swift */, ); path = Platform; sourceTree = ""; @@ -2532,7 +2494,6 @@ F31F35B01BB4FED800961002 /* UIStepper+Rx.swift in Sources */, C882542D1B8A752B00B02D69 /* UIImageView+Rx.swift in Sources */, C80D33981B922FB00014629D /* ControlEvent.swift in Sources */, - C8093EF31B8A732E0088E94D /* NSObject+Rx+CoreGraphics.swift in Sources */, C882542A1B8A752B00B02D69 /* UIControl+Rx.swift in Sources */, C8F6A1451BF0B9B1007DF367 /* NSObject+Rx+RawRepresentable.swift in Sources */, C8DB967E1BF7496C0084BD53 /* KVORepresentable.swift in Sources */, @@ -2541,12 +2502,10 @@ C88254161B8A752B00B02D69 /* RxCollectionViewReactiveArrayDataSource.swift in Sources */, C8C4B4A91C17722400828BD5 /* _RXObjCRuntime.m in Sources */, C8093EEF1B8A732E0088E94D /* KVOObserver.swift in Sources */, - C88254261B8A752B00B02D69 /* UIAlertView+Rx.swift in Sources */, C882541F1B8A752B00B02D69 /* RxCollectionViewDelegateProxy.swift in Sources */, C88254201B8A752B00B02D69 /* RxScrollViewDelegateProxy.swift in Sources */, C882542E1B8A752B00B02D69 /* UILabel+Rx.swift in Sources */, C88254211B8A752B00B02D69 /* RxSearchBarDelegateProxy.swift in Sources */, - C882541D1B8A752B00B02D69 /* RxAlertViewDelegateProxy.swift in Sources */, C80DDEA71BCE69BA006A1832 /* ObservableConvertibleType+Driver.swift in Sources */, C80DDE9F1BCE69BA006A1832 /* Driver+Subscription.swift in Sources */, C811C89D1C24D80100A2DDD4 /* DeallocObservable.swift in Sources */, @@ -2559,14 +2518,12 @@ C88254281B8A752B00B02D69 /* UIButton+Rx.swift in Sources */, C8093EDF1B8A732E0088E94D /* CLLocationManager+Rx.swift in Sources */, C80DDEA31BCE69BA006A1832 /* Driver.swift in Sources */, - C882541C1B8A752B00B02D69 /* RxActionSheetDelegateProxy.swift in Sources */, C8093ED51B8A732E0088E94D /* _RXDelegateProxy.m in Sources */, C8093EF51B8A732E0088E94D /* NSObject+Rx.swift in Sources */, 9BA1CBD31C0F7D550044B50A /* UIActivityIndicatorView+Rx.swift in Sources */, 842A5A2C1C357F92003568D5 /* NSTextStorage+Rx.swift in Sources */, C88254241B8A752B00B02D69 /* RxTextViewDelegateProxy.swift in Sources */, C88254271B8A752B00B02D69 /* UIBarButtonItem+Rx.swift in Sources */, - C88254251B8A752B00B02D69 /* UIActionSheet+Rx.swift in Sources */, C8C4B4C21C17727000828BD5 /* MessageSentObserver.swift in Sources */, C80D339A1B922FB00014629D /* ControlProperty.swift in Sources */, C882542B1B8A752B00B02D69 /* UIDatePicker+Rx.swift in Sources */, @@ -2611,7 +2568,6 @@ C80DDEA81BCE69BA006A1832 /* ObservableConvertibleType+Driver.swift in Sources */, C80D339B1B922FB00014629D /* ControlProperty.swift in Sources */, C8BCD3F51C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift in Sources */, - C8093EF41B8A732E0088E94D /* NSObject+Rx+CoreGraphics.swift in Sources */, C8093EF01B8A732E0088E94D /* KVOObserver.swift in Sources */, C8093EEE1B8A732E0088E94D /* KVOObservable.swift in Sources */, C8F6A1461BF0B9B2007DF367 /* NSObject+Rx+RawRepresentable.swift in Sources */, @@ -2711,7 +2667,7 @@ C8093D741B8A72BE0088E94D /* ObserverBase.swift in Sources */, C85106891C2D550E0075150C /* String+Rx.swift in Sources */, C8093D121B8A72BE0088E94D /* ConnectableObservable.swift in Sources */, - C8BF34D01C2E426800416CAE /* Linux.Platform.swift in Sources */, + C8BF34D01C2E426800416CAE /* Platform.Linux.swift in Sources */, C8093D621B8A72BE0088E94D /* Observable+StandardSequenceOperators.swift in Sources */, C8093D1A1B8A72BE0088E94D /* DistinctUntilChanged.swift in Sources */, C8093D561B8A72BE0088E94D /* Observable+Binding.swift in Sources */, @@ -2730,7 +2686,6 @@ C84CC54F1BDCF48200E06A64 /* LockOwnerType.swift in Sources */, D2752D621BC5551A0070C418 /* SkipUntil.swift in Sources */, C84CC5541BDCF49300E06A64 /* SynchronizedOnType.swift in Sources */, - C8093CEA1B8A72BE0088E94D /* ScopedDisposable.swift in Sources */, C8093D261B8A72BE0088E94D /* Multicast.swift in Sources */, C8C3DA101B939767004D233E /* CurrentThreadScheduler.swift in Sources */, C8093D861B8A72BE0088E94D /* Rx.swift in Sources */, @@ -2747,7 +2702,6 @@ C8093DA81B8A72BE0088E94D /* Variable.swift in Sources */, C84CC5631BDD037900E06A64 /* SynchronizedDisposeType.swift in Sources */, C8093D961B8A72BE0088E94D /* OperationQueueScheduler.swift in Sources */, - C8093D921B8A72BE0088E94D /* DispatchQueueSchedulerPriority.swift in Sources */, C8093D081B8A72BE0088E94D /* CombineLatest+arity.swift in Sources */, C8093CDE1B8A72BE0088E94D /* DisposeBag.swift in Sources */, C8093D981B8A72BE0088E94D /* RecursiveScheduler.swift in Sources */, @@ -2782,6 +2736,7 @@ C84CC5591BDCF51200E06A64 /* SynchronizedSubscribeType.swift in Sources */, C8093D321B8A72BE0088E94D /* Reduce.swift in Sources */, C8640A041BA5B12A00D3C4E8 /* Repeat.swift in Sources */, + 79E9DE8A1C3417FD009970AF /* DispatchQueueSchedulerQOS.swift in Sources */, C8093CF41B8A72BE0088E94D /* Errors.swift in Sources */, C8093D141B8A72BE0088E94D /* Debug.swift in Sources */, CB883B4B1BE369AA000AC2EE /* AddRef.swift in Sources */, @@ -2789,7 +2744,7 @@ C8093CCE1B8A72BE0088E94D /* Bag.swift in Sources */, C8093D301B8A72BE0088E94D /* Producer.swift in Sources */, C8093CF81B8A72BE0088E94D /* ImmediateSchedulerType.swift in Sources */, - C8BF34CC1C2E426800416CAE /* Darwin.Platform.swift in Sources */, + C8BF34CC1C2E426800416CAE /* Platform.Darwin.swift in Sources */, C8093CC61B8A72BE0088E94D /* Cancelable.swift in Sources */, C8093CE81B8A72BE0088E94D /* ScheduledDisposable.swift in Sources */, C8093D1E1B8A72BE0088E94D /* Filter.swift in Sources */, @@ -2803,7 +2758,6 @@ C8093CE21B8A72BE0088E94D /* NAryDisposable.swift in Sources */, C8093CEC1B8A72BE0088E94D /* SerialDisposable.swift in Sources */, C8C3DA0D1B93959F004D233E /* Never.swift in Sources */, - C8093D7C1B8A72BE0088E94D /* ObserverType+Extensions.swift in Sources */, C84CC5681BDD08A500E06A64 /* SubscriptionDisposable.swift in Sources */, C8093CF61B8A72BE0088E94D /* Event.swift in Sources */, C83D73C51C1DBAEE003DC470 /* ScheduledItem.swift in Sources */, @@ -2934,7 +2888,7 @@ C8093D731B8A72BE0088E94D /* ObserverBase.swift in Sources */, C85106881C2D550E0075150C /* String+Rx.swift in Sources */, C8093D111B8A72BE0088E94D /* ConnectableObservable.swift in Sources */, - C8BF34CF1C2E426800416CAE /* Linux.Platform.swift in Sources */, + C8BF34CF1C2E426800416CAE /* Platform.Linux.swift in Sources */, C8093D611B8A72BE0088E94D /* Observable+StandardSequenceOperators.swift in Sources */, C8093D191B8A72BE0088E94D /* DistinctUntilChanged.swift in Sources */, C8093D551B8A72BE0088E94D /* Observable+Binding.swift in Sources */, @@ -2953,7 +2907,6 @@ C8FA89151C30405400CD3A17 /* VirtualTimeScheduler.swift in Sources */, D285BAC41BC0231000B3F602 /* SkipUntil.swift in Sources */, C84CC5531BDCF49300E06A64 /* SynchronizedOnType.swift in Sources */, - C8093CE91B8A72BE0088E94D /* ScopedDisposable.swift in Sources */, C8093D251B8A72BE0088E94D /* Multicast.swift in Sources */, C8C3DA0F1B939767004D233E /* CurrentThreadScheduler.swift in Sources */, C8093D851B8A72BE0088E94D /* Rx.swift in Sources */, @@ -2971,7 +2924,6 @@ C8093DA71B8A72BE0088E94D /* Variable.swift in Sources */, C84CC5621BDD037900E06A64 /* SynchronizedDisposeType.swift in Sources */, C8093D951B8A72BE0088E94D /* OperationQueueScheduler.swift in Sources */, - C8093D911B8A72BE0088E94D /* DispatchQueueSchedulerPriority.swift in Sources */, C8093D071B8A72BE0088E94D /* CombineLatest+arity.swift in Sources */, C8093CDD1B8A72BE0088E94D /* DisposeBag.swift in Sources */, C8093D971B8A72BE0088E94D /* RecursiveScheduler.swift in Sources */, @@ -3006,13 +2958,14 @@ C84CC5581BDCF51200E06A64 /* SynchronizedSubscribeType.swift in Sources */, C8093D311B8A72BE0088E94D /* Reduce.swift in Sources */, C8640A031BA5B12A00D3C4E8 /* Repeat.swift in Sources */, + 79E9DE891C3417FD009970AF /* DispatchQueueSchedulerQOS.swift in Sources */, C8093CF31B8A72BE0088E94D /* Errors.swift in Sources */, C8093D131B8A72BE0088E94D /* Debug.swift in Sources */, CB883B4A1BE369AA000AC2EE /* AddRef.swift in Sources */, C8093CCD1B8A72BE0088E94D /* Bag.swift in Sources */, C8093D2F1B8A72BE0088E94D /* Producer.swift in Sources */, C8093CF71B8A72BE0088E94D /* ImmediateSchedulerType.swift in Sources */, - C8BF34CB1C2E426800416CAE /* Darwin.Platform.swift in Sources */, + C8BF34CB1C2E426800416CAE /* Platform.Darwin.swift in Sources */, C8093CC51B8A72BE0088E94D /* Cancelable.swift in Sources */, C8093CE71B8A72BE0088E94D /* ScheduledDisposable.swift in Sources */, C8093D1D1B8A72BE0088E94D /* Filter.swift in Sources */, @@ -3027,7 +2980,6 @@ C8093CE11B8A72BE0088E94D /* NAryDisposable.swift in Sources */, C8093CEB1B8A72BE0088E94D /* SerialDisposable.swift in Sources */, C8C3DA0C1B93959F004D233E /* Never.swift in Sources */, - C8093D7B1B8A72BE0088E94D /* ObserverType+Extensions.swift in Sources */, C84CC5671BDD08A500E06A64 /* SubscriptionDisposable.swift in Sources */, C8093CF51B8A72BE0088E94D /* Event.swift in Sources */, C83D73C41C1DBAEE003DC470 /* ScheduledItem.swift in Sources */, @@ -3083,7 +3035,7 @@ C8F0BFAF1BBBFB8B001B112F /* ObserverBase.swift in Sources */, C851068B1C2D550E0075150C /* String+Rx.swift in Sources */, C8F0BFB01BBBFB8B001B112F /* ConnectableObservable.swift in Sources */, - C8BF34D21C2E426800416CAE /* Linux.Platform.swift in Sources */, + C8BF34D21C2E426800416CAE /* Platform.Linux.swift in Sources */, C8F0BFB11BBBFB8B001B112F /* Observable+StandardSequenceOperators.swift in Sources */, C8F0BFB21BBBFB8B001B112F /* DistinctUntilChanged.swift in Sources */, C8F0BFB31BBBFB8B001B112F /* Observable+Binding.swift in Sources */, @@ -3102,7 +3054,6 @@ C84CC5511BDCF48200E06A64 /* LockOwnerType.swift in Sources */, D21C29311BC6A1C300448E70 /* SkipUntil.swift in Sources */, C84CC5561BDCF49300E06A64 /* SynchronizedOnType.swift in Sources */, - C8F0BFB91BBBFB8B001B112F /* ScopedDisposable.swift in Sources */, C8F0BFBA1BBBFB8B001B112F /* Multicast.swift in Sources */, C8F0BFBB1BBBFB8B001B112F /* CurrentThreadScheduler.swift in Sources */, C8F0BFBC1BBBFB8B001B112F /* Rx.swift in Sources */, @@ -3119,7 +3070,6 @@ C8F0BFC51BBBFB8B001B112F /* Variable.swift in Sources */, C84CC5651BDD037900E06A64 /* SynchronizedDisposeType.swift in Sources */, C8F0BFC61BBBFB8B001B112F /* OperationQueueScheduler.swift in Sources */, - C8F0BFC71BBBFB8B001B112F /* DispatchQueueSchedulerPriority.swift in Sources */, C8F0BFC81BBBFB8B001B112F /* CombineLatest+arity.swift in Sources */, C8F0BFC91BBBFB8B001B112F /* DisposeBag.swift in Sources */, C8F0BFCA1BBBFB8B001B112F /* RecursiveScheduler.swift in Sources */, @@ -3154,6 +3104,7 @@ C84CC55B1BDCF51200E06A64 /* SynchronizedSubscribeType.swift in Sources */, C8F0BFE51BBBFB8B001B112F /* Reduce.swift in Sources */, C8F0BFE71BBBFB8B001B112F /* Repeat.swift in Sources */, + 79E9DE8C1C3417FD009970AF /* DispatchQueueSchedulerQOS.swift in Sources */, C8F0BFE81BBBFB8B001B112F /* Errors.swift in Sources */, C8F0BFE91BBBFB8B001B112F /* Debug.swift in Sources */, CB883B4D1BE369AA000AC2EE /* AddRef.swift in Sources */, @@ -3161,7 +3112,7 @@ C8F0BFEA1BBBFB8B001B112F /* Bag.swift in Sources */, C8F0BFEB1BBBFB8B001B112F /* Producer.swift in Sources */, C8F0BFEC1BBBFB8B001B112F /* ImmediateSchedulerType.swift in Sources */, - C8BF34CE1C2E426800416CAE /* Darwin.Platform.swift in Sources */, + C8BF34CE1C2E426800416CAE /* Platform.Darwin.swift in Sources */, C8F0BFED1BBBFB8B001B112F /* Cancelable.swift in Sources */, C8F0BFEE1BBBFB8B001B112F /* ScheduledDisposable.swift in Sources */, C8F0BFEF1BBBFB8B001B112F /* Filter.swift in Sources */, @@ -3175,7 +3126,6 @@ C8F0BFF51BBBFB8B001B112F /* NAryDisposable.swift in Sources */, C8F0BFF61BBBFB8B001B112F /* SerialDisposable.swift in Sources */, C8F0BFF71BBBFB8B001B112F /* Never.swift in Sources */, - C8F0BFF81BBBFB8B001B112F /* ObserverType+Extensions.swift in Sources */, C84CC56A1BDD08A500E06A64 /* SubscriptionDisposable.swift in Sources */, C8F0BFF91BBBFB8B001B112F /* Event.swift in Sources */, C83D73C71C1DBAEE003DC470 /* ScheduledItem.swift in Sources */, @@ -3205,7 +3155,6 @@ C8F0C0111BBBFBB9001B112F /* UIStepper+Rx.swift in Sources */, C8F0C0121BBBFBB9001B112F /* UIImageView+Rx.swift in Sources */, C8F0C0131BBBFBB9001B112F /* ControlEvent.swift in Sources */, - C8F0C0141BBBFBB9001B112F /* NSObject+Rx+CoreGraphics.swift in Sources */, C8F0C0151BBBFBB9001B112F /* UIControl+Rx.swift in Sources */, C8F6A1481BF0B9B2007DF367 /* NSObject+Rx+RawRepresentable.swift in Sources */, C8DB96811BF7496C0084BD53 /* KVORepresentable.swift in Sources */, @@ -3214,12 +3163,10 @@ C8F0C0171BBBFBB9001B112F /* RxCollectionViewReactiveArrayDataSource.swift in Sources */, C8C4B4AC1C17722400828BD5 /* _RXObjCRuntime.m in Sources */, C8F0C0181BBBFBB9001B112F /* KVOObserver.swift in Sources */, - C8F0C0191BBBFBB9001B112F /* UIAlertView+Rx.swift in Sources */, C8F0C01A1BBBFBB9001B112F /* RxCollectionViewDelegateProxy.swift in Sources */, C8F0C01B1BBBFBB9001B112F /* RxScrollViewDelegateProxy.swift in Sources */, C8F0C01C1BBBFBB9001B112F /* UILabel+Rx.swift in Sources */, C8F0C01D1BBBFBB9001B112F /* RxSearchBarDelegateProxy.swift in Sources */, - C8F0C01E1BBBFBB9001B112F /* RxAlertViewDelegateProxy.swift in Sources */, C80DDEAA1BCE69BA006A1832 /* ObservableConvertibleType+Driver.swift in Sources */, C80DDEA21BCE69BA006A1832 /* Driver+Subscription.swift in Sources */, C811C8A01C24D80100A2DDD4 /* DeallocObservable.swift in Sources */, @@ -3232,14 +3179,12 @@ C8F0C0221BBBFBB9001B112F /* UIButton+Rx.swift in Sources */, C8F0C0231BBBFBB9001B112F /* CLLocationManager+Rx.swift in Sources */, C80DDEA61BCE69BA006A1832 /* Driver.swift in Sources */, - C8F0C0251BBBFBB9001B112F /* RxActionSheetDelegateProxy.swift in Sources */, C8F0C0261BBBFBB9001B112F /* _RXDelegateProxy.m in Sources */, C8F0C0271BBBFBB9001B112F /* NSObject+Rx.swift in Sources */, 9BA1CBFE1C0F84C40044B50A /* UIActivityIndicatorView+Rx.swift in Sources */, 842A5A2E1C357F94003568D5 /* NSTextStorage+Rx.swift in Sources */, C8F0C0281BBBFBB9001B112F /* RxTextViewDelegateProxy.swift in Sources */, C8F0C0291BBBFBB9001B112F /* UIBarButtonItem+Rx.swift in Sources */, - C8F0C02A1BBBFBB9001B112F /* UIActionSheet+Rx.swift in Sources */, C8C4B4C51C17727000828BD5 /* MessageSentObserver.swift in Sources */, C8F0C02B1BBBFBB9001B112F /* ControlProperty.swift in Sources */, C8F0C02C1BBBFBB9001B112F /* UIDatePicker+Rx.swift in Sources */, @@ -3280,7 +3225,6 @@ buildActionMask = 2147483647; files = ( D203C4F71BB9C53100D02D00 /* RxTableViewDataSourceType.swift in Sources */, - D203C5021BB9C53E00D02D00 /* UIAlertView+Rx.swift in Sources */, D203C50E1BB9C53E00D02D00 /* UISlider+Rx.swift in Sources */, C80DDE9D1BCE69BA006A1832 /* Driver+Operators.swift in Sources */, D2138C8C1BB9BECA00339B5C /* ControlEvent.swift in Sources */, @@ -3298,7 +3242,6 @@ D2138C881BB9BEBE00339B5C /* DelegateProxy.swift in Sources */, D203C5101BB9C53E00D02D00 /* UISwitch+Rx.swift in Sources */, D203C5121BB9C53E00D02D00 /* UITextField+Rx.swift in Sources */, - D203C4F91BB9C53700D02D00 /* RxAlertViewDelegateProxy.swift in Sources */, C8F6A1471BF0B9B2007DF367 /* NSObject+Rx+RawRepresentable.swift in Sources */, C8DB96801BF7496C0084BD53 /* KVORepresentable.swift in Sources */, C849EF8D1C3195950048AC4A /* Variable+Driver.swift in Sources */, @@ -3323,14 +3266,12 @@ D203C5061BB9C53E00D02D00 /* UIControl+Rx.swift in Sources */, D203C5111BB9C53E00D02D00 /* UITableView+Rx.swift in Sources */, C80DDEA51BCE69BA006A1832 /* Driver.swift in Sources */, - D203C4F81BB9C53700D02D00 /* RxActionSheetDelegateProxy.swift in Sources */, D2138C961BB9BEDA00339B5C /* NSURLSession+Rx.swift in Sources */, D203C5051BB9C53E00D02D00 /* UICollectionView+Rx.swift in Sources */, D2138C8D1BB9BECD00339B5C /* ControlProperty.swift in Sources */, 9BA1CBFD1C0F84A10044B50A /* UIActivityIndicatorView+Rx.swift in Sources */, 842A5A2D1C357F93003568D5 /* NSTextStorage+Rx.swift in Sources */, D203C5071BB9C53E00D02D00 /* UIDatePicker+Rx.swift in Sources */, - D2138C941BB9BEDA00339B5C /* NSObject+Rx+CoreGraphics.swift in Sources */, D203C50D1BB9C53E00D02D00 /* UISegmentedControl+Rx.swift in Sources */, C8C4B4C41C17727000828BD5 /* MessageSentObserver.swift in Sources */, D2138C861BB9BEBE00339B5C /* Observable+Bind.swift in Sources */, @@ -3350,7 +3291,6 @@ 9D71C4D21BF08191006E8F59 /* UIButton+Rx.swift in Sources */, D203C4FD1BB9C53700D02D00 /* RxSearchBarDelegateProxy.swift in Sources */, D2138C8A1BB9BEBE00339B5C /* Logging.swift in Sources */, - D203C5011BB9C53E00D02D00 /* UIActionSheet+Rx.swift in Sources */, C8DB968A1BF756F40084BD53 /* KVORepresentable+CoreGraphics.swift in Sources */, D203C50F1BB9C53E00D02D00 /* UIStepper+Rx.swift in Sources */, ); @@ -3376,7 +3316,6 @@ C8B144FD1BD2D44500267DCE /* ConcurrentMainScheduler.swift in Sources */, D2EBEB1B1BB9B6C1003A27DC /* Repeat.swift in Sources */, D2245A1D1BD63C4700E7146F /* WithLatestFrom.swift in Sources */, - D2EBEAF81BB9B6B2003A27DC /* ScopedDisposable.swift in Sources */, CB883B3D1BE24355000AC2EE /* Window.swift in Sources */, C8FA89191C30409900CD3A17 /* HistoricalScheduler.swift in Sources */, D2EBEAEA1BB9B697003A27DC /* SchedulerType.swift in Sources */, @@ -3404,7 +3343,7 @@ D2EBEB071BB9B6C1003A27DC /* Deferred.swift in Sources */, C851068A1C2D550E0075150C /* String+Rx.swift in Sources */, D2EBEB2C1BB9B6CA003A27DC /* Observable+Binding.swift in Sources */, - C8BF34D11C2E426800416CAE /* Linux.Platform.swift in Sources */, + C8BF34D11C2E426800416CAE /* Platform.Linux.swift in Sources */, D2EBEB041BB9B6C1003A27DC /* Concat.swift in Sources */, D2EBEB3A1BB9B6D8003A27DC /* MainScheduler.swift in Sources */, D2EBEB101BB9B6C1003A27DC /* Just.swift in Sources */, @@ -3428,7 +3367,6 @@ D2EBEB0F1BB9B6C1003A27DC /* Generate.swift in Sources */, D2EBEB1F1BB9B6C1003A27DC /* Skip.swift in Sources */, D2EBEB321BB9B6CA003A27DC /* Observable+StandardSequenceOperators.swift in Sources */, - D2EBEB391BB9B6D8003A27DC /* DispatchQueueSchedulerPriority.swift in Sources */, C84CC5421BDC3B3E00E06A64 /* ElementAt.swift in Sources */, D2EBEB081BB9B6C1003A27DC /* DelaySubscription.swift in Sources */, D2EBEADE1BB9B697003A27DC /* Disposable.swift in Sources */, @@ -3468,13 +3406,13 @@ D2EBEB121BB9B6C1003A27DC /* Merge.swift in Sources */, D2EBEAEF1BB9B6A4003A27DC /* Queue.swift in Sources */, D2EBEB301BB9B6CA003A27DC /* Observable+Multiple.swift in Sources */, - D2EBEAE71BB9B697003A27DC /* ObserverType+Extensions.swift in Sources */, D2EBEB2B1BB9B6CA003A27DC /* Observable+Aggregate.swift in Sources */, D2EBEB291BB9B6C1003A27DC /* Zip+arity.swift in Sources */, D2EBEB241BB9B6C1003A27DC /* TakeUntil.swift in Sources */, C84CC55A1BDCF51200E06A64 /* SynchronizedSubscribeType.swift in Sources */, D2EBEB3B1BB9B6D8003A27DC /* OperationQueueScheduler.swift in Sources */, D2EBEAE51BB9B697003A27DC /* AnyObserver.swift in Sources */, + 79E9DE8B1C3417FD009970AF /* DispatchQueueSchedulerQOS.swift in Sources */, D2EBEB3D1BB9B6D8003A27DC /* SchedulerServices+Emulation.swift in Sources */, D2EBEB1C1BB9B6C1003A27DC /* Sample.swift in Sources */, D2EBEAFD1BB9B6BA003A27DC /* AnonymousObservable.swift in Sources */, @@ -3482,7 +3420,7 @@ CB883B4C1BE369AA000AC2EE /* AddRef.swift in Sources */, D2EBEAFA1BB9B6B2003A27DC /* SingleAssignmentDisposable.swift in Sources */, D2EBEAF31BB9B6AE003A27DC /* DisposeBag.swift in Sources */, - C8BF34CD1C2E426800416CAE /* Darwin.Platform.swift in Sources */, + C8BF34CD1C2E426800416CAE /* Platform.Darwin.swift in Sources */, D2EBEAED1BB9B6A4003A27DC /* Bag.swift in Sources */, D2EBEB1A1BB9B6C1003A27DC /* RefCount.swift in Sources */, D2EBEB141BB9B6C1003A27DC /* Never.swift in Sources */, diff --git a/Rx.xcworkspace/contents.xcworkspacedata b/Rx.xcworkspace/contents.xcworkspacedata index b46e4808..e0a37535 100644 --- a/Rx.xcworkspace/contents.xcworkspacedata +++ b/Rx.xcworkspace/contents.xcworkspacedata @@ -1,6 +1,9 @@ + + @@ -61,14 +64,26 @@ location = "group:common.sh"> + location = "group:/Users/kzaher/Projects/RxSwift/scripts/package-spm.swift"> + + + + + + + + + + diff --git a/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators+arity.swift b/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators+arity.swift index 6df6592b..dde0f053 100644 --- a/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators+arity.swift +++ b/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators+arity.swift @@ -16,16 +16,6 @@ import RxSwift // 2 -@available(*, deprecated=2.0.0, message="Please use `Driver.zip`") -public func zip -(source1: O1, _ source2: O2, resultSelector: (O1.E, O2.E) throws -> R) - -> Driver { - return Driver.zip( - source1, source2, - resultSelector: resultSelector - ) -} - extension Driver { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. @@ -46,16 +36,6 @@ extension Driver { } } -@available(*, deprecated=2.0.0, message="Please use `Driver.combineLatest`") -public func combineLatest -(source1: O1, _ source2: O2, resultSelector: (O1.E, O2.E) throws -> R) - -> Driver { - return Driver.combineLatest( - source1, source2, - resultSelector: resultSelector - ) -} - extension Driver { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. @@ -80,16 +60,6 @@ extension Driver { // 3 -@available(*, deprecated=2.0.0, message="Please use `Driver.zip`") -public func zip -(source1: O1, _ source2: O2, _ source3: O3, resultSelector: (O1.E, O2.E, O3.E) throws -> R) - -> Driver { - return Driver.zip( - source1, source2, source3, - resultSelector: resultSelector - ) -} - extension Driver { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. @@ -110,16 +80,6 @@ extension Driver { } } -@available(*, deprecated=2.0.0, message="Please use `Driver.combineLatest`") -public func combineLatest -(source1: O1, _ source2: O2, _ source3: O3, resultSelector: (O1.E, O2.E, O3.E) throws -> R) - -> Driver { - return Driver.combineLatest( - source1, source2, source3, - resultSelector: resultSelector - ) -} - extension Driver { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. @@ -144,16 +104,6 @@ extension Driver { // 4 -@available(*, deprecated=2.0.0, message="Please use `Driver.zip`") -public func zip -(source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, resultSelector: (O1.E, O2.E, O3.E, O4.E) throws -> R) - -> Driver { - return Driver.zip( - source1, source2, source3, source4, - resultSelector: resultSelector - ) -} - extension Driver { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. @@ -174,16 +124,6 @@ extension Driver { } } -@available(*, deprecated=2.0.0, message="Please use `Driver.combineLatest`") -public func combineLatest -(source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, resultSelector: (O1.E, O2.E, O3.E, O4.E) throws -> R) - -> Driver { - return Driver.combineLatest( - source1, source2, source3, source4, - resultSelector: resultSelector - ) -} - extension Driver { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. @@ -208,16 +148,6 @@ extension Driver { // 5 -@available(*, deprecated=2.0.0, message="Please use `Driver.zip`") -public func zip -(source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E) throws -> R) - -> Driver { - return Driver.zip( - source1, source2, source3, source4, source5, - resultSelector: resultSelector - ) -} - extension Driver { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. @@ -238,16 +168,6 @@ extension Driver { } } -@available(*, deprecated=2.0.0, message="Please use `Driver.combineLatest`") -public func combineLatest -(source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E) throws -> R) - -> Driver { - return Driver.combineLatest( - source1, source2, source3, source4, source5, - resultSelector: resultSelector - ) -} - extension Driver { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. @@ -272,16 +192,6 @@ extension Driver { // 6 -@available(*, deprecated=2.0.0, message="Please use `Driver.zip`") -public func zip -(source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E) throws -> R) - -> Driver { - return Driver.zip( - source1, source2, source3, source4, source5, source6, - resultSelector: resultSelector - ) -} - extension Driver { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. @@ -302,16 +212,6 @@ extension Driver { } } -@available(*, deprecated=2.0.0, message="Please use `Driver.combineLatest`") -public func combineLatest -(source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E) throws -> R) - -> Driver { - return Driver.combineLatest( - source1, source2, source3, source4, source5, source6, - resultSelector: resultSelector - ) -} - extension Driver { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. @@ -336,16 +236,6 @@ extension Driver { // 7 -@available(*, deprecated=2.0.0, message="Please use `Driver.zip`") -public func zip -(source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E) throws -> R) - -> Driver { - return Driver.zip( - source1, source2, source3, source4, source5, source6, source7, - resultSelector: resultSelector - ) -} - extension Driver { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. @@ -366,16 +256,6 @@ extension Driver { } } -@available(*, deprecated=2.0.0, message="Please use `Driver.combineLatest`") -public func combineLatest -(source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E) throws -> R) - -> Driver { - return Driver.combineLatest( - source1, source2, source3, source4, source5, source6, source7, - resultSelector: resultSelector - ) -} - extension Driver { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. @@ -400,16 +280,6 @@ extension Driver { // 8 -@available(*, deprecated=2.0.0, message="Please use `Driver.zip`") -public func zip -(source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, _ source8: O8, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E, O8.E) throws -> R) - -> Driver { - return Driver.zip( - source1, source2, source3, source4, source5, source6, source7, source8, - resultSelector: resultSelector - ) -} - extension Driver { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. @@ -430,16 +300,6 @@ extension Driver { } } -@available(*, deprecated=2.0.0, message="Please use `Driver.combineLatest`") -public func combineLatest -(source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, _ source8: O8, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E, O8.E) throws -> R) - -> Driver { - return Driver.combineLatest( - source1, source2, source3, source4, source5, source6, source7, source8, - resultSelector: resultSelector - ) -} - extension Driver { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. diff --git a/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators+arity.tt b/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators+arity.tt index a8f5f5f0..8e1a4dc2 100644 --- a/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators+arity.tt +++ b/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators+arity.tt @@ -15,16 +15,6 @@ import RxSwift // <%= i %> -@available(*, deprecated=2.0.0, message="Please use `Driver.zip`") -public func zip<<%= (Array(1...i).map { "O\($0): DriverConvertibleType" }).joinWithSeparator(", ") %>, R> -(<%= (Array(1...i).map { "source\($0): O\($0)" }).joinWithSeparator(", _ ") %>, resultSelector: (<%= (Array(1...i).map { "O\($0).E" }).joinWithSeparator(", ") %>) throws -> R) - -> Driver { - return Driver.zip( - <%= (Array(1...i).map { "source\($0)" }).joinWithSeparator(", ") %>, - resultSelector: resultSelector - ) -} - extension Driver { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. @@ -45,16 +35,6 @@ extension Driver { } } -@available(*, deprecated=2.0.0, message="Please use `Driver.combineLatest`") -public func combineLatest<<%= (Array(1...i).map { "O\($0): DriverConvertibleType" }).joinWithSeparator(", ") %>, R> -(<%= (Array(1...i).map { "source\($0): O\($0)" }).joinWithSeparator(", _ ") %>, resultSelector: (<%= (Array(1...i).map { "O\($0).E" }).joinWithSeparator(", ") %>) throws -> R) - -> Driver { - return Driver.combineLatest( - <%= (Array(1...i).map { "source\($0)" }).joinWithSeparator(", ") %>, - resultSelector: resultSelector - ) -} - extension Driver { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. diff --git a/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators.swift b/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators.swift index 852f4dd2..d56ffde3 100644 --- a/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators.swift +++ b/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators.swift @@ -284,15 +284,6 @@ extension DriverConvertibleType { return Driver(source) } - @available(*, deprecated=2.0.0, message="Please use version without scheduler parameter.") - public func throttle(dueTime: RxTimeInterval, _ scheduler: SchedulerType) - -> Driver { - let source = self.asObservable() - .throttle(dueTime, scheduler: scheduler) - - return Driver(source) - } - /** Ignores elements from an observable sequence which are followed by another element within a specified relative time duration, using the specified scheduler to run throttling timers. @@ -309,15 +300,6 @@ extension DriverConvertibleType { return Driver(source) } - - @available(*, deprecated=2.0.0, message="Please use version without scheduler parameter.") - public func debounce(dueTime: RxTimeInterval, _ scheduler: SchedulerType) - -> Driver { - let source = self.asObservable() - .debounce(dueTime, scheduler: scheduler) - - return Driver(source) - } } // scan @@ -350,7 +332,7 @@ extension SequenceType where Generator.Element : DriverConvertibleType { @warn_unused_result(message="http://git.io/rxs.uo") public func concat() -> Driver { - let source: Observable = self.lazy.map { $0.asDriver() }.concat() + let source = self.lazy.map { $0.asDriver().asObservable() }.concat() return Driver(source) } } @@ -365,7 +347,7 @@ extension CollectionType where Generator.Element : DriverConvertibleType { @warn_unused_result(message="http://git.io/rxs.uo") public func concat() -> Driver { - let source: Observable = self.map { $0.asDriver() }.concat() + let source = self.map { $0.asDriver().asObservable() }.concat() return Driver(source) } } @@ -380,7 +362,7 @@ extension CollectionType where Generator.Element : DriverConvertibleType { */ @warn_unused_result(message="http://git.io/rxs.uo") public func zip(resultSelector: [Generator.Element.E] throws -> R) -> Driver { - let source: Observable = self.map { $0.asDriver() }.zip(resultSelector) + let source = self.map { $0.asDriver().asObservable() }.zip(resultSelector) return Driver(source) } } @@ -395,7 +377,7 @@ extension CollectionType where Generator.Element : DriverConvertibleType { */ @warn_unused_result(message="http://git.io/rxs.uo") public func combineLatest(resultSelector: [Generator.Element.E] throws -> R) -> Driver { - let source : Observable = self.map { $0.asDriver() }.combineLatest(resultSelector) + let source = self.map { $0.asDriver().asObservable() }.combineLatest(resultSelector) return Driver(source) } } diff --git a/RxCocoa/Common/CocoaUnits/Driver/Driver.swift b/RxCocoa/Common/CocoaUnits/Driver/Driver.swift index 04976af3..2b6fed56 100644 --- a/RxCocoa/Common/CocoaUnits/Driver/Driver.swift +++ b/RxCocoa/Common/CocoaUnits/Driver/Driver.swift @@ -143,37 +143,6 @@ extension Driver { } -public struct Drive { - - @available(*, deprecated=2.0.0, message="Please use `Driver.empty` (`r` at the end).") - public static func empty() -> Driver { - return Driver(raw: Observable.empty().subscribeOn(driverSubscribeOnScheduler)) - } - - @available(*, deprecated=2.0.0, message="Please use `Driver.never` (`r` at the end).") - public static func never() -> Driver { - return Driver(raw: Observable.never().subscribeOn(driverSubscribeOnScheduler)) - } - - @available(*, deprecated=2.0.0, message="Please use `Driver.just` (`r` at the end).") - public static func just(element: E) -> Driver { - return Driver(raw: Observable.just(element).subscribeOn(driverSubscribeOnScheduler)) - } - - @available(*, deprecated=2.0.0, message="Please use `Driver.deferred` (`r` at the end).") - public static func deferred(observableFactory: () -> Driver) - -> Driver { - return Driver(Observable.deferred { observableFactory().asObservable() }) - } - - @available(*, deprecated=2.0.0, message="Please use `Driver.of` (`r` at the end).") - public static func sequenceOf(elements: E ...) -> Driver { - let source = elements.toObservable().subscribeOn(driverSubscribeOnScheduler) - return Driver(raw: source) - } - -} - /** This method can be used in unit tests to ensure that driver is using mock schedulers instead of maind schedulers. diff --git a/RxCocoa/Common/DelegateProxyType.swift b/RxCocoa/Common/DelegateProxyType.swift index 63a357f8..57c92ca6 100644 --- a/RxCocoa/Common/DelegateProxyType.swift +++ b/RxCocoa/Common/DelegateProxyType.swift @@ -193,11 +193,6 @@ public func proxyForObject(type: P.Type, _ object: AnyObje return proxy } -@available(*, deprecated=2.0.0, message="Please use version that takes type as first argument.") -public func proxyForObject(object: AnyObject) -> P { - return proxyForObject(P.self, object) -} - func installDelegate(proxy: P, delegate: AnyObject, retainDelegate: Bool, onProxyForObject object: AnyObject) -> Disposable { weak var weakDelegate: AnyObject? = delegate diff --git a/RxCocoa/Common/Observables/NSObject+Rx+CoreGraphics.swift b/RxCocoa/Common/Observables/NSObject+Rx+CoreGraphics.swift deleted file mode 100644 index acb62390..00000000 --- a/RxCocoa/Common/Observables/NSObject+Rx+CoreGraphics.swift +++ /dev/null @@ -1,97 +0,0 @@ -// -// NSObject+Rx+CoreGraphics.swift -// RxCocoa -// -// Created by Krunoslav Zaher on 7/30/15. -// Copyright © 2015 Krunoslav Zaher. All rights reserved. -// - -import Foundation -#if !RX_NO_MODULE -import RxSwift -#endif -import CoreGraphics - -// MARK: Deprecated, CGPoint, CGRect, CGSize are now KVORepresentable - -extension NSObject { - /** - Specialization of generic `rx_observe` method. - - For more information take a look at `rx_observe` method. - */ - @warn_unused_result(message="http://git.io/rxs.uo") - @available(*, deprecated=2.0.0, message="Please use version that takes type as first argument.") - public func rx_observe(keyPath: String, options: NSKeyValueObservingOptions = [.New, .Initial], retainSelf: Bool = true) -> Observable { - return rx_observe(NSValue.self, keyPath, options: options, retainSelf: retainSelf) - .map(CGRect.init) - } - - /** - Specialization of generic `rx_observe` method. - - For more information take a look at `rx_observe` method. - */ - @warn_unused_result(message="http://git.io/rxs.uo") - @available(*, deprecated=2.0.0, message="Please use version that takes type as first argument.") - public func rx_observe(keyPath: String, options: NSKeyValueObservingOptions = [.New, .Initial], retainSelf: Bool = true) -> Observable { - return rx_observe(NSValue.self, keyPath, options: options, retainSelf: retainSelf) - .map(CGSize.init) - } - - /** - Specialization of generic `rx_observe` method. - - For more information take a look at `rx_observe` method. - */ - @warn_unused_result(message="http://git.io/rxs.uo") - @available(*, deprecated=2.0.0, message="Please use version that takes type as first argument.") - public func rx_observe(keyPath: String, options: NSKeyValueObservingOptions = [.New, .Initial], retainSelf: Bool = true) -> Observable { - return rx_observe(NSValue.self, keyPath, options: options, retainSelf: retainSelf) - .map(CGPoint.init) - } -} - -#if !DISABLE_SWIZZLING - -// rx_observeWeakly + CoreGraphics -extension NSObject { - - /** - Specialization of generic `rx_observeWeakly` method. - - For more information take a look at `rx_observeWeakly` method. - */ - @warn_unused_result(message="http://git.io/rxs.uo") - @available(*, deprecated=2.0.0, message="Please use version that takes type as first argument.") - public func rx_observeWeakly(keyPath: String, options: NSKeyValueObservingOptions = [.New, .Initial]) -> Observable { - return rx_observeWeakly(NSValue.self, keyPath, options: options) - .map(CGRect.init) - } - - /** - Specialization of generic `rx_observeWeakly` method. - - For more information take a look at `rx_observeWeakly` method. - */ - @warn_unused_result(message="http://git.io/rxs.uo") - @available(*, deprecated=2.0.0, message="Please use version that takes type as first argument.") - public func rx_observeWeakly(keyPath: String, options: NSKeyValueObservingOptions = [.New, .Initial]) -> Observable { - return rx_observeWeakly(NSValue.self, keyPath, options: options) - .map(CGSize.init) - } - - /** - Specialization of generic `rx_observeWeakly` method. - - For more information take a look at `rx_observeWeakly` method. - */ - @warn_unused_result(message="http://git.io/rxs.uo") - @available(*, deprecated=2.0.0, message="Please use version that takes type as first argument.") - public func rx_observeWeakly(keyPath: String, options: NSKeyValueObservingOptions = [.New, .Initial]) -> Observable { - return rx_observeWeakly(NSValue.self, keyPath, options: options) - .map(CGPoint.init) - } -} - -#endif diff --git a/RxCocoa/Common/Observables/NSObject+Rx.swift b/RxCocoa/Common/Observables/NSObject+Rx.swift index a69309d0..d2dec6d1 100644 --- a/RxCocoa/Common/Observables/NSObject+Rx.swift +++ b/RxCocoa/Common/Observables/NSObject+Rx.swift @@ -62,31 +62,6 @@ extension NSObject { public func rx_observe(type: E.Type, _ keyPath: String, options: NSKeyValueObservingOptions = [.New, .Initial], retainSelf: Bool = true) -> Observable { return KVOObservable(object: self, keyPath: keyPath, options: options, retainTarget: retainSelf).asObservable() } - - - /** - Observes values on `keyPath` starting from `self` with `options` and retains `self` if `retainSelf` is set. - - `rx_observe` is just a simple and performant wrapper around KVO mechanism. - - * it can be used to observe paths starting from `self` or from ancestors in ownership graph (`retainSelf = false`) - * it can be used to observe paths starting from descendants in ownership graph (`retainSelf = true`) - * the paths have to consist only of `strong` properties, otherwise you are risking crashing the system by not unregistering KVO observer before dealloc. - - If support for weak properties is needed or observing arbitrary or unknown relationships in the - ownership tree, `rx_observeWeakly` is the preferred option. - - - parameter keyPath: Key path of property names to observe. - - parameter options: KVO mechanism notification options. - - parameter retainSelf: Retains self during observation if set `true`. - - returns: Observable sequence of objects on `keyPath`. - */ - @warn_unused_result(message="http://git.io/rxs.uo") - @available(*, deprecated=2.0.0, message="Please use version that takes type as first argument `rx_observe(type: Element.Type, _ keyPath: String, options: NSKeyValueObservingOptions = [.New, .Initial], retainSelf: Bool = true) -> Observable`") - public func rx_observe(keyPath: String, options: NSKeyValueObservingOptions = [.New, .Initial], retainSelf: Bool = true) -> Observable { - return KVOObservable(object: self, keyPath: keyPath, options: options, retainTarget: retainSelf).asObservable() - } - } #if !DISABLE_SWIZZLING @@ -113,29 +88,6 @@ extension NSObject { return n as? E } } - - /** - Observes values on `keyPath` starting from `self` with `options` and doesn't retain `self`. - - It can be used in all cases where `rx_observe` can be used and additionally - - * because it won't retain observed target, it can be used to observe arbitrary object graph whose ownership relation is unknown - * it can be used to observe `weak` properties - - **Since it needs to intercept object deallocation process it needs to perform swizzling of `dealloc` method on observed object.** - - - parameter keyPath: Key path of property names to observe. - - parameter options: KVO mechanism notification options. - - returns: Observable sequence of objects on `keyPath`. - */ - @available(*, deprecated=2.0.0, message="Please use version that takes type as first argument `rx_observeWeakly(type: Element.Type, keyPath: String, options: NSKeyValueObservingOptions = [.New, .Initial]) -> Observable`") - @warn_unused_result(message="http://git.io/rxs.uo") - public func rx_observeWeakly(keyPath: String, options: NSKeyValueObservingOptions = [.New, .Initial]) -> Observable { - return observeWeaklyKeyPathFor(self, keyPath: keyPath, options: options) - .map { n in - return n as? Element - } - } } #endif diff --git a/RxCocoa/OSX/NSButton+Rx.swift b/RxCocoa/OSX/NSButton+Rx.swift index 356f13fe..460baef2 100644 --- a/RxCocoa/OSX/NSButton+Rx.swift +++ b/RxCocoa/OSX/NSButton+Rx.swift @@ -18,6 +18,6 @@ extension NSButton { Reactive wrapper for control event. */ public var rx_tap: ControlEvent { - return rx_controlEvents + return rx_controlEvent } } \ No newline at end of file diff --git a/RxCocoa/OSX/NSControl+Rx.swift b/RxCocoa/OSX/NSControl+Rx.swift index c017d3a3..9aabdae2 100644 --- a/RxCocoa/OSX/NSControl+Rx.swift +++ b/RxCocoa/OSX/NSControl+Rx.swift @@ -17,11 +17,6 @@ var rx_control_events_key: UInt8 = 0 extension NSControl { - @available(*, deprecated=2.0.0, message="Please use rx_controlEvent.") - public var rx_controlEvents: ControlEvent { - return rx_controlEvent - } - /** Reactive wrapper for control event. */ diff --git a/RxCocoa/iOS/Proxies/RxActionSheetDelegateProxy.swift b/RxCocoa/iOS/Proxies/RxActionSheetDelegateProxy.swift deleted file mode 100644 index d71def5b..00000000 --- a/RxCocoa/iOS/Proxies/RxActionSheetDelegateProxy.swift +++ /dev/null @@ -1,32 +0,0 @@ -// -// RxActionSheetDelegateProxy.swift -// RxCocoa -// -// Created by Carlos García on 8/7/15. -// Copyright © 2015 Krunoslav Zaher. All rights reserved. -// - -#if os(iOS) - -import UIKit -#if !RX_NO_MODULE -import RxSwift -#endif - -@available(*, deprecated=2.0.0, message="This class is deprecated by Apple. Removing official support.") -class RxActionSheetDelegateProxy : DelegateProxy - , UIActionSheetDelegate - , DelegateProxyType { - - class func currentDelegateFor(object: AnyObject) -> AnyObject? { - let actionSheet: UIActionSheet = castOrFatalError(object) - return actionSheet.delegate - } - - class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { - let actionSheet: UIActionSheet = castOrFatalError(object) - actionSheet.delegate = castOptionalOrFatalError(delegate) - } -} - -#endif diff --git a/RxCocoa/iOS/Proxies/RxAlertViewDelegateProxy.swift b/RxCocoa/iOS/Proxies/RxAlertViewDelegateProxy.swift deleted file mode 100644 index ff04e492..00000000 --- a/RxCocoa/iOS/Proxies/RxAlertViewDelegateProxy.swift +++ /dev/null @@ -1,33 +0,0 @@ -// -// RxAlertViewDelegateProxy.swift -// RxCocoa -// -// Created by Carlos García on 8/7/15. -// Copyright © 2015 Krunoslav Zaher. All rights reserved. -// - -#if os(iOS) - -import UIKit -#if !RX_NO_MODULE -import RxSwift -#endif - -@available(*, deprecated=2.0.0, message="This class is deprecated by Apple. Removing official support.") -class RxAlertViewDelegateProxy : DelegateProxy - , UIAlertViewDelegate - , DelegateProxyType { - - class func currentDelegateFor(object: AnyObject) -> AnyObject? { - let alertView: UIAlertView = castOrFatalError(object) - return alertView.delegate - } - - class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { - let alertView: UIAlertView = castOrFatalError(object) - alertView.delegate = castOptionalOrFatalError(delegate) - } -} - -#endif - diff --git a/RxCocoa/iOS/UIActionSheet+Rx.swift b/RxCocoa/iOS/UIActionSheet+Rx.swift deleted file mode 100644 index 781e0798..00000000 --- a/RxCocoa/iOS/UIActionSheet+Rx.swift +++ /dev/null @@ -1,69 +0,0 @@ -// -// UIActionSheet+Rx.swift -// RxCocoa -// -// Created by Carlos García on 8/7/15. -// Copyright © 2015 Krunoslav Zaher. All rights reserved. -// - -#if os(iOS) - -import UIKit -#if !RX_NO_MODULE -import RxSwift -#endif - - -extension UIActionSheet { - - /** - Reactive wrapper for `delegate`. - - For more information take a look at `DelegateProxyType` protocol documentation. - */ - @available(*, deprecated=2.0.0, message="This class is deprecated by Apple. Removing official support.") - public var rx_delegate: DelegateProxy { - return proxyForObject(RxActionSheetDelegateProxy.self, self) - } - - /** - Reactive wrapper for `delegate` message. - */ - @available(*, deprecated=2.0.0, message="This class is deprecated by Apple. Removing official support.") - public var rx_clickedButtonAtIndex: ControlEvent { - let source = rx_delegate.observe("actionSheet:clickedButtonAtIndex:") - .map { a in - return a[1] as! Int - } - - return ControlEvent(events: source) - } - - /** - Reactive wrapper for `delegate` message. - */ - @available(*, deprecated=2.0.0, message="This class is deprecated by Apple. Removing official support.") - public var rx_willDismissWithButtonIndex: ControlEvent { - let source = rx_delegate.observe("actionSheet:willDismissWithButtonIndex:") - .map { a in - return a[1] as! Int - } - - return ControlEvent(events: source) - } - - /** - Reactive wrapper for `delegate` message. - */ - @available(*, deprecated=2.0.0, message="This class is deprecated by Apple. Removing official support.") - public var rx_didDismissWithButtonIndex: ControlEvent { - let source = rx_delegate.observe("actionSheet:didDismissWithButtonIndex:") - .map { a in - return a[1] as! Int - } - - return ControlEvent(events: source) - } -} - -#endif diff --git a/RxCocoa/iOS/UIAlertView+Rx.swift b/RxCocoa/iOS/UIAlertView+Rx.swift deleted file mode 100644 index 9e3fb797..00000000 --- a/RxCocoa/iOS/UIAlertView+Rx.swift +++ /dev/null @@ -1,68 +0,0 @@ -// -// UIAlertView+Rx.swift -// RxCocoa -// -// Created by Carlos García on 8/7/15. -// Copyright © 2015 Krunoslav Zaher. All rights reserved. -// - -#if os(iOS) - -import UIKit -#if !RX_NO_MODULE -import RxSwift -#endif - -extension UIAlertView { - - /** - Reactive wrapper for `delegate`. - - For more information take a look at `DelegateProxyType` protocol documentation. - */ - @available(*, deprecated=2.0.0, message="This class is deprecated by Apple. Removing official support.") - public var rx_delegate: DelegateProxy { - return proxyForObject(RxAlertViewDelegateProxy.self, self) - } - - /** - Reactive wrapper for `delegate` message. - */ - @available(*, deprecated=2.0.0, message="This class is deprecated by Apple. Removing official support.") - public var rx_clickedButtonAtIndex: ControlEvent { - let source = rx_delegate.observe("alertView:clickedButtonAtIndex:") - .map { a in - return a[1] as! Int - } - - return ControlEvent(events: source) - } - - /** - Reactive wrapper for `delegate` message. - */ - @available(*, deprecated=2.0.0, message="This class is deprecated by Apple. Removing official support.") - public var rx_willDismissWithButtonIndex: ControlEvent { - let source = rx_delegate.observe("alertView:willDismissWithButtonIndex:") - .map { a in - return a[1] as! Int - } - - return ControlEvent(events: source) - } - - /** - Reactive wrapper for `delegate` message. - */ - @available(*, deprecated=2.0.0, message="This class is deprecated by Apple. Removing official support.") - public var rx_didDismissWithButtonIndex: ControlEvent { - let source = rx_delegate.observe("alertView:didDismissWithButtonIndex:") - .map { a in - return a[1] as! Int - } - - return ControlEvent(events: source) - } -} - -#endif diff --git a/RxCocoa/iOS/UICollectionView+Rx.swift b/RxCocoa/iOS/UICollectionView+Rx.swift index 9a8d214d..6786d47d 100644 --- a/RxCocoa/iOS/UICollectionView+Rx.swift +++ b/RxCocoa/iOS/UICollectionView+Rx.swift @@ -166,11 +166,6 @@ extension UICollectionView { return ControlEvent(events: source) } - - @available(*, deprecated=2.0.0, message="Please use version that takes type as first argument.") - public func rx_modelSelected() -> ControlEvent { - return rx_modelSelected(T.self) - } /** Syncronous helper method for retrieving a model at indexPath through a reactive data source diff --git a/RxCocoa/iOS/UIControl+Rx.swift b/RxCocoa/iOS/UIControl+Rx.swift index 9f79d12a..3e7f356f 100644 --- a/RxCocoa/iOS/UIControl+Rx.swift +++ b/RxCocoa/iOS/UIControl+Rx.swift @@ -62,11 +62,6 @@ extension UIControl { return ControlEvent(events: source) } - @available(*, deprecated=2.0.0, message="Please use rx_controlEvent.") - public func rx_controlEvents(controlEvents: UIControlEvents) -> ControlEvent { - return rx_controlEvent(controlEvents) - } - func rx_value(getter getter: () -> T, setter: T -> Void) -> ControlProperty { let source: Observable = Observable.create { [weak self] observer in guard let control = self else { diff --git a/RxCocoa/iOS/UITableView+Rx.swift b/RxCocoa/iOS/UITableView+Rx.swift index 77303036..66134491 100644 --- a/RxCocoa/iOS/UITableView+Rx.swift +++ b/RxCocoa/iOS/UITableView+Rx.swift @@ -212,11 +212,6 @@ extension UITableView { } - @available(*, deprecated=2.0.0, message="Please use version that takes type as first argument.") - public func rx_modelSelected() -> ControlEvent { - return rx_modelSelected(T.self) - } - /** Synchronous helper method for retrieving a model at indexPath through a reactive data source */ diff --git a/RxExample/RxExample.xcodeproj/project.pbxproj b/RxExample/RxExample.xcodeproj/project.pbxproj index 09de615a..1c10a237 100644 --- a/RxExample/RxExample.xcodeproj/project.pbxproj +++ b/RxExample/RxExample.xcodeproj/project.pbxproj @@ -116,6 +116,9 @@ C83D73E01C1DBC2A003DC470 /* InvocableType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C83D73DB1C1DBC2A003DC470 /* InvocableType.swift */; }; C83D73E11C1DBC2A003DC470 /* ScheduledItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C83D73DC1C1DBC2A003DC470 /* ScheduledItem.swift */; }; C83D73E21C1DBC2A003DC470 /* ScheduledItemType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C83D73DD1C1DBC2A003DC470 /* ScheduledItemType.swift */; }; + C84015751C34353D009D2E77 /* DispatchQueueSchedulerQOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = C84015741C34353D009D2E77 /* DispatchQueueSchedulerQOS.swift */; }; + C84015881C343595009D2E77 /* Platform.Darwin.swift in Sources */ = {isa = PBXBuildFile; fileRef = C84015861C343595009D2E77 /* Platform.Darwin.swift */; }; + C84015891C343595009D2E77 /* Platform.Linux.swift in Sources */ = {isa = PBXBuildFile; fileRef = C84015871C343595009D2E77 /* Platform.Linux.swift */; }; C843A08E1C1CE39900CBA4BD /* GitHubSearchRepositoriesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = C843A08C1C1CE39900CBA4BD /* GitHubSearchRepositoriesAPI.swift */; }; C843A08F1C1CE39900CBA4BD /* GitHubSearchRepositoriesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = C843A08C1C1CE39900CBA4BD /* GitHubSearchRepositoriesAPI.swift */; }; C843A0901C1CE39900CBA4BD /* GitHubSearchRepositoriesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C843A08D1C1CE39900CBA4BD /* GitHubSearchRepositoriesViewController.swift */; }; @@ -213,7 +216,6 @@ C89464AC1BC6C2B00055219D /* NAryDisposable.tt in Resources */ = {isa = PBXBuildFile; fileRef = C89464391BC6C2B00055219D /* NAryDisposable.tt */; }; C89464AD1BC6C2B00055219D /* NopDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894643A1BC6C2B00055219D /* NopDisposable.swift */; }; C89464AE1BC6C2B00055219D /* ScheduledDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894643B1BC6C2B00055219D /* ScheduledDisposable.swift */; }; - C89464AF1BC6C2B00055219D /* ScopedDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894643C1BC6C2B00055219D /* ScopedDisposable.swift */; }; C89464B01BC6C2B00055219D /* SerialDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894643D1BC6C2B00055219D /* SerialDisposable.swift */; }; C89464B11BC6C2B00055219D /* SingleAssignmentDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894643E1BC6C2B00055219D /* SingleAssignmentDisposable.swift */; }; C89464B21BC6C2B00055219D /* StableCompositeDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894643F1BC6C2B00055219D /* StableCompositeDisposable.swift */; }; @@ -285,7 +287,6 @@ C89464F61BC6C2B00055219D /* AnonymousObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89464861BC6C2B00055219D /* AnonymousObserver.swift */; }; C89464F71BC6C2B00055219D /* ObserverBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89464871BC6C2B00055219D /* ObserverBase.swift */; }; C89464F81BC6C2B00055219D /* TailRecursiveSink.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89464881BC6C2B00055219D /* TailRecursiveSink.swift */; }; - C89464F91BC6C2B00055219D /* ObserverType+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89464891BC6C2B00055219D /* ObserverType+Extensions.swift */; }; C89464FA1BC6C2B00055219D /* ObserverType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894648A1BC6C2B00055219D /* ObserverType.swift */; }; C89464FB1BC6C2B00055219D /* Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894648B1BC6C2B00055219D /* Rx.swift */; }; C89464FC1BC6C2B00055219D /* RxMutableBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894648C1BC6C2B00055219D /* RxMutableBox.swift */; }; @@ -309,7 +310,6 @@ C89465751BC6C2BC0055219D /* KVOObservable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89465291BC6C2BC0055219D /* KVOObservable.swift */; }; C89465761BC6C2BC0055219D /* KVOObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894652A1BC6C2BC0055219D /* KVOObserver.swift */; }; C89465771BC6C2BC0055219D /* NSNotificationCenter+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894652B1BC6C2BC0055219D /* NSNotificationCenter+Rx.swift */; }; - C89465781BC6C2BC0055219D /* NSObject+Rx+CoreGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894652C1BC6C2BC0055219D /* NSObject+Rx+CoreGraphics.swift */; }; C89465791BC6C2BC0055219D /* NSObject+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894652D1BC6C2BC0055219D /* NSObject+Rx.swift */; }; C894657A1BC6C2BC0055219D /* NSURLSession+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894652E1BC6C2BC0055219D /* NSURLSession+Rx.swift */; }; C894657B1BC6C2BC0055219D /* RxCLLocationManagerDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89465301BC6C2BC0055219D /* RxCLLocationManagerDelegateProxy.swift */; }; @@ -321,8 +321,6 @@ C89465811BC6C2BC0055219D /* ItemEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89465391BC6C2BC0055219D /* ItemEvents.swift */; }; C89465821BC6C2BC0055219D /* RxCollectionViewDataSourceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894653B1BC6C2BC0055219D /* RxCollectionViewDataSourceType.swift */; }; C89465831BC6C2BC0055219D /* RxTableViewDataSourceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894653C1BC6C2BC0055219D /* RxTableViewDataSourceType.swift */; }; - C89465841BC6C2BC0055219D /* RxActionSheetDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894653E1BC6C2BC0055219D /* RxActionSheetDelegateProxy.swift */; }; - C89465851BC6C2BC0055219D /* RxAlertViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894653F1BC6C2BC0055219D /* RxAlertViewDelegateProxy.swift */; }; C89465861BC6C2BC0055219D /* RxCollectionViewDataSourceProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89465401BC6C2BC0055219D /* RxCollectionViewDataSourceProxy.swift */; }; C89465871BC6C2BC0055219D /* RxCollectionViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89465411BC6C2BC0055219D /* RxCollectionViewDelegateProxy.swift */; }; C89465881BC6C2BC0055219D /* RxScrollViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89465421BC6C2BC0055219D /* RxScrollViewDelegateProxy.swift */; }; @@ -330,8 +328,6 @@ C894658A1BC6C2BC0055219D /* RxTableViewDataSourceProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89465441BC6C2BC0055219D /* RxTableViewDataSourceProxy.swift */; }; C894658B1BC6C2BC0055219D /* RxTableViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89465451BC6C2BC0055219D /* RxTableViewDelegateProxy.swift */; }; C894658C1BC6C2BC0055219D /* RxTextViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89465461BC6C2BC0055219D /* RxTextViewDelegateProxy.swift */; }; - C894658D1BC6C2BC0055219D /* UIActionSheet+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89465471BC6C2BC0055219D /* UIActionSheet+Rx.swift */; }; - C894658E1BC6C2BC0055219D /* UIAlertView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89465481BC6C2BC0055219D /* UIAlertView+Rx.swift */; }; C894658F1BC6C2BC0055219D /* UIBarButtonItem+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89465491BC6C2BC0055219D /* UIBarButtonItem+Rx.swift */; }; C89465901BC6C2BC0055219D /* UIButton+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894654A1BC6C2BC0055219D /* UIButton+Rx.swift */; }; C89465911BC6C2BC0055219D /* UICollectionView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894654B1BC6C2BC0055219D /* UICollectionView+Rx.swift */; }; @@ -378,8 +374,6 @@ C8BCD3EB1C14B02A005F1280 /* SimpleValidationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3E91C14B02A005F1280 /* SimpleValidationViewController.swift */; }; C8BCD4021C14BFB7005F1280 /* NSLayoutConstraint+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD4011C14BFB7005F1280 /* NSLayoutConstraint+Rx.swift */; }; C8BCD4041C14BFCA005F1280 /* UIView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD4031C14BFCA005F1280 /* UIView+Rx.swift */; }; - C8BF34D61C2E4A2F00416CAE /* Darwin.Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34D41C2E4A2F00416CAE /* Darwin.Platform.swift */; }; - C8BF34D71C2E4A2F00416CAE /* Linux.Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BF34D51C2E4A2F00416CAE /* Linux.Platform.swift */; }; C8C46DA81B47F7110020D71E /* CollectionViewImageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C46DA31B47F7110020D71E /* CollectionViewImageCell.swift */; }; C8C46DA91B47F7110020D71E /* WikipediaImageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C8C46DA41B47F7110020D71E /* WikipediaImageCell.xib */; }; C8C46DAA1B47F7110020D71E /* WikipediaSearchCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C46DA51B47F7110020D71E /* WikipediaSearchCell.swift */; }; @@ -400,7 +394,6 @@ C8F6A12B1BEF9DA3007DF367 /* ConcurrentDispatchQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894648E1BC6C2B00055219D /* ConcurrentDispatchQueueScheduler.swift */; }; C8F6A12C1BEF9DA3007DF367 /* ConcurrentMainScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8B145051BD2E45200267DCE /* ConcurrentMainScheduler.swift */; }; C8F6A12D1BEF9DA3007DF367 /* CurrentThreadScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C894648F1BC6C2B00055219D /* CurrentThreadScheduler.swift */; }; - C8F6A12E1BEF9DA3007DF367 /* DispatchQueueSchedulerPriority.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89464901BC6C2B00055219D /* DispatchQueueSchedulerPriority.swift */; }; C8F6A12F1BEF9DA3007DF367 /* ImmediateScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8B145041BD2E45200267DCE /* ImmediateScheduler.swift */; }; C8F6A1301BEF9DA3007DF367 /* MainScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89464911BC6C2B00055219D /* MainScheduler.swift */; }; C8F6A1311BEF9DA3007DF367 /* OperationQueueScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89464921BC6C2B00055219D /* OperationQueueScheduler.swift */; }; @@ -634,6 +627,9 @@ C83D73DB1C1DBC2A003DC470 /* InvocableType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InvocableType.swift; sourceTree = ""; }; C83D73DC1C1DBC2A003DC470 /* ScheduledItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScheduledItem.swift; sourceTree = ""; }; C83D73DD1C1DBC2A003DC470 /* ScheduledItemType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScheduledItemType.swift; sourceTree = ""; }; + C84015741C34353D009D2E77 /* DispatchQueueSchedulerQOS.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DispatchQueueSchedulerQOS.swift; sourceTree = ""; }; + C84015861C343595009D2E77 /* Platform.Darwin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Platform.Darwin.swift; sourceTree = ""; }; + C84015871C343595009D2E77 /* Platform.Linux.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Platform.Linux.swift; sourceTree = ""; }; C843A08C1C1CE39900CBA4BD /* GitHubSearchRepositoriesAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitHubSearchRepositoriesAPI.swift; sourceTree = ""; }; C843A08D1C1CE39900CBA4BD /* GitHubSearchRepositoriesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitHubSearchRepositoriesViewController.swift; sourceTree = ""; }; C843A0921C1CE58700CBA4BD /* UINavigationController+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UINavigationController+Extensions.swift"; sourceTree = ""; }; @@ -698,7 +694,6 @@ C89464391BC6C2B00055219D /* NAryDisposable.tt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NAryDisposable.tt; sourceTree = ""; }; C894643A1BC6C2B00055219D /* NopDisposable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NopDisposable.swift; sourceTree = ""; }; C894643B1BC6C2B00055219D /* ScheduledDisposable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScheduledDisposable.swift; sourceTree = ""; }; - C894643C1BC6C2B00055219D /* ScopedDisposable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScopedDisposable.swift; sourceTree = ""; }; C894643D1BC6C2B00055219D /* SerialDisposable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SerialDisposable.swift; sourceTree = ""; }; C894643E1BC6C2B00055219D /* SingleAssignmentDisposable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SingleAssignmentDisposable.swift; sourceTree = ""; }; C894643F1BC6C2B00055219D /* StableCompositeDisposable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StableCompositeDisposable.swift; sourceTree = ""; }; @@ -770,13 +765,11 @@ C89464861BC6C2B00055219D /* AnonymousObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnonymousObserver.swift; sourceTree = ""; }; C89464871BC6C2B00055219D /* ObserverBase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ObserverBase.swift; sourceTree = ""; }; C89464881BC6C2B00055219D /* TailRecursiveSink.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TailRecursiveSink.swift; sourceTree = ""; }; - C89464891BC6C2B00055219D /* ObserverType+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ObserverType+Extensions.swift"; sourceTree = ""; }; C894648A1BC6C2B00055219D /* ObserverType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ObserverType.swift; sourceTree = ""; }; C894648B1BC6C2B00055219D /* Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Rx.swift; sourceTree = ""; }; C894648C1BC6C2B00055219D /* RxMutableBox.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxMutableBox.swift; sourceTree = ""; }; C894648E1BC6C2B00055219D /* ConcurrentDispatchQueueScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConcurrentDispatchQueueScheduler.swift; sourceTree = ""; }; C894648F1BC6C2B00055219D /* CurrentThreadScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CurrentThreadScheduler.swift; sourceTree = ""; }; - C89464901BC6C2B00055219D /* DispatchQueueSchedulerPriority.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DispatchQueueSchedulerPriority.swift; sourceTree = ""; }; C89464911BC6C2B00055219D /* MainScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainScheduler.swift; sourceTree = ""; }; C89464921BC6C2B00055219D /* OperationQueueScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OperationQueueScheduler.swift; sourceTree = ""; }; C89464931BC6C2B00055219D /* RecursiveScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecursiveScheduler.swift; sourceTree = ""; }; @@ -805,7 +798,6 @@ C89465291BC6C2BC0055219D /* KVOObservable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KVOObservable.swift; sourceTree = ""; }; C894652A1BC6C2BC0055219D /* KVOObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KVOObserver.swift; sourceTree = ""; }; C894652B1BC6C2BC0055219D /* NSNotificationCenter+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSNotificationCenter+Rx.swift"; sourceTree = ""; }; - C894652C1BC6C2BC0055219D /* NSObject+Rx+CoreGraphics.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSObject+Rx+CoreGraphics.swift"; sourceTree = ""; }; C894652D1BC6C2BC0055219D /* NSObject+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSObject+Rx.swift"; sourceTree = ""; }; C894652E1BC6C2BC0055219D /* NSURLSession+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSURLSession+Rx.swift"; sourceTree = ""; }; C89465301BC6C2BC0055219D /* RxCLLocationManagerDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxCLLocationManagerDelegateProxy.swift; sourceTree = ""; }; @@ -817,8 +809,6 @@ C89465391BC6C2BC0055219D /* ItemEvents.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemEvents.swift; sourceTree = ""; }; C894653B1BC6C2BC0055219D /* RxCollectionViewDataSourceType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxCollectionViewDataSourceType.swift; sourceTree = ""; }; C894653C1BC6C2BC0055219D /* RxTableViewDataSourceType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxTableViewDataSourceType.swift; sourceTree = ""; }; - C894653E1BC6C2BC0055219D /* RxActionSheetDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxActionSheetDelegateProxy.swift; sourceTree = ""; }; - C894653F1BC6C2BC0055219D /* RxAlertViewDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxAlertViewDelegateProxy.swift; sourceTree = ""; }; C89465401BC6C2BC0055219D /* RxCollectionViewDataSourceProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxCollectionViewDataSourceProxy.swift; sourceTree = ""; }; C89465411BC6C2BC0055219D /* RxCollectionViewDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxCollectionViewDelegateProxy.swift; sourceTree = ""; }; C89465421BC6C2BC0055219D /* RxScrollViewDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxScrollViewDelegateProxy.swift; sourceTree = ""; }; @@ -826,8 +816,6 @@ C89465441BC6C2BC0055219D /* RxTableViewDataSourceProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxTableViewDataSourceProxy.swift; sourceTree = ""; }; C89465451BC6C2BC0055219D /* RxTableViewDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxTableViewDelegateProxy.swift; sourceTree = ""; }; C89465461BC6C2BC0055219D /* RxTextViewDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxTextViewDelegateProxy.swift; sourceTree = ""; }; - C89465471BC6C2BC0055219D /* UIActionSheet+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIActionSheet+Rx.swift"; sourceTree = ""; }; - C89465481BC6C2BC0055219D /* UIAlertView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIAlertView+Rx.swift"; sourceTree = ""; }; C89465491BC6C2BC0055219D /* UIBarButtonItem+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "UIBarButtonItem+Rx.swift"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; C894654A1BC6C2BC0055219D /* UIButton+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIButton+Rx.swift"; sourceTree = ""; }; C894654B1BC6C2BC0055219D /* UICollectionView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UICollectionView+Rx.swift"; sourceTree = ""; }; @@ -869,8 +857,6 @@ C8BCD3E91C14B02A005F1280 /* SimpleValidationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SimpleValidationViewController.swift; sourceTree = ""; }; C8BCD4011C14BFB7005F1280 /* NSLayoutConstraint+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSLayoutConstraint+Rx.swift"; sourceTree = ""; }; C8BCD4031C14BFCA005F1280 /* UIView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIView+Rx.swift"; sourceTree = ""; }; - C8BF34D41C2E4A2F00416CAE /* Darwin.Platform.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Darwin.Platform.swift; sourceTree = ""; }; - C8BF34D51C2E4A2F00416CAE /* Linux.Platform.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Linux.Platform.swift; sourceTree = ""; }; C8C46DA31B47F7110020D71E /* CollectionViewImageCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectionViewImageCell.swift; sourceTree = ""; }; C8C46DA41B47F7110020D71E /* WikipediaImageCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = WikipediaImageCell.xib; sourceTree = ""; }; C8C46DA51B47F7110020D71E /* WikipediaSearchCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WikipediaSearchCell.swift; sourceTree = ""; }; @@ -1297,7 +1283,6 @@ C89464831BC6C2B00055219D /* ObservableType.swift */, C89464841BC6C2B00055219D /* AnyObserver.swift */, C89464851BC6C2B00055219D /* Observers */, - C89464891BC6C2B00055219D /* ObserverType+Extensions.swift */, C894648A1BC6C2B00055219D /* ObserverType.swift */, C894648B1BC6C2B00055219D /* Rx.swift */, C894648C1BC6C2B00055219D /* RxMutableBox.swift */, @@ -1349,7 +1334,6 @@ C894643A1BC6C2B00055219D /* NopDisposable.swift */, CB883B4F1BE3AC54000AC2EE /* RefCountDisposable.swift */, C894643B1BC6C2B00055219D /* ScheduledDisposable.swift */, - C894643C1BC6C2B00055219D /* ScopedDisposable.swift */, C894643D1BC6C2B00055219D /* SerialDisposable.swift */, C894643E1BC6C2B00055219D /* SingleAssignmentDisposable.swift */, C894643F1BC6C2B00055219D /* StableCompositeDisposable.swift */, @@ -1456,6 +1440,7 @@ C894648D1BC6C2B00055219D /* Schedulers */ = { isa = PBXGroup; children = ( + C84015741C34353D009D2E77 /* DispatchQueueSchedulerQOS.swift */, C80DA33C1C30B23600C588B9 /* HistoricalScheduler.swift */, C80DA33D1C30B23600C588B9 /* HistoricalSchedulerTimeConverter.swift */, C80DA33E1C30B23600C588B9 /* VirtualTimeConverterType.swift */, @@ -1464,7 +1449,6 @@ C894648E1BC6C2B00055219D /* ConcurrentDispatchQueueScheduler.swift */, C8B145051BD2E45200267DCE /* ConcurrentMainScheduler.swift */, C894648F1BC6C2B00055219D /* CurrentThreadScheduler.swift */, - C89464901BC6C2B00055219D /* DispatchQueueSchedulerPriority.swift */, C8B145041BD2E45200267DCE /* ImmediateScheduler.swift */, C89464911BC6C2B00055219D /* MainScheduler.swift */, C89464921BC6C2B00055219D /* OperationQueueScheduler.swift */, @@ -1545,7 +1529,6 @@ C83974221BF77413004F02CC /* NSObject+Rx+RawRepresentable.swift */, C89465251BC6C2BC0055219D /* Implementations */, C894652B1BC6C2BC0055219D /* NSNotificationCenter+Rx.swift */, - C894652C1BC6C2BC0055219D /* NSObject+Rx+CoreGraphics.swift */, C894652D1BC6C2BC0055219D /* NSObject+Rx.swift */, C894652E1BC6C2BC0055219D /* NSURLSession+Rx.swift */, ); @@ -1580,8 +1563,6 @@ C894653A1BC6C2BC0055219D /* Protocols */, C894653D1BC6C2BC0055219D /* Proxies */, C8BCD4031C14BFCA005F1280 /* UIView+Rx.swift */, - C89465471BC6C2BC0055219D /* UIActionSheet+Rx.swift */, - C89465481BC6C2BC0055219D /* UIAlertView+Rx.swift */, C89465491BC6C2BC0055219D /* UIBarButtonItem+Rx.swift */, C894654A1BC6C2BC0055219D /* UIButton+Rx.swift */, C894654B1BC6C2BC0055219D /* UICollectionView+Rx.swift */, @@ -1686,8 +1667,8 @@ C8BF34D31C2E4A2F00416CAE /* Platform */ = { isa = PBXGroup; children = ( - C8BF34D41C2E4A2F00416CAE /* Darwin.Platform.swift */, - C8BF34D51C2E4A2F00416CAE /* Linux.Platform.swift */, + C84015861C343595009D2E77 /* Platform.Darwin.swift */, + C84015871C343595009D2E77 /* Platform.Linux.swift */, ); path = Platform; sourceTree = ""; @@ -2011,6 +1992,7 @@ buildActionMask = 2147483647; files = ( C83D73DE1C1DBC2A003DC470 /* AnonymousInvocable.swift in Sources */, + C84015751C34353D009D2E77 /* DispatchQueueSchedulerQOS.swift in Sources */, C84CC58B1BDD486300E06A64 /* LockOwnerType.swift in Sources */, C89465971BC6C2BC0055219D /* UIScrollView+Rx.swift in Sources */, 9B4612951C106CF100BBBB4E /* UIActivityIndicatorView+Rx.swift in Sources */, @@ -2034,7 +2016,6 @@ C8BCD3E71C14A95E005F1280 /* NumbersViewController.swift in Sources */, C89464A51BC6C2B00055219D /* Disposable.swift in Sources */, C843A0911C1CE39900CBA4BD /* GitHubSearchRepositoriesViewController.swift in Sources */, - C89464F91BC6C2B00055219D /* ObserverType+Extensions.swift in Sources */, C84CC58D1BDD486300E06A64 /* SynchronizedOnType.swift in Sources */, C83974121BF77406004F02CC /* KVORepresentable.swift in Sources */, C89464DC1BC6C2B00055219D /* Scan.swift in Sources */, @@ -2043,7 +2024,6 @@ C89464B51BC6C2B00055219D /* ImmediateSchedulerType.swift in Sources */, C8297E321B6CF905000589EA /* HtmlParsing.swift in Sources */, C8297E331B6CF905000589EA /* NumberCell.swift in Sources */, - C894658D1BC6C2BC0055219D /* UIActionSheet+Rx.swift in Sources */, C89464EA1BC6C2B00055219D /* Zip.swift in Sources */, C89464E51BC6C2B00055219D /* Throttle.swift in Sources */, C83974241BF77413004F02CC /* NSObject+Rx+RawRepresentable.swift in Sources */, @@ -2053,6 +2033,7 @@ C89464DA1BC6C2B00055219D /* Repeat.swift in Sources */, C89465651BC6C2BC0055219D /* CLLocationManager+Rx.swift in Sources */, C80DDED81BCE9046006A1832 /* Driver.swift in Sources */, + C84015881C343595009D2E77 /* Platform.Darwin.swift in Sources */, C80DDED71BCE9046006A1832 /* Driver+Subscription.swift in Sources */, C8F6A1321BEF9DA3007DF367 /* RecursiveScheduler.swift in Sources */, 07A5C3DC1B70B703001EFE5C /* CalculatorViewController.swift in Sources */, @@ -2089,7 +2070,6 @@ C894649E1BC6C2B00055219D /* Cancelable.swift in Sources */, C89464E01BC6C2B00055219D /* SubscribeOn.swift in Sources */, C89465801BC6C2BC0055219D /* RxTableViewReactiveArrayDataSource.swift in Sources */, - C89464AF1BC6C2B00055219D /* ScopedDisposable.swift in Sources */, C89464FA1BC6C2B00055219D /* ObserverType.swift in Sources */, C89464F01BC6C2B00055219D /* Observable+Multiple.swift in Sources */, C891A2C91C07160C00DDD09D /* Timeout.swift in Sources */, @@ -2118,7 +2098,6 @@ C89464CC1BC6C2B00055219D /* Filter.swift in Sources */, C864BAE01C3332F10083833C /* UIImageView+Extensions.swift in Sources */, C80DDED31BCE9046006A1832 /* ControlProperty+Driver.swift in Sources */, - C8F6A12E1BEF9DA3007DF367 /* DispatchQueueSchedulerPriority.swift in Sources */, C89464C11BC6C2B00055219D /* CombineLatest+CollectionType.swift in Sources */, C89465671BC6C2BC0055219D /* ControlEvent.swift in Sources */, C89464A61BC6C2B00055219D /* AnonymousDisposable.swift in Sources */, @@ -2127,10 +2106,8 @@ C89464EE1BC6C2B00055219D /* Observable+Creation.swift in Sources */, C894659A1BC6C2BC0055219D /* UISlider+Rx.swift in Sources */, C89465891BC6C2BC0055219D /* RxSearchBarDelegateProxy.swift in Sources */, - C8BF34D71C2E4A2F00416CAE /* Linux.Platform.swift in Sources */, C89464C21BC6C2B00055219D /* CombineLatest.swift in Sources */, C89464E71BC6C2B00055219D /* Zip+arity.swift in Sources */, - C8BF34D61C2E4A2F00416CAE /* Darwin.Platform.swift in Sources */, B1604CC21BE5B895002E1279 /* ReachabilityService.swift in Sources */, C89464DE1BC6C2B00055219D /* Skip.swift in Sources */, C89464DB1BC6C2B00055219D /* Sample.swift in Sources */, @@ -2175,7 +2152,6 @@ C89465611BC6C2BC0055219D /* _RX.m in Sources */, CB30D9EE1BF106260084C1C0 /* SingleAsync.swift in Sources */, C80DDED41BCE9046006A1832 /* Driver+Operators+arity.swift in Sources */, - C89465841BC6C2BC0055219D /* RxActionSheetDelegateProxy.swift in Sources */, C89464F51BC6C2B00055219D /* AnyObserver.swift in Sources */, C89464D71BC6C2B00055219D /* Range.swift in Sources */, C84CC52E1BDC344100E06A64 /* ElementAt.swift in Sources */, @@ -2188,7 +2164,6 @@ C89464D51BC6C2B00055219D /* ObserveOnSerialDispatchQueue.swift in Sources */, 842A5A271C357F63003568D5 /* NSTextStorage+Rx.swift in Sources */, C843A08F1C1CE39900CBA4BD /* GitHubSearchRepositoriesAPI.swift in Sources */, - C894658E1BC6C2BC0055219D /* UIAlertView+Rx.swift in Sources */, C83974231BF77413004F02CC /* NSObject+Rx+KVORepresentable.swift in Sources */, C8297E461B6CF905000589EA /* Example.swift in Sources */, C89465081BC6C2B00055219D /* PublishSubject.swift in Sources */, @@ -2254,7 +2229,6 @@ C8297E521B6CF905000589EA /* Dependencies.swift in Sources */, C80DDED91BCE9046006A1832 /* ObservableConvertibleType+Driver.swift in Sources */, C89464E11BC6C2B00055219D /* Switch.swift in Sources */, - C89465851BC6C2BC0055219D /* RxAlertViewDelegateProxy.swift in Sources */, C89464A11BC6C2B00055219D /* ConnectableObservableType.swift in Sources */, C864BAD81C3332F10083833C /* DetailViewController.swift in Sources */, C89464C41BC6C2B00055219D /* ConnectableObservable.swift in Sources */, @@ -2262,7 +2236,6 @@ C8297E531B6CF905000589EA /* WikipediaAPI.swift in Sources */, C89465071BC6C2B00055219D /* BehaviorSubject.swift in Sources */, C89465911BC6C2BC0055219D /* UICollectionView+Rx.swift in Sources */, - C89465781BC6C2BC0055219D /* NSObject+Rx+CoreGraphics.swift in Sources */, C89464D01BC6C2B00055219D /* Map.swift in Sources */, C8297E541B6CF905000589EA /* AppDelegate.swift in Sources */, C894659D1BC6C2BC0055219D /* UITableView+Rx.swift in Sources */, @@ -2287,6 +2260,7 @@ C89464B41BC6C2B00055219D /* Event.swift in Sources */, C89465691BC6C2BC0055219D /* ControlProperty.swift in Sources */, C89465061BC6C2B00055219D /* SchedulerType.swift in Sources */, + C84015891C343595009D2E77 /* Platform.Linux.swift in Sources */, C8C4B4BF1C17724A00828BD5 /* _RXObjCRuntime.m in Sources */, C83D73E11C1DBC2A003DC470 /* ScheduledItem.swift in Sources */, C849EF871C3195180048AC4A /* GitHubSignupViewController2.swift in Sources */, @@ -2434,7 +2408,7 @@ isa = XCBuildConfiguration; buildSettings = { INFOPLIST_FILE = "RxExample/Info-iOS.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_LDFLAGS = "-objc_loadall"; OTHER_SWIFT_FLAGS = "$(inherited) -D RX_NO_MODULE"; @@ -2449,7 +2423,7 @@ isa = XCBuildConfiguration; buildSettings = { INFOPLIST_FILE = "RxExample/Info-iOS.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_LDFLAGS = "-objc_loadall"; OTHER_SWIFT_FLAGS = "$(inherited) -D RX_NO_MODULE"; @@ -2464,7 +2438,7 @@ isa = XCBuildConfiguration; buildSettings = { INFOPLIST_FILE = "RxExample/Info-iOS.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_LDFLAGS = "-objc_loadall"; OTHER_SWIFT_FLAGS = "$(inherited) -D RX_NO_MODULE"; diff --git a/RxExample/RxExample.xcodeproj/xcshareddata/xcschemes/RxExample-iOS-no-module.xcscheme b/RxExample/RxExample.xcodeproj/xcshareddata/xcschemes/RxExample-iOS-no-module.xcscheme index b81f5903..a3b59031 100644 --- a/RxExample/RxExample.xcodeproj/xcshareddata/xcschemes/RxExample-iOS-no-module.xcscheme +++ b/RxExample/RxExample.xcodeproj/xcshareddata/xcschemes/RxExample-iOS-no-module.xcscheme @@ -42,7 +42,7 @@ @@ -52,7 +52,7 @@ () skinCollectionViewDataSource(cvReloadDataSource) - self.sections + self.sections.asObservable() .bindTo(partialUpdatesCollectionViewOutlet.rx_itemsWithDataSource(cvReloadDataSource)) .addDisposableTo(disposeBag) #endif diff --git a/RxExample/RxExample/Examples/WikipediaImageSearch/Views/WikipediaSearchViewController.swift b/RxExample/RxExample/Examples/WikipediaImageSearch/Views/WikipediaSearchViewController.swift index a12dcafc..e3a1d8cb 100644 --- a/RxExample/RxExample/Examples/WikipediaImageSearch/Views/WikipediaSearchViewController.swift +++ b/RxExample/RxExample/Examples/WikipediaImageSearch/Views/WikipediaSearchViewController.swift @@ -43,7 +43,6 @@ class WikipediaSearchViewController: ViewController { resultsTableView.rowHeight = 194 let API = DefaultWikipediaAPI.sharedAPI - let scheduler = MainScheduler.instance searchBar.rx_text .asDriver() diff --git a/RxExample/RxExample/Services/Wireframe.swift b/RxExample/RxExample/Services/Wireframe.swift index 12ee2d61..387b0668 100644 --- a/RxExample/RxExample/Services/Wireframe.swift +++ b/RxExample/RxExample/Services/Wireframe.swift @@ -39,51 +39,40 @@ class DefaultWireframe: Wireframe { #endif } + #if os(iOS) + private static func rootViewController() -> UIViewController { + // cheating, I know + return UIApplication.sharedApplication().keyWindow!.rootViewController! + } + #endif + static func presentAlert(message: String) { #if os(iOS) - let alertView = UIAlertView( - title: "RxExample", - message: message, - delegate: nil, - cancelButtonTitle: "OK" - ) - - alertView.show() + let alertView = UIAlertController(title: "RxExample", message: message, preferredStyle: .Alert) + alertView.addAction(UIAlertAction(title: "OK", style: .Cancel) { _ in + }) + rootViewController().presentViewController(alertView, animated: true, completion: nil) #endif } func promptFor(message: String, cancelAction: Action, actions: [Action]) -> Observable { #if os(iOS) return Observable.create { observer in - let alertView = UIAlertView( - title: "RxExample", - message: message, - delegate: nil, - cancelButtonTitle: cancelAction.description - ) + let alertView = UIAlertController(title: "RxExample", message: message, preferredStyle: .Alert) + alertView.addAction(UIAlertAction(title: cancelAction.description, style: .Cancel) { _ in + observer.on(.Next(cancelAction)) + }) for action in actions { - alertView.addButtonWithTitle(action.description) + alertView.addAction(UIAlertAction(title: action.description, style: .Default) { _ in + observer.on(.Next(action)) + }) } - alertView.show() - - observer.on(.Next(alertView)) + DefaultWireframe.rootViewController().presentViewController(alertView, animated: true, completion: nil) return AnonymousDisposable { - alertView.dismissWithClickedButtonIndex(-1, animated: true) - } - }.flatMap { (alertView: UIAlertView) -> Observable in - return alertView.rx_didDismissWithButtonIndex.flatMap { index -> Observable in - if index < 0 { - return Observable.empty() - } - - if index == 0 { - return Observable.just(cancelAction) - } - - return Observable.just(actions[index - 1]) + alertView.dismissViewControllerAnimated(false, completion: nil) } } #elseif os(OSX) diff --git a/RxSwift/Disposables/ScopedDisposable.swift b/RxSwift/Disposables/ScopedDisposable.swift deleted file mode 100644 index 22afc90f..00000000 --- a/RxSwift/Disposables/ScopedDisposable.swift +++ /dev/null @@ -1,59 +0,0 @@ -// -// ScopedDisposable.swift -// RxSwift -// -// Created by Krunoslav Zaher on 5/2/15. -// Copyright © 2015 Krunoslav Zaher. All rights reserved. -// - -import Foundation - -extension Disposable { - /** - Returns `ScopedDispose` that will dispose `self` when execution exits current block. - - **If the reference to returned instance isn't named, it will be deallocated - immediately and subscription will be immediately disposed.** - - Example usage: - - let disposeOnExit = disposable.scopedDispose() - - - returns: `ScopedDisposable` that will dispose `self` on `deinit`. - */ - @available(*, deprecated=2.0.0, message="Please use `DisposeBag` and `addDisposableTo`") - public func scopedDispose() -> ScopedDisposable { - return ScopedDisposable(disposable: self) - } -} - - -/** -`ScopedDisposable` will dispose `disposable` on `deinit`. - -This returns ARC (RAII) like resource management to `RxSwift`. -*/ -@available(*, deprecated=2.0.0, message="Please use `DisposeBag` and `addDisposableTo`") -public class ScopedDisposable : DisposeBase { - private var _disposable: Disposable? - - /** - Initializes new instance with a single disposable. - - - parameter disposable: `Disposable` that will be disposed on scope exit. - */ - public init(disposable: Disposable) { - _disposable = disposable - } - - /** - This is intentionally private. - */ - func dispose() { - _disposable?.dispose() - } - - deinit { - dispose() - } -} \ No newline at end of file diff --git a/RxSwift/Observables/Implementations/CombineLatest+arity.swift b/RxSwift/Observables/Implementations/CombineLatest+arity.swift index b8205a65..8f7b608c 100644 --- a/RxSwift/Observables/Implementations/CombineLatest+arity.swift +++ b/RxSwift/Observables/Implementations/CombineLatest+arity.swift @@ -13,16 +13,6 @@ import Foundation // 2 -@available(*, deprecated=2.0.0, message="Please use `Observable.combineLatest`") -public func combineLatest - (source1: O1, _ source2: O2, resultSelector: (O1.E, O2.E) throws -> R) - -> Observable { - return Observable.combineLatest( - source1, source2, - resultSelector: resultSelector - ) -} - extension Observable { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. @@ -104,16 +94,6 @@ class CombineLatest2 : Producer { // 3 -@available(*, deprecated=2.0.0, message="Please use `Observable.combineLatest`") -public func combineLatest - (source1: O1, _ source2: O2, _ source3: O3, resultSelector: (O1.E, O2.E, O3.E) throws -> R) - -> Observable { - return Observable.combineLatest( - source1, source2, source3, - resultSelector: resultSelector - ) -} - extension Observable { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. @@ -202,16 +182,6 @@ class CombineLatest3 : Producer { // 4 -@available(*, deprecated=2.0.0, message="Please use `Observable.combineLatest`") -public func combineLatest - (source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, resultSelector: (O1.E, O2.E, O3.E, O4.E) throws -> R) - -> Observable { - return Observable.combineLatest( - source1, source2, source3, source4, - resultSelector: resultSelector - ) -} - extension Observable { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. @@ -307,16 +277,6 @@ class CombineLatest4 : Producer { // 5 -@available(*, deprecated=2.0.0, message="Please use `Observable.combineLatest`") -public func combineLatest - (source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E) throws -> R) - -> Observable { - return Observable.combineLatest( - source1, source2, source3, source4, source5, - resultSelector: resultSelector - ) -} - extension Observable { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. @@ -419,16 +379,6 @@ class CombineLatest5 : Producer { // 6 -@available(*, deprecated=2.0.0, message="Please use `Observable.combineLatest`") -public func combineLatest - (source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E) throws -> R) - -> Observable { - return Observable.combineLatest( - source1, source2, source3, source4, source5, source6, - resultSelector: resultSelector - ) -} - extension Observable { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. @@ -538,16 +488,6 @@ class CombineLatest6 : Producer { // 7 -@available(*, deprecated=2.0.0, message="Please use `Observable.combineLatest`") -public func combineLatest - (source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E) throws -> R) - -> Observable { - return Observable.combineLatest( - source1, source2, source3, source4, source5, source6, source7, - resultSelector: resultSelector - ) -} - extension Observable { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. @@ -664,16 +604,6 @@ class CombineLatest7 : Producer { // 8 -@available(*, deprecated=2.0.0, message="Please use `Observable.combineLatest`") -public func combineLatest - (source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, _ source8: O8, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E, O8.E) throws -> R) - -> Observable { - return Observable.combineLatest( - source1, source2, source3, source4, source5, source6, source7, source8, - resultSelector: resultSelector - ) -} - extension Observable { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. diff --git a/RxSwift/Observables/Implementations/CombineLatest+arity.tt b/RxSwift/Observables/Implementations/CombineLatest+arity.tt index 300490aa..ef8b3a83 100644 --- a/RxSwift/Observables/Implementations/CombineLatest+arity.tt +++ b/RxSwift/Observables/Implementations/CombineLatest+arity.tt @@ -12,16 +12,6 @@ import Foundation // <%= i %> -@available(*, deprecated=2.0.0, message="Please use `Observable.combineLatest`") -public func combineLatest<<%= (Array(1...i).map { "O\($0): ObservableType" }).joinWithSeparator(", ") %>, R> - (<%= (Array(1...i).map { "source\($0): O\($0)" }).joinWithSeparator(", _ ") %>, resultSelector: (<%= (Array(1...i).map { "O\($0).E" }).joinWithSeparator(", ") %>) throws -> R) - -> Observable { - return Observable.combineLatest( - <%= (Array(1...i).map { "source\($0)" }).joinWithSeparator(", ") %>, - resultSelector: resultSelector - ) -} - extension Observable { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. diff --git a/RxSwift/Observables/Implementations/Zip+arity.swift b/RxSwift/Observables/Implementations/Zip+arity.swift index 28291fe9..36679bf5 100644 --- a/RxSwift/Observables/Implementations/Zip+arity.swift +++ b/RxSwift/Observables/Implementations/Zip+arity.swift @@ -13,16 +13,6 @@ import Foundation // 2 -@available(*, deprecated=2.0.0, message="Please use `Observable.zip`") -public func zip -(source1: O1, _ source2: O2, resultSelector: (O1.E, O2.E) throws -> R) - -> Observable { - return Observable.zip( - source1, source2, - resultSelector: resultSelector - ) -} - extension Observable { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. @@ -116,16 +106,6 @@ class Zip2 : Producer { // 3 -@available(*, deprecated=2.0.0, message="Please use `Observable.zip`") -public func zip -(source1: O1, _ source2: O2, _ source3: O3, resultSelector: (O1.E, O2.E, O3.E) throws -> R) - -> Observable { - return Observable.zip( - source1, source2, source3, - resultSelector: resultSelector - ) -} - extension Observable { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. @@ -227,16 +207,6 @@ class Zip3 : Producer { // 4 -@available(*, deprecated=2.0.0, message="Please use `Observable.zip`") -public func zip -(source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, resultSelector: (O1.E, O2.E, O3.E, O4.E) throws -> R) - -> Observable { - return Observable.zip( - source1, source2, source3, source4, - resultSelector: resultSelector - ) -} - extension Observable { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. @@ -346,16 +316,6 @@ class Zip4 : Producer { // 5 -@available(*, deprecated=2.0.0, message="Please use `Observable.zip`") -public func zip -(source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E) throws -> R) - -> Observable { - return Observable.zip( - source1, source2, source3, source4, source5, - resultSelector: resultSelector - ) -} - extension Observable { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. @@ -473,16 +433,6 @@ class Zip5 : Producer { // 6 -@available(*, deprecated=2.0.0, message="Please use `Observable.zip`") -public func zip -(source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E) throws -> R) - -> Observable { - return Observable.zip( - source1, source2, source3, source4, source5, source6, - resultSelector: resultSelector - ) -} - extension Observable { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. @@ -608,16 +558,6 @@ class Zip6 : Producer { // 7 -@available(*, deprecated=2.0.0, message="Please use `Observable.zip`") -public func zip -(source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E) throws -> R) - -> Observable { - return Observable.zip( - source1, source2, source3, source4, source5, source6, source7, - resultSelector: resultSelector - ) -} - extension Observable { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. @@ -751,16 +691,6 @@ class Zip7 : Producer { // 8 -@available(*, deprecated=2.0.0, message="Please use `Observable.zip`") -public func zip -(source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, _ source8: O8, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E, O8.E) throws -> R) - -> Observable { - return Observable.zip( - source1, source2, source3, source4, source5, source6, source7, source8, - resultSelector: resultSelector - ) -} - extension Observable { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. diff --git a/RxSwift/Observables/Implementations/Zip+arity.tt b/RxSwift/Observables/Implementations/Zip+arity.tt index 0f58b7ed..d2e80acb 100644 --- a/RxSwift/Observables/Implementations/Zip+arity.tt +++ b/RxSwift/Observables/Implementations/Zip+arity.tt @@ -12,16 +12,6 @@ import Foundation // <%= i %> -@available(*, deprecated=2.0.0, message="Please use `Observable.zip`") -public func zip<<%= (Array(1...i).map { "O\($0): ObservableType" }).joinWithSeparator(", ") %>, R> -(<%= (Array(1...i).map { "source\($0): O\($0)" }).joinWithSeparator(", _ ") %>, resultSelector: (<%= (Array(1...i).map { "O\($0).E" }).joinWithSeparator(", ") %>) throws -> R) - -> Observable { - return Observable.zip( - <%= (Array(1...i).map { "source\($0)" }).joinWithSeparator(", ") %>, - resultSelector: resultSelector - ) -} - extension Observable { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. diff --git a/RxSwift/Observables/Observable+Aggregate.swift b/RxSwift/Observables/Observable+Aggregate.swift index a8449f48..0acdce67 100644 --- a/RxSwift/Observables/Observable+Aggregate.swift +++ b/RxSwift/Observables/Observable+Aggregate.swift @@ -30,12 +30,6 @@ extension ObservableType { return Reduce(source: self.asObservable(), seed: seed, accumulator: accumulator, mapResult: mapResult) } - @available(*, deprecated=2.0.0, message="Please use version with named accumulator parameter.") - public func reduce(seed: A, _ accumulator: (A, E) throws -> A, mapResult: (A) throws -> R) - -> Observable { - return Reduce(source: self.asObservable(), seed: seed, accumulator: accumulator, mapResult: mapResult) - } - /** Applies an `accumulator` function over an observable sequence, returning the result of the aggregation as a single element in the result sequence. The specified `seed` value is used as the initial accumulator value. diff --git a/RxSwift/Observables/Observable+Creation.swift b/RxSwift/Observables/Observable+Creation.swift index 3012d310..ff57d38b 100644 --- a/RxSwift/Observables/Observable+Creation.swift +++ b/RxSwift/Observables/Observable+Creation.swift @@ -8,66 +8,6 @@ import Foundation -@available(*, deprecated=2.0.0, message="Please use `Observable.create`") -public func create(subscribe: (AnyObserver) -> Disposable) -> Observable { - return Observable.create(subscribe) -} - -@available(*, deprecated=2.0.0, message="Please use `Observable.empty`") -public func empty(type: E.Type = E.self) -> Observable { - return Observable.empty() -} - -@available(*, deprecated=2.0.0, message="Please use `Observable.never`") -public func never(type: E.Type = E.self) -> Observable { - return Observable.never() -} - -@available(*, deprecated=2.0.0, message="Please use `Observable.just`") -public func just(element: E) -> Observable { - return Observable.just(element) -} - -@available(*, deprecated=2.0.0, message="Please use `Observable.just`") -public func just(element: E, scheduler: ImmediateSchedulerType) -> Observable { - return Observable.just(element, scheduler: scheduler) -} - -@available(*, deprecated=2.0.0, message="Please use `Observable.error`") -public func failWith(error: ErrorType, _ type: E.Type = E.self) -> Observable { - return Observable.error(error) -} - -@available(*, deprecated=2.0.0, message="Please use `Observable.of`") -public func sequenceOf(elements: E ..., scheduler: ImmediateSchedulerType? = nil) -> Observable { - return Sequence(elements: elements, scheduler: scheduler) -} - -@available(*, deprecated=2.0.0, message="Please use `Observable.deferred`") -public func deferred(observableFactory: () throws -> Observable) -> Observable { - return Observable.deferred(observableFactory) -} - -@available(*, deprecated=2.0.0, message="Please use `Observable.generate` with named initialState parameter.") -public func generate(initialState: E, condition: E throws -> Bool, scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance, iterate: E throws -> E) -> Observable { - return Observable.generate(initialState: initialState, condition: condition, scheduler: scheduler, iterate: iterate) -} - -@available(*, deprecated=2.0.0, message="Please use `Observable.range` with named start, count, scheduler parameters.") -public func range(start: Int, _ count: Int, _ scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance) -> Observable { - return Observable.range(start: start, count: count, scheduler: scheduler) -} - -@available(*, deprecated=2.0.0, message="Please use `Observable.repeatElement` with named scheduler parameter.") -public func repeatElement(element: E, _ scheduler: ImmediateSchedulerType) -> Observable { - return Observable.repeatElement(element, scheduler: scheduler) -} - -@available(*, deprecated=2.0.0, message="Please use `Observable.using`.") -public func using(resourceFactory: () throws -> R, observableFactory: R throws -> Observable) -> Observable { - return Observable.using(resourceFactory, observableFactory: observableFactory) -} - extension Observable { // MARK: create @@ -256,19 +196,6 @@ extension SequenceType { - seealso: [from operator on reactivex.io](http://reactivex.io/documentation/operators/from.html) - - returns: The observable sequence whose elements are pulled from the given enumerable sequence. - */ - @warn_unused_result(message="http://git.io/rxs.uo") - @available(*, deprecated=2.0.0, message="Please use toObservable extension.") - public func asObservable() -> Observable { - return Sequence(elements: Array(self), scheduler: nil) - } - - /** - Converts a sequence to an observable sequence. - - - seealso: [from operator on reactivex.io](http://reactivex.io/documentation/operators/from.html) - - returns: The observable sequence whose elements are pulled from the given enumerable sequence. */ @warn_unused_result(message="http://git.io/rxs.uo") diff --git a/RxSwift/Observables/Observable+Multiple.swift b/RxSwift/Observables/Observable+Multiple.swift index 1b6b38c2..99ee3579 100644 --- a/RxSwift/Observables/Observable+Multiple.swift +++ b/RxSwift/Observables/Observable+Multiple.swift @@ -10,7 +10,7 @@ import Foundation // MARK: combineLatest -extension CollectionType where Generator.Element : ObservableConvertibleType { +extension CollectionType where Generator.Element : ObservableType { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever any of the observable sequences produces an element. @@ -28,7 +28,7 @@ extension CollectionType where Generator.Element : ObservableConvertibleType { // MARK: zip -extension CollectionType where Generator.Element : ObservableConvertibleType { +extension CollectionType where Generator.Element : ObservableType { /** Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences have produced an element at a corresponding index. @@ -83,7 +83,7 @@ extension ObservableType { } } -extension SequenceType where Generator.Element : ObservableConvertibleType { +extension SequenceType where Generator.Element : ObservableType { /** Concatenates all observable sequences in the given sequence, as long as the previous observable sequence terminated successfully. @@ -105,7 +105,7 @@ extension SequenceType where Generator.Element : ObservableConvertibleType { } } -extension CollectionType where Generator.Element : ObservableConvertibleType { +extension CollectionType where Generator.Element : ObservableType { /** Concatenates all observable sequences in the given sequence, as long as the previous observable sequence terminated successfully. @@ -208,7 +208,7 @@ extension ObservableType { } -extension SequenceType where Generator.Element : ObservableConvertibleType { +extension SequenceType where Generator.Element : ObservableType { /** Continues an observable sequence that is terminated by an error with the next observable sequence. @@ -281,7 +281,7 @@ extension ObservableType { } } -extension SequenceType where Generator.Element : ObservableConvertibleType { +extension SequenceType where Generator.Element : ObservableType { /** Propagates the observable sequence that reacts first. diff --git a/RxSwift/Observables/Observable+Time.swift b/RxSwift/Observables/Observable+Time.swift index 8d859f23..31c95cd4 100644 --- a/RxSwift/Observables/Observable+Time.swift +++ b/RxSwift/Observables/Observable+Time.swift @@ -28,13 +28,6 @@ extension ObservableType { return Throttle(source: self.asObservable(), dueTime: dueTime, scheduler: scheduler) } - @available(*, deprecated=2.0.0, message="Please use version with named scheduler parameter.") - public func throttle(dueTime: RxTimeInterval, _ scheduler: SchedulerType) - -> Observable { - return Throttle(source: self.asObservable(), dueTime: dueTime, scheduler: scheduler) - } - - /** Ignores elements from an observable sequence which are followed by another element within a specified relative time duration, using the specified scheduler to run throttling timers. @@ -51,12 +44,6 @@ extension ObservableType { -> Observable { return Throttle(source: self.asObservable(), dueTime: dueTime, scheduler: scheduler) } - - @available(*, deprecated=2.0.0, message="Please use version with named scheduler parameter.") - public func debounce(dueTime: RxTimeInterval, _ scheduler: SchedulerType) - -> Observable { - return Throttle(source: self.asObservable(), dueTime: dueTime, scheduler: scheduler) - } } // MARK: sample @@ -80,23 +67,6 @@ extension ObservableType { -> Observable { return Sample(source: self.asObservable(), sampler: sampler.asObservable(), onlyNew: true) } - - @available(*, deprecated=2.0.0, message="Please use `withLatestFrom`.") - public func sampleLatest(sampler: O) - -> Observable { - return Sample(source: self.asObservable(), sampler: sampler.asObservable(), onlyNew: false) - } -} - -// MARK: interval - -@available(*, deprecated=2.0.0, message="Please use version `Observable.interval`.") -public func interval(period: RxTimeInterval, _ scheduler: SchedulerType) - -> Observable { - return Timer(dueTime: period, - period: period, - scheduler: scheduler - ) } extension Observable where Element : SignedIntegerType { @@ -121,16 +91,6 @@ extension Observable where Element : SignedIntegerType { // MARK: timer -@available(*, deprecated=2.0.0, message="Please use version `Observable.timer`.") -public func timer(dueTime: RxTimeInterval, _ period: RxTimeInterval, _ scheduler: SchedulerType) - -> Observable { - return Timer( - dueTime: dueTime, - period: period, - scheduler: scheduler - ) -} - extension Observable where Element: SignedIntegerType { /** Returns an observable sequence that periodically produces a value after the specified initial relative due time has elapsed, using the specified scheduler to run timers. @@ -153,16 +113,6 @@ extension Observable where Element: SignedIntegerType { } } -@available(*, deprecated=2.0.0, message="Please use version with named scheduler parameter.") -public func timer(dueTime: RxTimeInterval, _ scheduler: SchedulerType) - -> Observable { - return Timer( - dueTime: dueTime, - period: nil, - scheduler: scheduler - ) -} - extension Observable where Element: SignedIntegerType { /** Returns an observable sequence that produces a single value at the specified absolute due time, using the specified scheduler to run the timer. @@ -202,12 +152,6 @@ extension ObservableType { -> Observable { return TakeTime(source: self.asObservable(), duration: duration, scheduler: scheduler) } - - @available(*, deprecated=2.0.0, message="Please use version with named scheduler parameter.") - public func take(duration: RxTimeInterval, _ scheduler: SchedulerType) - -> Observable { - return TakeTime(source: self.asObservable(), duration: duration, scheduler: scheduler) - } } // MARK: skip @@ -228,12 +172,6 @@ extension ObservableType { -> Observable { return SkipTime(source: self.asObservable(), duration: duration, scheduler: scheduler) } - - @available(*, deprecated=2.0.0, message="Please use version with named scheduler parameter.") - public func skip(duration: RxTimeInterval, _ scheduler: SchedulerType) - -> Observable { - return SkipTime(source: self.asObservable(), duration: duration, scheduler: scheduler) - } } // MARK: ignoreElements @@ -274,12 +212,6 @@ extension ObservableType { -> Observable { return DelaySubscription(source: self.asObservable(), dueTime: dueTime, scheduler: scheduler) } - - @available(*, deprecated=2.0.0, message="Please use version with named scheduler parameter.") - public func delaySubscription(dueTime: RxTimeInterval, _ scheduler: SchedulerType) - -> Observable { - return DelaySubscription(source: self.asObservable(), dueTime: dueTime, scheduler: scheduler) - } } // MARK: buffer @@ -345,12 +277,6 @@ extension ObservableType { return Timeout(source: self.asObservable(), dueTime: dueTime, other: Observable.error(RxError.Timeout), scheduler: scheduler) } - @available(*, deprecated=2.0.0, message="Please use version with named scheduler parameter.") - public func timeout(dueTime: RxTimeInterval, _ scheduler: SchedulerType) - -> Observable { - return Timeout(source: self.asObservable(), dueTime: dueTime, other: Observable.error(RxError.Timeout), scheduler: scheduler) - } - /** Applies a timeout policy for each element in the observable sequence, using the specified scheduler to run timeout timers. If the next element isn't received within the specified timeout duration starting from its predecessor, the other observable sequence is used to produce future messages from that point on. @@ -366,10 +292,4 @@ extension ObservableType { -> Observable { return Timeout(source: self.asObservable(), dueTime: dueTime, other: other.asObservable(), scheduler: scheduler) } - - @available(*, deprecated=2.0.0, message="Please use version with named scheduler parameter.") - public func timeout(dueTime: RxTimeInterval, other: O, _ scheduler: SchedulerType) - -> Observable { - return Timeout(source: self.asObservable(), dueTime: dueTime, other: other.asObservable(), scheduler: scheduler) - } } diff --git a/RxSwift/ObserverType+Extensions.swift b/RxSwift/ObserverType+Extensions.swift deleted file mode 100644 index 8ca24923..00000000 --- a/RxSwift/ObserverType+Extensions.swift +++ /dev/null @@ -1,29 +0,0 @@ -// -// ObserverType+Extensions.swift -// RxSwift -// -// Created by Krunoslav Zaher on 6/13/15. -// Copyright © 2015 Krunoslav Zaher. All rights reserved. -// - -import Foundation - -@available(*, deprecated=2.0.0, message="Please use observer.on(event)") -public func send(observer: O, _ event: Event) { - observer.on(event) -} - -@available(*, deprecated=2.0.0, message="Please use observer.on(.Next(element))") -public func sendNext(observer: O, _ element: O.E) { - observer.on(.Next(element)) -} - -@available(*, deprecated=2.0.0, message="Please use observer.on(.Error(error))") -public func sendError(observer: O, _ error: ErrorType) { - observer.on(.Error(error)) -} - -@available(*, deprecated=2.0.0, message="Please use observer.on(.Completed)") -public func sendCompleted(observer: O) { - observer.on(.Completed) -} diff --git a/RxSwift/Platform/Darwin.Platform.swift b/RxSwift/Platform/Platform.Darwin.swift similarity index 96% rename from RxSwift/Platform/Darwin.Platform.swift rename to RxSwift/Platform/Platform.Darwin.swift index a13f3f31..4f1cf449 100644 --- a/RxSwift/Platform/Darwin.Platform.swift +++ b/RxSwift/Platform/Platform.Darwin.swift @@ -1,6 +1,6 @@ // -// Darwin.Platform.swift -// Benchmark +// Platform.Darwin.swift +// Rx // // Created by Krunoslav Zaher on 12/29/15. // Copyright © 2015 Krunoslav Zaher. All rights reserved. diff --git a/RxSwift/Platform/Linux.Platform.swift b/RxSwift/Platform/Platform.Linux.swift similarity index 95% rename from RxSwift/Platform/Linux.Platform.swift rename to RxSwift/Platform/Platform.Linux.swift index 8b43154f..f5b93681 100644 --- a/RxSwift/Platform/Linux.Platform.swift +++ b/RxSwift/Platform/Platform.Linux.swift @@ -1,6 +1,6 @@ // -// Linux.Platform.swift -// Benchmark +// Platform.Linux.swift +// Rx // // Created by Krunoslav Zaher on 12/29/15. // Copyright © 2015 Krunoslav Zaher. All rights reserved. @@ -136,6 +136,7 @@ public typealias dispatch_object_t = Int public typealias dispatch_block_t = () -> () public typealias dispatch_queue_attr_t = Int + public typealias qos_class_t = Int public let DISPATCH_QUEUE_SERIAL = 0 @@ -143,6 +144,12 @@ public let DISPATCH_QUEUE_PRIORITY_DEFAULT = 2 public let DISPATCH_QUEUE_PRIORITY_LOW = 3 + public let QOS_CLASS_USER_INTERACTIVE = 0 + public let QOS_CLASS_USER_INITIATED = 1 + public let QOS_CLASS_DEFAULT = 2 + public let QOS_CLASS_UTILITY = 3 + public let QOS_CLASS_BACKGROUND = 4 + public let DISPATCH_SOURCE_TYPE_TIMER = 0 public let DISPATCH_TIME_FOREVER = 1 as UInt64 public let NSEC_PER_SEC = 1 diff --git a/RxSwift/SchedulerType.swift b/RxSwift/SchedulerType.swift index 58872642..eceea3e0 100644 --- a/RxSwift/SchedulerType.swift +++ b/RxSwift/SchedulerType.swift @@ -9,12 +9,12 @@ import Foundation /** -Type that represents time interval in the context of this scheduler. +Type that represents time interval in the context of RxSwift. */ public typealias RxTimeInterval = NSTimeInterval /** -Type that represents absolute time in the context of this scheduler. +Type that represents absolute time in the context of RxSwift. */ public typealias RxTime = NSDate diff --git a/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift b/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift index 7efb71c2..2494d3af 100644 --- a/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift +++ b/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift @@ -38,22 +38,28 @@ public class ConcurrentDispatchQueueScheduler: SchedulerType { } /** - Convenience init for scheduler that wraps one of the global concurrent dispatch queues. - - - parameter globalConcurrentQueuePriority: Target global dispatch queue. - */ - public convenience init(globalConcurrentQueuePriority: DispatchQueueSchedulerPriority) { - var priority: Int = 0 - switch globalConcurrentQueuePriority { - case .High: - priority = DISPATCH_QUEUE_PRIORITY_HIGH + Convenience init for scheduler that wraps one of the global concurrent dispatch queues. + + - parameter globalConcurrentQueueQOS: Target global dispatch queue, by quality of service class. + */ + @available(iOS 8, OSX 10.10, *) + public convenience init(globalConcurrentQueueQOS: DispatchQueueSchedulerQOS) { + let priority: qos_class_t + switch globalConcurrentQueueQOS { + case .UserInteractive: + priority = QOS_CLASS_USER_INTERACTIVE + case .UserInitiated: + priority = QOS_CLASS_USER_INITIATED case .Default: - priority = DISPATCH_QUEUE_PRIORITY_DEFAULT - case .Low: - priority = DISPATCH_QUEUE_PRIORITY_LOW + priority = QOS_CLASS_DEFAULT + case .Utility: + priority = QOS_CLASS_UTILITY + case .Background: + priority = QOS_CLASS_BACKGROUND } self.init(queue: dispatch_get_global_queue(priority, UInt(0))) } + class func convertTimeIntervalToDispatchInterval(timeInterval: NSTimeInterval) -> Int64 { return Int64(timeInterval * Double(NSEC_PER_SEC)) diff --git a/RxSwift/Schedulers/ConcurrentMainScheduler.swift b/RxSwift/Schedulers/ConcurrentMainScheduler.swift index 78a21e26..f1a25547 100644 --- a/RxSwift/Schedulers/ConcurrentMainScheduler.swift +++ b/RxSwift/Schedulers/ConcurrentMainScheduler.swift @@ -35,9 +35,6 @@ public final class ConcurrentMainScheduler : SchedulerType { _mainScheduler = mainScheduler } - @available(*, deprecated=2.0.0, message="Please use `ConcurrentMainScheduler.instance`") - public static let sharedInstance = ConcurrentMainScheduler(mainScheduler: MainScheduler.instance) - /** Singleton instance of `ConcurrentMainScheduler` */ diff --git a/RxSwift/Schedulers/DispatchQueueSchedulerPriority.swift b/RxSwift/Schedulers/DispatchQueueSchedulerPriority.swift deleted file mode 100644 index 63d4a14f..00000000 --- a/RxSwift/Schedulers/DispatchQueueSchedulerPriority.swift +++ /dev/null @@ -1,30 +0,0 @@ -// -// DispatchQueueSchedulerPriority.swift -// RxSwift -// -// Created by Krunoslav Zaher on 7/5/15. -// Copyright © 2015 Krunoslav Zaher. All rights reserved. -// - -import Foundation - -/** -Identifies one of the global concurrent dispatch queues with specified priority. -*/ -public enum DispatchQueueSchedulerPriority { - - /** - Identifies global dispatch queue with `DISPATCH_QUEUE_PRIORITY_HIGH` - */ - case High - - /** - Identifies global dispatch queue with `DISPATCH_QUEUE_PRIORITY_DEFAULT` - */ - case Default - - /** - Identifies global dispatch queue with `DISPATCH_QUEUE_PRIORITY_LOW` - */ - case Low -} diff --git a/RxSwift/Schedulers/DispatchQueueSchedulerQOS.swift b/RxSwift/Schedulers/DispatchQueueSchedulerQOS.swift new file mode 100644 index 00000000..e9224acf --- /dev/null +++ b/RxSwift/Schedulers/DispatchQueueSchedulerQOS.swift @@ -0,0 +1,40 @@ +// +// DispatchQueueSchedulerQOS.swift +// RxSwift +// +// Created by John C. "Hsoi" Daub on 12/30/15. +// Copyright © 2015 Krunoslav Zaher. All rights reserved. +// + +import Foundation + +/** +Identifies one of the global concurrent dispatch queues with specified quality of service class. +*/ +public enum DispatchQueueSchedulerQOS { + + /** + Identifies global dispatch queue with `QOS_CLASS_USER_INTERACTIVE` + */ + case UserInteractive + + /** + Identifies global dispatch queue with `QOS_CLASS_USER_INITIATED` + */ + case UserInitiated + + /** + Identifies global dispatch queue with `QOS_CLASS_DEFAULT` + */ + case Default + + /** + Identifies global dispatch queue with `QOS_CLASS_UTILITY` + */ + case Utility + + /** + Identifies global dispatch queue with `QOS_CLASS_BACKGROUND` + */ + case Background +} diff --git a/RxSwift/Schedulers/HistoricalScheduler.swift b/RxSwift/Schedulers/HistoricalScheduler.swift index 0e19bc12..bcb15b50 100644 --- a/RxSwift/Schedulers/HistoricalScheduler.swift +++ b/RxSwift/Schedulers/HistoricalScheduler.swift @@ -8,10 +8,17 @@ import Foundation +/** + Provides a virtual time scheduler that uses `NSDate` for absolute time and `NSTimeInterval` for relative time. +*/ public class HistoricalScheduler : VirtualTimeScheduler { + /** + Creates a new historical scheduler with initial clock value. + + - parameter initialClock: Initial value for virtual clock. + */ public init(initialClock: RxTime = NSDate(timeIntervalSince1970: 0)) { - //print(initialClock) super.init(initialClock: initialClock, converter: HistoricalSchedulerTimeConverter()) } diff --git a/RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift b/RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift index b93ed3b4..b16b8a2b 100644 --- a/RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift +++ b/RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift @@ -8,30 +8,68 @@ import Foundation +/** + Converts historial virtual time into real time. + + Since historical virtual time is also measured in `NSDate`, this converter is identity function. + */ public struct HistoricalSchedulerTimeConverter : VirtualTimeConverterType { + /** + Virtual time unit used that represents ticks of virtual clock. + */ public typealias VirtualTimeUnit = RxTime + + /** + Virtual time unit used to represent differences of virtual times. + */ public typealias VirtualTimeIntervalUnit = RxTimeInterval + /** + Returns identical value of argument passed because historical virtual time is equal to real time, just + decoupled from local machine clock. + */ public func convertFromVirtualTime(virtualTime: VirtualTimeUnit) -> RxTime { return virtualTime } + /** + Returns identical value of argument passed because historical virtual time is equal to real time, just + decoupled from local machine clock. + */ public func convertToVirtualTime(time: RxTime) -> VirtualTimeUnit { return time } + /** + Returns identical value of argument passed because historical virtual time is equal to real time, just + decoupled from local machine clock. + */ public func convertFromVirtualTimeInterval(virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval { return virtualTimeInterval } + /** + Returns identical value of argument passed because historical virtual time is equal to real time, just + decoupled from local machine clock. + */ public func convertToVirtualTimeInterval(timeInterval: RxTimeInterval) -> VirtualTimeIntervalUnit { return timeInterval } - public func addVirtualTimeAndTimeInterval(time time: VirtualTimeUnit, timeInterval: VirtualTimeIntervalUnit) -> VirtualTimeUnit { - return time.dateByAddingTimeInterval(timeInterval) + /** + Offsets `NSDate` by time interval. + + - parameter time: Time. + - parameter timeInterval: Time interval offset. + - returns: Time offsetted by time interval. + */ + public func offsetVirtualTime(time time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit { + return time.dateByAddingTimeInterval(offset) } + /** + Compares two `NSDate`s. + */ public func compareVirtualTime(lhs: VirtualTimeUnit, _ rhs: VirtualTimeUnit) -> VirtualTimeComparison { switch lhs.compare(rhs) { case .OrderedAscending: diff --git a/RxSwift/Schedulers/MainScheduler.swift b/RxSwift/Schedulers/MainScheduler.swift index 4648e3b9..7fd7d216 100644 --- a/RxSwift/Schedulers/MainScheduler.swift +++ b/RxSwift/Schedulers/MainScheduler.swift @@ -29,12 +29,6 @@ public final class MainScheduler : SerialDispatchQueueScheduler { super.init(serialQueue: _mainQueue) } - /** - Singleton instance of `MainScheduler` - */ - @available(*, deprecated=2.0.0, message="Please use `MainScheduler.instance`") - public static let sharedInstance = MainScheduler() - /** Singleton instance of `MainScheduler` */ diff --git a/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift b/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift index c50014ae..89a00ca8 100644 --- a/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift +++ b/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift @@ -74,24 +74,29 @@ public class SerialDispatchQueueScheduler: SchedulerType { } /** - Constructs new `SerialDispatchQueueScheduler` that wraps on of the global concurrent dispatch queues. - - - parameter globalConcurrentQueuePriority: Identifier for global dispatch queue with specified priority. - - parameter internalSerialQueueName: Custom name for internal serial dispatch queue proxy. - */ - public convenience init(globalConcurrentQueuePriority: DispatchQueueSchedulerPriority, internalSerialQueueName: String = "rx.global_dispatch_queue.serial") { - var priority: Int = 0 - switch globalConcurrentQueuePriority { - case .High: - priority = DISPATCH_QUEUE_PRIORITY_HIGH + Constructs new `SerialDispatchQueueScheduler` that wraps on of the global concurrent dispatch queues. + + - parameter globalConcurrentQueueQOS: Identifier for global dispatch queue with specified quality of service class. + - parameter internalSerialQueueName: Custom name for internal serial dispatch queue proxy. + */ + @available(iOS 8, OSX 10.10, *) + public convenience init(globalConcurrentQueueQOS: DispatchQueueSchedulerQOS, internalSerialQueueName: String = "rx.global_dispatch_queue.serial") { + let priority: qos_class_t + switch globalConcurrentQueueQOS { + case .UserInteractive: + priority = QOS_CLASS_USER_INTERACTIVE + case .UserInitiated: + priority = QOS_CLASS_USER_INITIATED case .Default: - priority = DISPATCH_QUEUE_PRIORITY_DEFAULT - case .Low: - priority = DISPATCH_QUEUE_PRIORITY_LOW + priority = QOS_CLASS_DEFAULT + case .Utility: + priority = QOS_CLASS_UTILITY + case .Background: + priority = QOS_CLASS_BACKGROUND } self.init(queue: dispatch_get_global_queue(priority, UInt(0)), internalSerialQueueName: internalSerialQueueName) } - + class func convertTimeIntervalToDispatchInterval(timeInterval: NSTimeInterval) -> Int64 { return Int64(timeInterval * Double(NSEC_PER_SEC)) } diff --git a/RxSwift/Schedulers/VirtualTimeConverterType.swift b/RxSwift/Schedulers/VirtualTimeConverterType.swift index 18ceab00..1af28975 100644 --- a/RxSwift/Schedulers/VirtualTimeConverterType.swift +++ b/RxSwift/Schedulers/VirtualTimeConverterType.swift @@ -8,17 +8,60 @@ import Foundation +/** +Parametrization for virtual time used by `VirtualTimeScheduler`s. +*/ public protocol VirtualTimeConverterType { + /** + Virtual time unit used that represents ticks of virtual clock. + */ typealias VirtualTimeUnit + + /** + Virtual time unit used to represent differences of virtual times. + */ typealias VirtualTimeIntervalUnit + /** + Converts virtual time to real time. + + - parameter virtualTime: Virtual time to convert to `NSDate`. + - returns: `NSDate` corresponding to virtual time. + */ func convertFromVirtualTime(virtualTime: VirtualTimeUnit) -> RxTime + + /** + Converts real time to virtual time. + + - parameter time: `NSDate` to convert to virtual time. + - returns: Virtual time corresponding to `NSDate`. + */ func convertToVirtualTime(time: RxTime) -> VirtualTimeUnit + /** + Converts from virtual time interval to `NSTimeInterval`. + + - parameter virtualTimeInterval: Virtual time interval to convert to `NSTimeInterval`. + - returns: `NSTimeInterval` corresponding to virtual time interval. + */ func convertFromVirtualTimeInterval(virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval + + /** + Converts from virtual time interval to `NSTimeInterval`. + + - parameter timeInterval: `NSTimeInterval` to convert to virtual time interval. + - returns: Virtual time interval corresponding to time interval. + */ func convertToVirtualTimeInterval(timeInterval: RxTimeInterval) -> VirtualTimeIntervalUnit - func addVirtualTimeAndTimeInterval(time time: VirtualTimeUnit, timeInterval: VirtualTimeIntervalUnit) -> VirtualTimeUnit + /** + Offsets virtual time by virtual time interval. + + - parameter time: Virtual time. + - parameter offset: Virtual time interval. + - returns: Time corresponding to time offsetted by virtual time interval. + */ + func offsetVirtualTime(time time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit /** This is aditional abstraction because `NSDate` is unfortunately not comparable. @@ -46,7 +89,9 @@ public enum VirtualTimeComparison { lhs > rhs. */ case GreaterThan +} +extension VirtualTimeComparison { /** lhs < rhs. */ diff --git a/RxSwift/Schedulers/VirtualTimeScheduler.swift b/RxSwift/Schedulers/VirtualTimeScheduler.swift index 06fc92fd..03b542ae 100644 --- a/RxSwift/Schedulers/VirtualTimeScheduler.swift +++ b/RxSwift/Schedulers/VirtualTimeScheduler.swift @@ -102,7 +102,7 @@ public class VirtualTimeScheduler - returns: The disposable object used to cancel the scheduled action (best effort). */ public func scheduleRelativeVirtual(state: StateType, dueTime: VirtualTimeInterval, action: StateType -> Disposable) -> Disposable { - let time = _converter.addVirtualTimeAndTimeInterval(time: self.clock, timeInterval: dueTime) + let time = _converter.offsetVirtualTime(time: self.clock, offset: dueTime) return scheduleAbsoluteVirtual(state, time: time, action: action) } @@ -220,7 +220,7 @@ public class VirtualTimeScheduler public func sleep(virtualInterval: VirtualTimeInterval) { MainScheduler.ensureExecutingOnScheduler() - let sleepTo = _converter.addVirtualTimeAndTimeInterval(time: clock, timeInterval: virtualInterval) + let sleepTo = _converter.offsetVirtualTime(time: clock, offset: virtualInterval) if _converter.compareVirtualTime(sleepTo, clock).lessThen { fatalError("Can't sleep to past.") } diff --git a/RxSwift/Subjects/Variable.swift b/RxSwift/Subjects/Variable.swift index 4409eaa6..1bab2422 100644 --- a/RxSwift/Subjects/Variable.swift +++ b/RxSwift/Subjects/Variable.swift @@ -14,9 +14,7 @@ Variable is a wrapper for `BehaviorSubject`. Unlike `BehaviorSubject` it can't terminate with error, and when variable is deallocated it will complete it's observable sequence (`asObservable`). */ -@available(*, deprecated=2.0.0, message="Variable will remain in the 2.0.0 API, but just use `variable.asObservable()` because it won't be `ObservableType` (no way to warn about deprecated interface implementation). Just do, `variable.asObservable().map { _ in ...}` and ignore this warning.") -public class Variable - : ObservableType { // << -- this part and subscribe method will be deprecated +public class Variable { public typealias E = Element @@ -58,19 +56,6 @@ public class Variable _subject = BehaviorSubject(value: value) } - /** - Subscribes an observer to sequence of variable values. - - Immediately upon subscription current value is sent to the observer. - - - parameter observer: Observer to subscribe to variable values. - - returns: Disposable object that can be used to unsubscribe the observer from the variable. - */ - @warn_unused_result(message="http://git.io/rxs.ud") - public func subscribe(observer: O) -> Disposable { - return _subject.subscribe(observer) - } - /** - returns: Canonical interface for push style sequence */ diff --git a/RxTests/Schedulers/TestSchedulerVirtualTimeConverter.swift b/RxTests/Schedulers/TestSchedulerVirtualTimeConverter.swift index edb23431..f4620e19 100644 --- a/RxTests/Schedulers/TestSchedulerVirtualTimeConverter.swift +++ b/RxTests/Schedulers/TestSchedulerVirtualTimeConverter.swift @@ -9,8 +9,18 @@ import Foundation import RxSwift +/** + Converter from virtual time and time interval measured in `Int`s to `NSDate` and `NSTimeInterval`. +*/ public struct TestSchedulerVirtualTimeConverter : VirtualTimeConverterType { + /** + Virtual time unit used that represents ticks of virtual clock. + */ public typealias VirtualTimeUnit = Int + + /** + Virtual time unit used to represent differences of virtual times. + */ public typealias VirtualTimeIntervalUnit = Int private let _resolution: Double @@ -19,26 +29,61 @@ public struct TestSchedulerVirtualTimeConverter : VirtualTimeConverterType { _resolution = resolution } + + /** + Converts virtual time to real time. + + - parameter virtualTime: Virtual time to convert to `NSDate`. + - returns: `NSDate` corresponding to virtual time. + */ public func convertFromVirtualTime(virtualTime: VirtualTimeUnit) -> RxTime { return NSDate(timeIntervalSince1970: RxTimeInterval(virtualTime) * _resolution) } + /** + Converts real time to virtual time. + + - parameter time: `NSDate` to convert to virtual time. + - returns: Virtual time corresponding to `NSDate`. + */ public func convertToVirtualTime(time: RxTime) -> VirtualTimeUnit { return VirtualTimeIntervalUnit(time.timeIntervalSince1970 / _resolution + 0.5) } + /** + Converts from virtual time interval to `NSTimeInterval`. + + - parameter virtualTimeInterval: Virtual time interval to convert to `NSTimeInterval`. + - returns: `NSTimeInterval` corresponding to virtual time interval. + */ public func convertFromVirtualTimeInterval(virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval { return RxTimeInterval(virtualTimeInterval) * _resolution } + /** + Converts from virtual time interval to `NSTimeInterval`. + + - parameter timeInterval: `NSTimeInterval` to convert to virtual time interval. + - returns: Virtual time interval corresponding to time interval. + */ public func convertToVirtualTimeInterval(timeInterval: RxTimeInterval) -> VirtualTimeIntervalUnit { return VirtualTimeIntervalUnit(timeInterval / _resolution + 0.5) } - public func addVirtualTimeAndTimeInterval(time time: VirtualTimeUnit, timeInterval: VirtualTimeIntervalUnit) -> VirtualTimeUnit { - return time + timeInterval + /** + Adds virtual time and virtual time interval. + + - parameter time: Virtual time. + - parameter offset: Virtual time interval. + - returns: Time corresponding to time offsetted by virtual time interval. + */ + public func offsetVirtualTime(time time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit { + return time + offset } + /** + Compares virtual times. + */ public func compareVirtualTime(lhs: VirtualTimeUnit, _ rhs: VirtualTimeUnit) -> VirtualTimeComparison { if lhs < rhs { return .LessThan diff --git a/Sources/RxSwift/Darwin.Platform.swift b/Sources/RxSwift/Darwin.Platform.swift deleted file mode 120000 index e902a8ef..00000000 --- a/Sources/RxSwift/Darwin.Platform.swift +++ /dev/null @@ -1 +0,0 @@ -../../RxSwift/Platform/Darwin.Platform.swift \ No newline at end of file diff --git a/Sources/RxSwift/DispatchQueueSchedulerPriority.swift b/Sources/RxSwift/DispatchQueueSchedulerPriority.swift deleted file mode 120000 index ef7f23a0..00000000 --- a/Sources/RxSwift/DispatchQueueSchedulerPriority.swift +++ /dev/null @@ -1 +0,0 @@ -../../RxSwift/Schedulers/DispatchQueueSchedulerPriority.swift \ No newline at end of file diff --git a/Sources/RxSwift/DispatchQueueSchedulerQOS.swift b/Sources/RxSwift/DispatchQueueSchedulerQOS.swift new file mode 120000 index 00000000..c00e8022 --- /dev/null +++ b/Sources/RxSwift/DispatchQueueSchedulerQOS.swift @@ -0,0 +1 @@ +../../RxSwift/Schedulers/DispatchQueueSchedulerQOS.swift \ No newline at end of file diff --git a/Sources/RxSwift/Linux.Platform.swift b/Sources/RxSwift/Linux.Platform.swift deleted file mode 120000 index f7df219c..00000000 --- a/Sources/RxSwift/Linux.Platform.swift +++ /dev/null @@ -1 +0,0 @@ -../../RxSwift/Platform/Linux.Platform.swift \ No newline at end of file diff --git a/Sources/RxSwift/ObserverType+Extensions.swift b/Sources/RxSwift/ObserverType+Extensions.swift deleted file mode 120000 index 01e1e0be..00000000 --- a/Sources/RxSwift/ObserverType+Extensions.swift +++ /dev/null @@ -1 +0,0 @@ -../../RxSwift/ObserverType+Extensions.swift \ No newline at end of file diff --git a/Sources/RxSwift/Platform.Darwin.swift b/Sources/RxSwift/Platform.Darwin.swift new file mode 120000 index 00000000..9e5d4ea4 --- /dev/null +++ b/Sources/RxSwift/Platform.Darwin.swift @@ -0,0 +1 @@ +../../RxSwift/Platform/Platform.Darwin.swift \ No newline at end of file diff --git a/Sources/RxSwift/Platform.Linux.swift b/Sources/RxSwift/Platform.Linux.swift new file mode 120000 index 00000000..36d47005 --- /dev/null +++ b/Sources/RxSwift/Platform.Linux.swift @@ -0,0 +1 @@ +../../RxSwift/Platform/Platform.Linux.swift \ No newline at end of file diff --git a/Sources/RxSwift/ScopedDisposable.swift b/Sources/RxSwift/ScopedDisposable.swift deleted file mode 120000 index 3d2e0839..00000000 --- a/Sources/RxSwift/ScopedDisposable.swift +++ /dev/null @@ -1 +0,0 @@ -../../RxSwift/Disposables/ScopedDisposable.swift \ No newline at end of file diff --git a/Tests/RxCocoaTests/Control+RxTests+UIKit.swift b/Tests/RxCocoaTests/Control+RxTests+UIKit.swift index 95bea265..eefc151c 100644 --- a/Tests/RxCocoaTests/Control+RxTests+UIKit.swift +++ b/Tests/RxCocoaTests/Control+RxTests+UIKit.swift @@ -179,7 +179,7 @@ extension ControlTests { func testLabel_NextElementsSetsValue() { let subject = UILabel() let attributedTextSequence = Variable(nil) - let disposable = attributedTextSequence.subscribe(subject.rx_attributedText) + let disposable = attributedTextSequence.asObservable().bindTo(subject.rx_attributedText) defer { disposable.dispose() } attributedTextSequence.value = NSAttributedString(string: "Hello!") @@ -354,7 +354,7 @@ extension ControlTests { let subject = UIActivityIndicatorView() let boolSequence = Variable(false) - let disposable = boolSequence.subscribe(subject.rx_animating) + let disposable = boolSequence.asObservable().bindTo(subject.rx_animating) defer { disposable.dispose() } boolSequence.value = true @@ -368,26 +368,6 @@ extension ControlTests { #if os(iOS) -// UIActionSheet -extension ControlTests { - func testActionSheet_DelegateEventCompletesOnDealloc() { - let createActionSheet: () -> UIActionSheet = { UIActionSheet(title: "", delegate: nil, cancelButtonTitle: "", destructiveButtonTitle: "") } - ensureEventDeallocated(createActionSheet) { (view: UIActionSheet) in view.rx_clickedButtonAtIndex } - ensureEventDeallocated(createActionSheet) { (view: UIActionSheet) in view.rx_didDismissWithButtonIndex } - ensureEventDeallocated(createActionSheet) { (view: UIActionSheet) in view.rx_willDismissWithButtonIndex } - } -} - -// UIAlertView -extension ControlTests { - func testAlertView_DelegateEventCompletesOnDealloc() { - let createAlertView: () -> UIAlertView = { UIAlertView(title: "", message: "", delegate: nil, cancelButtonTitle: nil) } - ensureEventDeallocated(createAlertView) { (view: UIAlertView) in view.rx_clickedButtonAtIndex } - ensureEventDeallocated(createAlertView) { (view: UIAlertView) in view.rx_didDismissWithButtonIndex } - ensureEventDeallocated(createAlertView) { (view: UIAlertView) in view.rx_willDismissWithButtonIndex } - } -} - // UIDatePicker extension ControlTests { func testDatePicker_DelegateEventCompletesOnDealloc() { diff --git a/Tests/RxCocoaTests/Driver+Test.swift b/Tests/RxCocoaTests/Driver+Test.swift index 7738edf3..007483ea 100644 --- a/Tests/RxCocoaTests/Driver+Test.swift +++ b/Tests/RxCocoaTests/Driver+Test.swift @@ -13,7 +13,7 @@ import XCTest import RxTests class DriverTest : RxTest { - var backgroundScheduler = SerialDispatchQueueScheduler(globalConcurrentQueuePriority: .Default) + var backgroundScheduler = SerialDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) override func tearDown() { super.tearDown() diff --git a/Tests/RxCocoaTests/KVOObservableTests.swift b/Tests/RxCocoaTests/KVOObservableTests.swift index 8a208ee7..faa5e50d 100644 --- a/Tests/RxCocoaTests/KVOObservableTests.swift +++ b/Tests/RxCocoaTests/KVOObservableTests.swift @@ -1582,214 +1582,3 @@ extension KVOObservableTests { } } #endif - -// MARK: Deprecated -extension KVOObservableTests { - func testObserve_deprecated_ObserveCGRect() { - var root: HasStrongProperty! = HasStrongProperty() - - var latest: CGRect? = nil - - XCTAssertTrue(latest == nil) - - let d = root.rx_observe("frame") - .subscribeNext { (n: CGRect?) in - latest = n - } - - defer { - d.dispose() - } - - XCTAssertTrue(latest == root.frame) - - root.frame = CGRectMake(-2, 0, 0, 1) - - XCTAssertTrue(latest == CGRectMake(-2, 0, 0, 1)) - - var rootDeallocated = false - - _ = root - .rx_deallocated - .subscribeCompleted { - rootDeallocated = true - } - - root = nil - - XCTAssertTrue(latest == CGRectMake(-2, 0, 0, 1)) - XCTAssertTrue(!rootDeallocated) - } - - func testObserve_deprecated_ObserveCGSize() { - var root: HasStrongProperty! = HasStrongProperty() - - var latest: CGSize? = nil - - XCTAssertTrue(latest == nil) - - let d = root.rx_observe("size") - .subscribeNext { (n: CGSize?) in - latest = n - } - - defer { - d.dispose() - } - - XCTAssertTrue(latest == root.size) - - root.size = CGSizeMake(56, 1) - - XCTAssertTrue(latest == CGSizeMake(56, 1)) - - var rootDeallocated = false - - _ = root - .rx_deallocated - .subscribeCompleted { - rootDeallocated = true - } - - root = nil - - XCTAssertTrue(latest == CGSizeMake(56, 1)) - XCTAssertTrue(!rootDeallocated) - } - - func testObserve_deprecated_ObserveCGPoint() { - var root: HasStrongProperty! = HasStrongProperty() - - var latest: CGPoint? = nil - - XCTAssertTrue(latest == nil) - - let d = root.rx_observe("point") - .subscribeNext { (n: CGPoint?) in - latest = n - } - defer { - d.dispose() - } - - XCTAssertTrue(latest == root.point) - - root.point = CGPoint(x: -100, y: 1) - - XCTAssertTrue(latest == CGPoint(x: -100, y: 1)) - - var rootDeallocated = false - - _ = root - .rx_deallocated - .subscribeCompleted { - rootDeallocated = true - } - - root = nil - - XCTAssertTrue(latest == CGPoint(x: -100, y: 1)) - XCTAssertTrue(!rootDeallocated) - } -} - -#if !DISABLE_SWIZZLING -extension KVOObservableTests { - func testObserveWeak_deprecated_ObserveCGRect() { - var root: HasStrongProperty! = HasStrongProperty() - - var latest: CGRect? = nil - - XCTAssertTrue(latest == nil) - - _ = root - .rx_observeWeakly("frame") - .subscribeNext { (n: CGRect?) in - latest = n - } - XCTAssertTrue(latest == root.frame) - - root.frame = CGRectMake(-2, 0, 0, 1) - - XCTAssertTrue(latest == CGRectMake(-2, 0, 0, 1)) - - var rootDeallocated = false - - _ = root - .rx_deallocated - .subscribeCompleted { - rootDeallocated = true - } - - root = nil - - XCTAssertTrue(latest == nil) - XCTAssertTrue(rootDeallocated) - } - - func testObserveWeak_deprecated_ObserveCGSize() { - var root: HasStrongProperty! = HasStrongProperty() - - var latest: CGSize? = nil - - XCTAssertTrue(latest == nil) - - _ = root - .rx_observeWeakly("size") - .subscribeNext { (n: CGSize?) in - latest = n - } - XCTAssertTrue(latest == root.size) - - root.size = CGSizeMake(56, 1) - - XCTAssertTrue(latest == CGSizeMake(56, 1)) - - var rootDeallocated = false - - _ = root - .rx_deallocated - .subscribeCompleted { - rootDeallocated = true - } - - root = nil - - XCTAssertTrue(latest == nil) - XCTAssertTrue(rootDeallocated) - } - - func testObserveWeak_deprecated_ObserveCGPoint() { - var root: HasStrongProperty! = HasStrongProperty() - - var latest: CGPoint? = nil - - XCTAssertTrue(latest == nil) - - _ = root - .rx_observeWeakly("point") - .subscribeNext { (n: CGPoint?) in - latest = n - } - - XCTAssertTrue(latest == root.point) - - root.point = CGPoint(x: -100, y: 1) - - XCTAssertTrue(latest == CGPoint(x: -100, y: 1)) - - var rootDeallocated = false - - _ = root - .rx_deallocated - .subscribeCompleted { - rootDeallocated = true - } - - root = nil - - XCTAssertTrue(latest == nil) - XCTAssertTrue(rootDeallocated) - } -} -#endif diff --git a/Tests/RxSwiftTests/TestImplementations/TestVirtualScheduler.swift b/Tests/RxSwiftTests/TestImplementations/TestVirtualScheduler.swift index dd61e0aa..733f904a 100644 --- a/Tests/RxSwiftTests/TestImplementations/TestVirtualScheduler.swift +++ b/Tests/RxSwiftTests/TestImplementations/TestVirtualScheduler.swift @@ -41,8 +41,8 @@ struct TestVirtualSchedulerVirtualTimeConverter : VirtualTimeConverterType { return Int(timeInterval / 10.0) } - func addVirtualTimeAndTimeInterval(time time: VirtualTimeUnit, timeInterval: VirtualTimeIntervalUnit) -> VirtualTimeUnit { - return time + timeInterval + func offsetVirtualTime(time time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit { + return time + offset } func compareVirtualTime(lhs: VirtualTimeUnit, _ rhs: VirtualTimeUnit) -> VirtualTimeComparison { diff --git a/Tests/RxSwiftTests/Tests/Observable+BlockingTest.swift b/Tests/RxSwiftTests/Tests/Observable+BlockingTest.swift index c2d84f27..84ffc5aa 100644 --- a/Tests/RxSwiftTests/Tests/Observable+BlockingTest.swift +++ b/Tests/RxSwiftTests/Tests/Observable+BlockingTest.swift @@ -40,7 +40,7 @@ extension ObservableBlockingTest { } func testToArray_withRealScheduler() { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueuePriority: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) let array = try! Observable.interval(0.001, scheduler: scheduler) .take(10) @@ -77,7 +77,7 @@ extension ObservableBlockingTest { } func testFirst_withRealScheduler() { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueuePriority: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) let array = try! Observable.interval(0.001, scheduler: scheduler) .take(10) @@ -114,7 +114,7 @@ extension ObservableBlockingTest { } func testLast_withRealScheduler() { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueuePriority: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) let array = try! Observable.interval(0.001, scheduler: scheduler) .take(10) @@ -174,7 +174,7 @@ extension ObservableBlockingTest { } func testSingle_withRealScheduler() { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueuePriority: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) let array = try! Observable.interval(0.001, scheduler: scheduler) .take(1) @@ -271,7 +271,7 @@ extension ObservableBlockingTest { } func testSingle_predicate_withRealScheduler() { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueuePriority: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) let array = try! Observable.interval(0.001, scheduler: scheduler) .take(4) diff --git a/Tests/RxSwiftTests/Tests/Observable+ConcurrencyTest.swift b/Tests/RxSwiftTests/Tests/Observable+ConcurrencyTest.swift index f00ea78d..93f26241 100644 --- a/Tests/RxSwiftTests/Tests/Observable+ConcurrencyTest.swift +++ b/Tests/RxSwiftTests/Tests/Observable+ConcurrencyTest.swift @@ -564,7 +564,7 @@ class ObservableConcurrentSchedulerConcurrencyTest: ObservableConcurrencyTestBas class ObservableConcurrentSchedulerConcurrencyTest2 : ObservableConcurrentSchedulerConcurrencyTest { override func createScheduler() -> ImmediateSchedulerType { - return ConcurrentDispatchQueueScheduler(globalConcurrentQueuePriority: .Default) + return ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) } } diff --git a/Tests/RxSwiftTests/Tests/Observable+TimeTest.swift b/Tests/RxSwiftTests/Tests/Observable+TimeTest.swift index 6cf2113d..6e4ba7f0 100644 --- a/Tests/RxSwiftTests/Tests/Observable+TimeTest.swift +++ b/Tests/RxSwiftTests/Tests/Observable+TimeTest.swift @@ -257,7 +257,7 @@ extension ObservableTimeTest { } func test_ThrottleWithRealScheduler() { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueuePriority: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) let start = NSDate() @@ -536,7 +536,7 @@ extension ObservableTimeTest { } func testInterval_TimeSpan_Zero_DefaultScheduler() { - let scheduler = SerialDispatchQueueScheduler(globalConcurrentQueuePriority: .Default) + let scheduler = SerialDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) let observer = PrimitiveMockObserver() @@ -586,7 +586,7 @@ extension ObservableTimeTest { } func test_IntervalWithRealScheduler() { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueuePriority: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) let start = NSDate() @@ -1093,7 +1093,7 @@ extension ObservableTimeTest { } func testBufferWithTimeOrCount_Default() { - let backgroundScheduler = SerialDispatchQueueScheduler(globalConcurrentQueuePriority: .Default) + let backgroundScheduler = SerialDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) let result = try! Observable.range(start: 1, count: 10, scheduler: backgroundScheduler) .buffer(timeSpan: 1000, count: 3, scheduler: backgroundScheduler) @@ -1293,7 +1293,7 @@ extension ObservableTimeTest { }*/ func windowWithTimeOrCount_Default() { - let backgroundScheduler = SerialDispatchQueueScheduler(globalConcurrentQueuePriority: .Default) + let backgroundScheduler = SerialDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) let result = try! Observable.range(start: 1, count: 10, scheduler: backgroundScheduler) .window(timeSpan: 1000, count: 3, scheduler: backgroundScheduler) diff --git a/scripts/package-swift-manager.swift b/scripts/package-spm.swift similarity index 94% rename from scripts/package-swift-manager.swift rename to scripts/package-spm.swift index 0cf5fb50..dc3480b7 100755 --- a/scripts/package-swift-manager.swift +++ b/scripts/package-spm.swift @@ -1,6 +1,6 @@ #!/usr/bin/swift // -// package-swift-manager.swift +// package-spm.swift // scripts // // Created by Krunoslav Zaher on 12/26/15. @@ -9,6 +9,17 @@ import Foundation +/** +This script packages normal Rx* structure into `Sources` directory. + + * creates and updates links to normal project structure + * builds unit tests `main.swift` + +Unfortunately, Swift support for Linux, libdispatch and package manager are still quite unstable, +so certain class of unit tests is excluded for now. + +*/ + // It is kind of ironic that we need to additionally package for package manager :/ let fileManager = NSFileManager.defaultManager() @@ -18,7 +29,7 @@ let allowedExtensions = [ ".h", ".m", ] -// Those tests are dependant on conditional compilation logic and it's hard to handle them automatically +// Those tests are dependent on conditional compilation logic and it's hard to handle them automatically // They usually test some internal state, so it should be ok to exclude them for now. let excludedTests = [ "testConcat_TailRecursionCollection", @@ -204,4 +215,4 @@ try packageRelativePath([ "Tests/HistoricalSchedulerTest.swift" ]) -try buildAllTestsTarget("Sources/AllTests") \ No newline at end of file +try buildAllTestsTarget("Sources/AllTests") diff --git a/scripts/pre-release-tests.sh b/scripts/pre-release-tests.sh index fff667eb..4135dd3e 100755 --- a/scripts/pre-release-tests.sh +++ b/scripts/pre-release-tests.sh @@ -14,6 +14,12 @@ if [ "$1" == "r" ]; then fi ./scripts/validate-headers.swift +./scripts/package-spm.swift > /dev/null + +if [ `git ls-files -o -d --exclude-standard | wc -l` -gt 0 ]; then + echo "Package for Swift package manager isn't updated, please run ./scripts/package-spm.swift and commit the changes" + exit -1 +fi # ios 7 sim #if [ `xcrun simctl list | grep "${DEFAULT_IOS7_SIMULATOR}" | wc -l` == 0 ]; then @@ -117,8 +123,6 @@ done . scripts/validate-playgrounds.sh if [ "${RELEASE_TEST}" -eq 1 ]; then - mdast -u mdast-slug -u mdast-validate-links ./*.md - mdast -u mdast-slug -u mdast-validate-links ./**/*.md - + scripts/validate-markdown.sh scripts/validate-podspec.sh fi diff --git a/scripts/validate-headers.swift b/scripts/validate-headers.swift index 5e45558a..76940c62 100755 --- a/scripts/validate-headers.swift +++ b/scripts/validate-headers.swift @@ -9,7 +9,19 @@ import Foundation -// It is kind of ironic that we need to additionally package for package manager :/ +/** +Validates that all headers are in this standard form + +// +// {file}.swift +// Project +// +// Created by {Author} on 2/14/15. +// Copyright (c) 2015 Krunoslav Zaher. All rights reserved. +// + +Only Project is not checked yet, but it will be soon. +*/ let fileManager = NSFileManager.defaultManager() @@ -37,19 +49,6 @@ func isExtensionIncluded(path: String) -> Bool { let whitespace = NSCharacterSet.whitespaceAndNewlineCharacterSet() -/** -Validates header in this form - -// -// {file}.swift -// Project -// -// Created by {Author} on 2/14/15. -// Copyright (c) 2015 Krunoslav Zaher. All rights reserved. -// - -*/ - let identifier = "(?:\\w|\\+|\\_|\\.|-)+" let fileLine = try NSRegularExpression(pattern: "// (\(identifier))", options: []) diff --git a/scripts/validate-markdown.sh b/scripts/validate-markdown.sh new file mode 100755 index 00000000..f217b8b5 --- /dev/null +++ b/scripts/validate-markdown.sh @@ -0,0 +1,2 @@ +mdast -u mdast-slug -u mdast-validate-links ./*.md +mdast -u mdast-slug -u mdast-validate-links ./**/*.md \ No newline at end of file diff --git a/scripts/validate-podspec.sh b/scripts/validate-podspec.sh index 37fcb4a3..2152c3b4 100755 --- a/scripts/validate-podspec.sh +++ b/scripts/validate-podspec.sh @@ -3,6 +3,9 @@ set -e +BRANCH=$(git rev-parse --abbrev-ref HEAD) +ESCAPED_SOURCE=$(pwd | sed -E "s/\//\\\\\//g") + function cleanup { pushd ~/.cocoapods/repos/master git clean -d -f @@ -22,8 +25,6 @@ do done popd -BRANCH=develop - for TARGET in ${TARGETS[@]} do @@ -31,13 +32,13 @@ do rm ~/.cocoapods/repos/master/Specs/${TARGET}/${VERSION}/* || echo cat $TARGET.podspec | - sed -E "s/s.source[^\}]+\}/s.source = { :git => '\/Users\/kzaher\/Projects\/RxSwift', :branch => \'${BRANCH}\' }/" > ~/.cocoapods/repos/master/Specs/${TARGET}/${VERSION}/${TARGET}.podspec + sed -E "s/s.source[^\}]+\}/s.source = { :git => '${ESCAPED_SOURCE}', :branch => \'${BRANCH}\' }/" > ~/.cocoapods/repos/master/Specs/${TARGET}/${VERSION}/${TARGET}.podspec done function validate() { local PODSPEC=$1 - pod lib lint $PODSPEC --verbose --no-clean + pod lib lint $PODSPEC --verbose --no-clean --allow-warnings # temporary allow warning because of deprecated API in rc } for TARGET in ${TARGETS[@]}