├── Cartfile ├── Carthage ├── Build │ └── iOS │ │ └── RxCocoa.framework │ │ └── Headers │ │ └── File └── Checkouts │ └── RxSwift │ ├── assets │ ├── CNAME.txt │ └── Rx_Logo_M.png │ ├── Sources │ ├── RxSwift │ │ ├── Rx.swift │ │ ├── Errors.swift │ │ ├── Event.swift │ │ ├── AnyObserver.swift │ │ ├── Bag.swift │ │ ├── Cancelable.swift │ │ ├── Disposable.swift │ │ ├── Lock.swift │ │ ├── Observable.swift │ │ ├── ObserverType.swift │ │ ├── RxMutableBox.swift │ │ ├── ObservableType.swift │ │ ├── Queue.swift │ │ ├── SchedulerType.swift │ │ ├── String+Rx.swift │ │ ├── Variable.swift │ │ ├── Amb.swift │ │ ├── AsyncLock.swift │ │ ├── DisposeBag.swift │ │ ├── DisposeBase.swift │ │ ├── Do.swift │ │ ├── Map.swift │ │ ├── ObserverBase.swift │ │ ├── SubjectType.swift │ │ ├── Zip.swift │ │ ├── BehaviorSubject.swift │ │ ├── Catch.swift │ │ ├── Debug.swift │ │ ├── Empty.swift │ │ ├── Error.swift │ │ ├── Just.swift │ │ ├── LockOwnerType.swift │ │ ├── MainScheduler.swift │ │ ├── Merge.swift │ │ ├── Never.swift │ │ ├── NopDisposable.swift │ │ ├── Platform.Darwin.swift │ │ ├── Platform.Linux.swift │ │ ├── PublishSubject.swift │ │ ├── Range.swift │ │ ├── ReplaySubject.swift │ │ ├── Scan.swift │ │ ├── Sink.swift │ │ ├── Skip.swift │ │ ├── Take.swift │ │ ├── Timer.swift │ │ ├── Using.swift │ │ ├── AddRef.swift │ │ ├── AnonymousObserver.swift │ │ ├── BinaryDisposable.swift │ │ ├── Buffer.swift │ │ ├── Concat.swift │ │ ├── Deferred.swift │ │ ├── Filter.swift │ │ ├── Generate.swift │ │ ├── ImmediateSchedulerType.swift │ │ ├── NAryDisposable.swift │ │ ├── Observable+Debug.swift │ │ ├── Observable+Extensions.swift │ │ ├── Observable+Time.swift │ │ ├── PriorityQueue.swift │ │ ├── Producer.swift │ │ ├── Reduce.swift │ │ ├── RefCount.swift │ │ ├── Repeat.swift │ │ ├── Sample.swift │ │ ├── Sequence.swift │ │ ├── SerialDisposable.swift │ │ ├── Switch.swift │ │ ├── TailRecursiveSink.swift │ │ ├── TakeLast.swift │ │ ├── Throttle.swift │ │ ├── Timeout.swift │ │ ├── ToArray.swift │ │ ├── Window.swift │ │ ├── BooleanDisposable.swift │ │ ├── ElementAt.swift │ │ ├── HistoricalScheduler.swift │ │ ├── ImmediateScheduler.swift │ │ ├── InfiniteSequence.swift │ │ ├── InvocableType.swift │ │ ├── Multicast.swift │ │ ├── Observable+Binding.swift │ │ ├── Observable+Single.swift │ │ ├── ObserveOn.swift │ │ ├── RecursiveScheduler.swift │ │ ├── RefCountDisposable.swift │ │ ├── RetryWhen.swift │ │ ├── ScheduledItem.swift │ │ ├── SkipUntil.swift │ │ ├── SkipWhile.swift │ │ ├── StartWith.swift │ │ ├── SynchronizedOnType.swift │ │ ├── TakeUntil.swift │ │ ├── TakeWhile.swift │ │ ├── Zip+arity.swift │ │ ├── AnonymousDisposable.swift │ │ ├── CombineLatest.swift │ │ ├── CompositeDisposable.swift │ │ ├── ConnectableObservableType.swift │ │ ├── Observable+Aggregate.swift │ │ ├── Observable+Creation.swift │ │ ├── Observable+Multiple.swift │ │ ├── ObservableConvertibleType.swift │ │ ├── ScheduledDisposable.swift │ │ ├── ScheduledItemType.swift │ │ ├── ShareReplay1.swift │ │ ├── SingleAsync.swift │ │ ├── SubscribeOn.swift │ │ ├── VirtualTimeScheduler.swift │ │ ├── AnonymousInvocable.swift │ │ ├── ConcurrentMainScheduler.swift │ │ ├── CurrentThreadScheduler.swift │ │ ├── Observable+Concurrency.swift │ │ ├── OperationQueueScheduler.swift │ │ ├── SubscriptionDisposable.swift │ │ ├── SynchronizedDisposeType.swift │ │ ├── VirtualTimeConverterType.swift │ │ ├── WithLatestFrom.swift │ │ ├── DelaySubscription.swift │ │ ├── DispatchQueueSchedulerQOS.swift │ │ ├── InvocableScheduledItem.swift │ │ ├── SingleAssignmentDisposable.swift │ │ ├── StableCompositeDisposable.swift │ │ ├── SynchronizedSubscribeType.swift │ │ ├── Zip+CollectionType.swift │ │ ├── AnonymousObservable.swift │ │ ├── CombineLatest+arity.swift │ │ ├── DistinctUntilChanged.swift │ │ ├── SchedulerServices+Emulation.swift │ │ ├── SerialDispatchQueueScheduler.swift │ │ ├── SynchronizedUnsubscribeType.swift │ │ ├── ConnectableObservable.swift │ │ ├── ConcurrentDispatchQueueScheduler.swift │ │ ├── HistoricalSchedulerTimeConverter.swift │ │ ├── CombineLatest+CollectionType.swift │ │ ├── Observable+StandardSequenceOperators.swift │ │ ├── ObserveOnSerialDispatchQueue.swift │ │ └── ShareReplay1WhileConnected.swift │ ├── RxCocoa │ │ └── RxCocoa.h │ ├── AllTests │ │ ├── RxTest.swift │ │ ├── RxMutableBox.swift │ │ ├── TestErrors.swift │ │ ├── BagTest.swift │ │ ├── QueueTests.swift │ │ ├── Recorded+Timeless.swift │ │ ├── XCTest+AllTests.swift │ │ ├── ObserverTests.swift │ │ ├── VariableTest.swift │ │ ├── AssumptionsTest.swift │ │ ├── DisposableTest.swift │ │ ├── Foundation+Extensions.swift │ │ ├── MainSchedulerTests.swift │ │ ├── BehaviorSubjectTest.swift │ │ ├── MySubject.swift │ │ ├── Observable+TimeTest.swift │ │ ├── ElementIndexPair.swift │ │ ├── EquatableArray.swift │ │ ├── Observable+BindingTest.swift │ │ ├── Observable+BlockingTest.swift │ │ ├── Observable+CreationTest.swift │ │ ├── Observable+MultipleTest.swift │ │ ├── Observable+SingleTest.swift │ │ ├── SubjectConcurrencyTest.swift │ │ ├── AnonymousObservable+Test.swift │ │ ├── MockDisposable.swift │ │ ├── Observable+AggregateTest.swift │ │ ├── CurrentThreadSchedulerTest.swift │ │ ├── Observable+ConcurrencyTest.swift │ │ ├── Observable+Extensions.swift │ │ ├── Observable+MultipleTest+Zip.swift │ │ ├── Observable+SubscriptionTest.swift │ │ ├── TestVirtualScheduler.swift │ │ ├── Observable.Extensions.swift │ │ ├── PrimitiveHotObservable.swift │ │ ├── PrimitiveMockObserver.swift │ │ ├── TestConnectableObservable.swift │ │ ├── Observable+MultipleTest+CombineLatest.swift │ │ ├── Observable+StandardSequenceOperatorsTest.swift │ │ ├── MainThreadPrimitiveHotObservable.swift │ │ └── BackgroundThreadPrimitiveHotObservable.swift │ ├── RxTests │ │ ├── RxTests.swift │ │ ├── Recorded.swift │ │ ├── XCTest+Rx.swift │ │ ├── Subscription.swift │ │ ├── Any+Equatable.swift │ │ ├── ColdObservable.swift │ │ ├── HotObservable.swift │ │ ├── Event+Equatable.swift │ │ ├── TestableObserver.swift │ │ ├── TestScheduler.swift │ │ ├── TestableObservable.swift │ │ └── TestSchedulerVirtualTimeConverter.swift │ └── RxBlocking │ │ ├── RunLoopLock.swift │ │ ├── BlockingObservable.swift │ │ ├── BlockingObservable+Operators.swift │ │ └── ObservableConvertibleType+Blocking.swift │ ├── scripts │ ├── validate-markdown.sh │ ├── test-linux.sh │ ├── automation-tests │ │ ├── main.js │ │ ├── 05_reactivePartialUpdates.js │ │ ├── 02_searchWikipedia.js │ │ ├── 01_githubSignUp.js │ │ ├── 03_masterDetail.js │ │ └── common.js │ └── validate-playgrounds.sh │ ├── Documentation │ ├── Subjects.md │ ├── Linux.md │ └── MathBehindRx.md │ ├── Tests │ ├── RxCocoaTests │ │ ├── RxTests-OSX-Bridging-Header.h │ │ ├── RxTests-iOS-Bridging-Header.h │ │ ├── RxTests-tvOS-Bridging-Header.h │ │ ├── Driver+Extensions.swift │ │ ├── NSControl+RxTests.swift │ │ ├── UIView+RxTests.swift │ │ └── NSView+RxTests.swift │ ├── RxSwiftTests │ │ └── TestImplementations │ │ │ ├── Mocks │ │ │ ├── Observable.Extensions.swift │ │ │ ├── MainThreadPrimitiveHotObservable.swift │ │ │ ├── MockDisposable.swift │ │ │ ├── BackgroundThreadPrimitiveHotObservable.swift │ │ │ ├── PrimitiveMockObserver.swift │ │ │ └── TestConnectableObservable.swift │ │ │ ├── EquatableArray.swift │ │ │ ├── Observable+Extensions.swift │ │ │ └── ElementIndexPair.swift │ ├── Tests │ │ ├── Foundation+Extensions.swift │ │ ├── TestErrors.swift │ │ ├── Recorded+Timeless.swift │ │ └── Info.plist │ └── PerformanceTests │ │ └── Info.plist │ ├── .travis.yml │ ├── RxExample │ ├── RxExample │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Icon-40.png │ │ │ │ ├── Icon-76.png │ │ │ │ ├── Rx_Logo_M.png │ │ │ │ ├── Icon-40@2x.png │ │ │ │ ├── Icon-60@2x.png │ │ │ │ ├── Icon-60@3x.png │ │ │ │ ├── Icon-76@2x.png │ │ │ │ ├── Icon-Small.png │ │ │ │ ├── Icon-40@2x-1.png │ │ │ │ ├── Icon-60@2x-1.png │ │ │ │ ├── Icon-Small@3x.png │ │ │ │ └── Icon-Small@2x-1.png │ │ │ └── ReactiveExtensionsLogo.imageset │ │ │ │ ├── ReactiveExtensionsLogo.png │ │ │ │ ├── ReactiveExtensionsLogo-2.png │ │ │ │ └── Contents.json │ │ ├── RxExample.xcdatamodeld │ │ │ ├── .xccurrentversion │ │ │ └── RxExample.xcdatamodel │ │ │ │ └── contents │ │ ├── Examples │ │ │ ├── TableViewWithEditingCommands │ │ │ │ ├── String+extensions.swift │ │ │ │ ├── UIImageView+Extensions.swift │ │ │ │ ├── User.swift │ │ │ │ └── DetailViewController.swift │ │ │ ├── TableViewPartialUpdates │ │ │ │ ├── NumberCell.swift │ │ │ │ └── NumberSectionView.swift │ │ │ ├── Calculator │ │ │ │ ├── Operation.swift │ │ │ │ └── CalculatorAction.swift │ │ │ ├── WikipediaImageSearch │ │ │ │ ├── WikipediaAPI │ │ │ │ │ └── WikipediaPage.swift │ │ │ │ └── Views │ │ │ │ │ └── CollectionViewImageCell.swift │ │ │ ├── Numbers │ │ │ │ └── NumbersViewController.swift │ │ │ ├── Dependencies.swift │ │ │ ├── GitHubSignup │ │ │ │ └── Protocols.swift │ │ │ └── SimpleTableViewExample │ │ │ │ └── SimpleTableViewExampleViewController.swift │ │ ├── String+URL.swift │ │ ├── Services │ │ │ ├── DownloadableImage.swift │ │ │ ├── UIImage+Extensions.swift │ │ │ ├── PseudoRandomGenerator.swift │ │ │ └── HtmlParsing.swift │ │ ├── iOS │ │ │ ├── AppDelegate.swift │ │ │ └── RootViewController.swift │ │ ├── OSX │ │ │ └── AppDelegate.swift │ │ ├── Operators.swift │ │ ├── Info-OSX.plist │ │ └── Example.swift │ ├── RxDataSourceStarterKit │ │ ├── SectionModelType.swift │ │ ├── RxDataSourceStarterKit.swift │ │ └── DataSources │ │ │ ├── RxCollectionViewSectionedReloadDataSource.swift │ │ │ └── RxTableViewSectionedReloadDataSource.swift │ └── RxExample-iOSTests │ │ ├── Mocks │ │ ├── NotImplementedStubs.swift │ │ ├── ValidationResult+Equatable.swift │ │ ├── MockWireframe.swift │ │ └── MockGitHubAPI.swift │ │ └── Info.plist │ ├── RxCocoa │ ├── Common │ │ ├── _RX.m │ │ ├── Observables │ │ │ ├── Implementations │ │ │ │ ├── DeallocObservable.swift │ │ │ │ └── KVOObserver.swift │ │ │ └── NSNotificationCenter+Rx.swift │ │ ├── _RXDelegateProxy.h │ │ ├── Logging.swift │ │ ├── CocoaUnits │ │ │ └── Driver │ │ │ │ ├── Variable+Driver.swift │ │ │ │ ├── ControlEvent+Driver.swift │ │ │ │ └── ControlProperty+Driver.swift │ │ ├── SectionedViewDataSourceType.swift │ │ ├── KVORepresentable.swift │ │ ├── RxTarget.swift │ │ ├── _RXKVOObserver.h │ │ ├── Proxies │ │ │ └── RxCLLocationManagerDelegateProxy.swift │ │ └── NSLayoutConstraint+Rx.swift │ ├── iOS │ │ ├── Events │ │ │ └── ItemEvents.swift │ │ ├── UISwitch+Rx.swift │ │ ├── UIStepper+Rx.swift │ │ ├── UISlider+Rx.swift │ │ ├── UIDatePicker+Rx.swift │ │ ├── UITextField+Rx.swift │ │ ├── UISegmentedControl+Rx.swift │ │ ├── Protocols │ │ │ ├── RxTableViewDataSourceType.swift │ │ │ └── RxCollectionViewDataSourceType.swift │ │ ├── UIButton+Rx.swift │ │ ├── Proxies │ │ │ ├── RxSearchBarDelegateProxy.swift │ │ │ ├── RxTableViewDelegateProxy.swift │ │ │ ├── RxCollectionViewDelegateProxy.swift │ │ │ ├── RxTextStorageDelegateProxy.swift │ │ │ └── RxImagePickerDelegateProxy.swift │ │ └── UIActivityIndicatorView+Rx.swift │ ├── RxCocoa.h │ ├── OSX │ │ ├── NSSlider+Rx.swift │ │ └── NSButton+Rx.swift │ └── Info.plist │ ├── RxSwift │ ├── Disposables │ │ ├── NAryDisposable.tt │ │ ├── NAryDisposable.swift │ │ ├── StableCompositeDisposable.swift │ │ ├── DisposeBase.swift │ │ ├── SubscriptionDisposable.swift │ │ ├── NopDisposable.swift │ │ └── BooleanDisposable.swift │ ├── Schedulers │ │ ├── Internal │ │ │ ├── ScheduledItemType.swift │ │ │ ├── InvocableType.swift │ │ │ ├── AnonymousInvocable.swift │ │ │ ├── InvocableScheduledItem.swift │ │ │ └── ScheduledItem.swift │ │ ├── HistoricalScheduler.swift │ │ └── ImmediateScheduler.swift │ ├── Disposable.swift │ ├── Concurrency │ │ ├── SynchronizedUnsubscribeType.swift │ │ ├── LockOwnerType.swift │ │ ├── SynchronizedDisposeType.swift │ │ ├── SynchronizedOnType.swift │ │ └── SynchronizedSubscribeType.swift │ ├── Observables │ │ ├── Implementations │ │ │ ├── Never.swift │ │ │ ├── Empty.swift │ │ │ ├── Error.swift │ │ │ ├── StartWith.swift │ │ │ ├── Producer.swift │ │ │ ├── Repeat.swift │ │ │ └── Sink.swift │ │ └── Observable+Debug.swift │ ├── Cancelable.swift │ ├── Extensions │ │ └── String+Rx.swift │ ├── ObservableConvertibleType.swift │ ├── DataStructures │ │ └── InfiniteSequence.swift │ ├── Subjects │ │ └── SubjectType.swift │ ├── RxMutableBox.swift │ ├── ConnectableObservableType.swift │ ├── Observers │ │ ├── AnonymousObserver.swift │ │ └── ObserverBase.swift │ ├── Info.plist │ ├── Rx.swift │ └── Observable.swift │ ├── RxTests │ ├── RxTests.swift │ ├── Info.plist │ ├── TestableObserver.swift │ ├── Any+Equatable.swift │ ├── Recorded.swift │ └── TestableObservable.swift │ ├── RxBlocking │ ├── README.md │ ├── BlockingObservable.swift │ ├── ObservableConvertibleType+Blocking.swift │ ├── Info.plist │ └── RunLoopLock.swift │ ├── Rx.playground │ ├── contents.xcplayground │ ├── Sources │ │ └── SupportCode.swift │ └── Pages │ │ └── Index.xcplaygroundpage │ │ └── Contents.swift │ ├── .gitignore │ ├── LICENSE.md │ ├── RxBlocking.podspec │ └── RxCocoa.podspec ├── Cartfile.resolved └── ViperPrototype ├── Modules ├── MovieDetail │ ├── View │ │ └── MovieDetailView.swift │ └── Wireframe │ │ └── MovieDetailWireframe.swift ├── MainMoviesList │ ├── Interactor │ │ └── MainMoviesListInteractor.swift │ ├── View │ │ └── MainMoviesListCell.swift │ ├── Presenter │ │ └── MainMoviesListPresenter.swift │ └── Wireframe │ │ └── MainMoviesListWireframe.swift └── Configurations │ ├── Interactor │ └── ConfigurationsInteractor.swift │ ├── View │ └── ConfigurationsView.swift │ └── Wireframe │ └── ConfigurationsWireframe.swift ├── Assets.xcassets └── AppIcon.appiconset │ └── Contents.json ├── AppDelegate.swift ├── Configuration ├── AppConfiguration.swift └── TmdbConfiguration.swift └── Services └── TmdbApiService.swift /Cartfile: -------------------------------------------------------------------------------- 1 | github "ReactiveX/RxSwift" ~> 2.0 2 | -------------------------------------------------------------------------------- /Carthage/Build/iOS/RxCocoa.framework/Headers/File: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Cartfile.resolved: -------------------------------------------------------------------------------- 1 | github "ReactiveX/RxSwift" "2.1.0" 2 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/assets/CNAME.txt: -------------------------------------------------------------------------------- 1 | reactivex.io 2 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Rx.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Rx.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxCocoa/RxCocoa.h: -------------------------------------------------------------------------------- 1 | ../../RxCocoa/RxCocoa.h -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/RxTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Errors.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Errors.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Event.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Event.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxTests/RxTests.swift: -------------------------------------------------------------------------------- 1 | ../../RxTests/RxTests.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxTests/Recorded.swift: -------------------------------------------------------------------------------- 1 | ../../RxTests/Recorded.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxTests/XCTest+Rx.swift: -------------------------------------------------------------------------------- 1 | ../../RxTests/XCTest+Rx.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/AnyObserver.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/AnyObserver.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Bag.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/DataStructures/Bag.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Cancelable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Cancelable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Disposable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Disposable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Lock.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Concurrency/Lock.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Observable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ObserverType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/ObserverType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/RxMutableBox.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/RxMutableBox.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxTests/Subscription.swift: -------------------------------------------------------------------------------- 1 | ../../RxTests/Subscription.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/RxMutableBox.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/RxMutableBox.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/TestErrors.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/Tests/TestErrors.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxBlocking/RunLoopLock.swift: -------------------------------------------------------------------------------- 1 | ../../RxBlocking/RunLoopLock.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ObservableType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/ObservableType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Queue.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/DataStructures/Queue.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/SchedulerType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/SchedulerType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/String+Rx.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Extensions/String+Rx.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Variable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Subjects/Variable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxTests/Any+Equatable.swift: -------------------------------------------------------------------------------- 1 | ../../RxTests/Any+Equatable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxTests/ColdObservable.swift: -------------------------------------------------------------------------------- 1 | ../../RxTests/ColdObservable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxTests/HotObservable.swift: -------------------------------------------------------------------------------- 1 | ../../RxTests/HotObservable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/BagTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/BagTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Amb.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Amb.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/AsyncLock.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Concurrency/AsyncLock.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/DisposeBag.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Disposables/DisposeBag.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/DisposeBase.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Disposables/DisposeBase.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Do.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Do.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Map.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Map.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ObserverBase.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observers/ObserverBase.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/SubjectType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Subjects/SubjectType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Zip.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Zip.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxTests/Event+Equatable.swift: -------------------------------------------------------------------------------- 1 | ../../RxTests/Event+Equatable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxTests/TestableObserver.swift: -------------------------------------------------------------------------------- 1 | ../../RxTests/TestableObserver.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/QueueTests.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/QueueTests.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/Recorded+Timeless.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/Tests/Recorded+Timeless.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/XCTest+AllTests.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/Tests/XCTest+AllTests.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/BehaviorSubject.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Subjects/BehaviorSubject.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Catch.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Catch.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Debug.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Debug.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Empty.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Empty.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Error.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Error.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Just.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Just.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/LockOwnerType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Concurrency/LockOwnerType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/MainScheduler.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/MainScheduler.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Merge.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Merge.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Never.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Never.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/NopDisposable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Disposables/NopDisposable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Platform.Darwin.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Platform/Platform.Darwin.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Platform.Linux.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Platform/Platform.Linux.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/PublishSubject.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Subjects/PublishSubject.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Range.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Range.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ReplaySubject.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Subjects/ReplaySubject.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Scan.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Scan.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Sink.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Sink.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Skip.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Skip.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Take.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Take.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Timer.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Timer.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Using.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Using.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxTests/TestScheduler.swift: -------------------------------------------------------------------------------- 1 | ../../RxTests/Schedulers/TestScheduler.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxTests/TestableObservable.swift: -------------------------------------------------------------------------------- 1 | ../../RxTests/TestableObservable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/ObserverTests.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/ObserverTests.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/VariableTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/VariableTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxBlocking/BlockingObservable.swift: -------------------------------------------------------------------------------- 1 | ../../RxBlocking/BlockingObservable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/AddRef.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/AddRef.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/AnonymousObserver.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observers/AnonymousObserver.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/BinaryDisposable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Disposables/BinaryDisposable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Buffer.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Buffer.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Concat.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Concat.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Deferred.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Deferred.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Filter.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Filter.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Generate.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Generate.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ImmediateSchedulerType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/ImmediateSchedulerType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/NAryDisposable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Disposables/NAryDisposable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Observable+Debug.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Observable+Debug.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Observable+Extensions.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observable+Extensions.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Observable+Time.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Observable+Time.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/PriorityQueue.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/DataStructures/PriorityQueue.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Producer.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Producer.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Reduce.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Reduce.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/RefCount.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/RefCount.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Repeat.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Repeat.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Sample.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Sample.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Sequence.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Sequence.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/SerialDisposable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Disposables/SerialDisposable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Switch.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Switch.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/TailRecursiveSink.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observers/TailRecursiveSink.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/TakeLast.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/TakeLast.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Throttle.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Throttle.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Timeout.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Timeout.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ToArray.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/ToArray.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Window.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Window.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/AssumptionsTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/AssumptionsTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/DisposableTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/DisposableTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/Foundation+Extensions.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/Tests/Foundation+Extensions.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/BooleanDisposable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Disposables/BooleanDisposable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ElementAt.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/ElementAt.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/HistoricalScheduler.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/HistoricalScheduler.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ImmediateScheduler.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/ImmediateScheduler.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/InfiniteSequence.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/DataStructures/InfiniteSequence.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/InvocableType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/Internal/InvocableType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Multicast.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Multicast.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Observable+Binding.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Observable+Binding.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Observable+Single.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Observable+Single.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ObserveOn.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/ObserveOn.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/RecursiveScheduler.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/RecursiveScheduler.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/RefCountDisposable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Disposables/RefCountDisposable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/RetryWhen.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/RetryWhen.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ScheduledItem.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/Internal/ScheduledItem.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/SkipUntil.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/SkipUntil.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/SkipWhile.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/SkipWhile.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/StartWith.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/StartWith.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/SynchronizedOnType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Concurrency/SynchronizedOnType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/TakeUntil.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/TakeUntil.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/TakeWhile.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/TakeWhile.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Zip+arity.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Zip+arity.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/MainSchedulerTests.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/MainSchedulerTests.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/AnonymousDisposable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Disposables/AnonymousDisposable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/CombineLatest.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/CombineLatest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/CompositeDisposable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Disposables/CompositeDisposable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ConnectableObservableType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/ConnectableObservableType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Observable+Aggregate.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Observable+Aggregate.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Observable+Creation.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Observable+Creation.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Observable+Multiple.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Observable+Multiple.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ObservableConvertibleType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/ObservableConvertibleType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ScheduledDisposable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Disposables/ScheduledDisposable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ScheduledItemType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/Internal/ScheduledItemType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ShareReplay1.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/ShareReplay1.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/SingleAsync.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/SingleAsync.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/SubscribeOn.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/SubscribeOn.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/VirtualTimeScheduler.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/VirtualTimeScheduler.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/BehaviorSubjectTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/BehaviorSubjectTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/MySubject.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/TestImplementations/Mocks/MySubject.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/Observable+TimeTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/Observable+TimeTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/AnonymousInvocable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/Internal/AnonymousInvocable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ConcurrentMainScheduler.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/ConcurrentMainScheduler.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/CurrentThreadScheduler.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/CurrentThreadScheduler.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Observable+Concurrency.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Observable+Concurrency.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/OperationQueueScheduler.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/OperationQueueScheduler.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/SubscriptionDisposable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Disposables/SubscriptionDisposable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/SynchronizedDisposeType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Concurrency/SynchronizedDisposeType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/VirtualTimeConverterType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/VirtualTimeConverterType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/WithLatestFrom.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/WithLatestFrom.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/ElementIndexPair.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/TestImplementations/ElementIndexPair.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/EquatableArray.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/TestImplementations/EquatableArray.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/Observable+BindingTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/Observable+BindingTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/Observable+BlockingTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/Observable+BlockingTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/Observable+CreationTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/Observable+CreationTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/Observable+MultipleTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/Observable+MultipleTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/Observable+SingleTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/Observable+SingleTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/SubjectConcurrencyTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/SubjectConcurrencyTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxBlocking/BlockingObservable+Operators.swift: -------------------------------------------------------------------------------- 1 | ../../RxBlocking/BlockingObservable+Operators.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/DelaySubscription.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/DelaySubscription.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/DispatchQueueSchedulerQOS.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/DispatchQueueSchedulerQOS.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/InvocableScheduledItem.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/Internal/InvocableScheduledItem.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/SingleAssignmentDisposable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Disposables/SingleAssignmentDisposable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/StableCompositeDisposable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Disposables/StableCompositeDisposable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/SynchronizedSubscribeType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Concurrency/SynchronizedSubscribeType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Zip+CollectionType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/Zip+CollectionType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/AnonymousObservable+Test.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/AnonymousObservable+Test.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/MockDisposable.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/TestImplementations/Mocks/MockDisposable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/Observable+AggregateTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/Observable+AggregateTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/AnonymousObservable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/AnonymousObservable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/CombineLatest+arity.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/CombineLatest+arity.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/DistinctUntilChanged.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/DistinctUntilChanged.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/SchedulerServices+Emulation.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/SchedulerServices+Emulation.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/SerialDispatchQueueScheduler.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/SerialDispatchQueueScheduler.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/SynchronizedUnsubscribeType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Concurrency/SynchronizedUnsubscribeType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/CurrentThreadSchedulerTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/CurrentThreadSchedulerTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/Observable+ConcurrencyTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/Observable+ConcurrencyTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/Observable+Extensions.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/TestImplementations/Observable+Extensions.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/Observable+MultipleTest+Zip.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/Observable+MultipleTest+Zip.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/Observable+SubscriptionTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/Observable+SubscriptionTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/TestVirtualScheduler.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/TestImplementations/TestVirtualScheduler.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxBlocking/ObservableConvertibleType+Blocking.swift: -------------------------------------------------------------------------------- 1 | ../../RxBlocking/ObservableConvertibleType+Blocking.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ConnectableObservable.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/ConnectableObservable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ConcurrentDispatchQueueScheduler.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/HistoricalSchedulerTimeConverter.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxTests/TestSchedulerVirtualTimeConverter.swift: -------------------------------------------------------------------------------- 1 | ../../RxTests/Schedulers/TestSchedulerVirtualTimeConverter.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/Observable.Extensions.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/TestImplementations/Mocks/Observable.Extensions.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/PrimitiveHotObservable.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/TestImplementations/Mocks/PrimitiveHotObservable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/PrimitiveMockObserver.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/TestImplementations/Mocks/PrimitiveMockObserver.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/CombineLatest+CollectionType.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/CombineLatest+CollectionType.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/Observable+StandardSequenceOperators.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Observable+StandardSequenceOperators.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ObserveOnSerialDispatchQueue.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/ObserveOnSerialDispatchQueue.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/RxSwift/ShareReplay1WhileConnected.swift: -------------------------------------------------------------------------------- 1 | ../../RxSwift/Observables/Implementations/ShareReplay1WhileConnected.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/assets/Rx_Logo_M.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amg1976/ViperPrototype/HEAD/Carthage/Checkouts/RxSwift/assets/Rx_Logo_M.png -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/TestConnectableObservable.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/TestImplementations/Mocks/TestConnectableObservable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/Observable+MultipleTest+CombineLatest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/Observable+MultipleTest+CombineLatest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/scripts/validate-markdown.sh: -------------------------------------------------------------------------------- 1 | mdast -u mdast-slug -u mdast-validate-links ./*.md 2 | mdast -u mdast-slug -u mdast-validate-links ./**/*.md -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/Observable+StandardSequenceOperatorsTest.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/Tests/Observable+StandardSequenceOperatorsTest.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/MainThreadPrimitiveHotObservable.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/TestImplementations/Mocks/MainThreadPrimitiveHotObservable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Sources/AllTests/BackgroundThreadPrimitiveHotObservable.swift: -------------------------------------------------------------------------------- 1 | ../../Tests/RxSwiftTests/TestImplementations/Mocks/BackgroundThreadPrimitiveHotObservable.swift -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Documentation/Subjects.md: -------------------------------------------------------------------------------- 1 | Subjects 2 | ======== 3 | 4 | All of behave exactly the same like described [here](http://reactivex.io/documentation/subject.html) 5 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/RxCocoaTests/RxTests-OSX-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | #import "RXObjCRuntime+Testing.h" -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/RxCocoaTests/RxTests-iOS-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | #import "RXObjCRuntime+Testing.h" -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/RxCocoaTests/RxTests-tvOS-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | #import "RXObjCRuntime+Testing.h" -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/.travis.yml: -------------------------------------------------------------------------------- 1 | language: objective-c 2 | 3 | osx_image: xcode7.2 4 | 5 | notifications: 6 | slack: rxswift:3ykt2Z61f8GkdvhCZTYPduOL 7 | email: false 8 | 9 | script: ./scripts/pre-release-tests.sh 10 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amg1976/ViperPrototype/HEAD/Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-40.png -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amg1976/ViperPrototype/HEAD/Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-76.png -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Rx_Logo_M.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amg1976/ViperPrototype/HEAD/Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Rx_Logo_M.png -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/Common/_RX.m: -------------------------------------------------------------------------------- 1 | // 2 | // _RX.m 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import "_RX.h" 10 | 11 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amg1976/ViperPrototype/HEAD/Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amg1976/ViperPrototype/HEAD/Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amg1976/ViperPrototype/HEAD/Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amg1976/ViperPrototype/HEAD/Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amg1976/ViperPrototype/HEAD/Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-Small.png -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-40@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amg1976/ViperPrototype/HEAD/Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-40@2x-1.png -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-60@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amg1976/ViperPrototype/HEAD/Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-60@2x-1.png -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amg1976/ViperPrototype/HEAD/Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-Small@3x.png -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/scripts/test-linux.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | 3 | CONFIGURATIONS=(debug release) 4 | 5 | for configuration in ${CONFIGURATIONS[@]} 6 | do 7 | swift build -c ${configuration} && .build/${configuration}/AllTests 8 | done 9 | 10 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amg1976/ViperPrototype/HEAD/Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Disposables/NAryDisposable.tt: -------------------------------------------------------------------------------- 1 | // 2 | // NAryDisposable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 8/20/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/RxExample.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/ReactiveExtensionsLogo.imageset/ReactiveExtensionsLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amg1976/ViperPrototype/HEAD/Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/ReactiveExtensionsLogo.imageset/ReactiveExtensionsLogo.png -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/ReactiveExtensionsLogo.imageset/ReactiveExtensionsLogo-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amg1976/ViperPrototype/HEAD/Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/ReactiveExtensionsLogo.imageset/ReactiveExtensionsLogo-2.png -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Examples/TableViewWithEditingCommands/String+extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // String+extensions.swift 3 | // RxExample 4 | // 5 | // Created by carlos on 28/5/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | extension String { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxTests/RxTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTests.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 12/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Virtual time type. 13 | */ 14 | public typealias TestTime = Int 15 | 16 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/RxSwiftTests/TestImplementations/Mocks/Observable.Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Observable.Extensions.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 3/14/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | extension Observable : Equatable { 12 | 13 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Disposables/NAryDisposable.swift: -------------------------------------------------------------------------------- 1 | // This file is autogenerated. Take a look at `Preprocessor` target in RxSwift project 2 | // 3 | // NAryDisposable.swift 4 | // RxSwift 5 | // 6 | // Created by Krunoslav Zaher on 8/20/15. 7 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 8 | // 9 | 10 | import Foundation 11 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/Tests/Foundation+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Foundation+Extensions.swift 3 | // Tests 4 | // 5 | // Created by Krunoslav Zaher on 12/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | func isMainThread() -> Bool { 12 | return NSThread.currentThread().isMainThread 13 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/iOS/Events/ItemEvents.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ItemEvents.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/20/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | public typealias ItemMovedEvent = (sourceIndex: NSIndexPath, destinationIndex: NSIndexPath) -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Schedulers/Internal/ScheduledItemType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScheduledItemType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol ScheduledItemType 12 | : Cancelable 13 | , InvocableType { 14 | func invoke() 15 | } 16 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Examples/TableViewPartialUpdates/NumberCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NumberCell.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 7/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | class NumberCell : UICollectionViewCell { 13 | @IBOutlet var value: UILabel? 14 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Examples/Calculator/Operation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Operation.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 12/21/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum Operator { 12 | case Addition 13 | case Subtraction 14 | case Multiplication 15 | case Division 16 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Disposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Disposable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Respresents disposable resource. 13 | */ 14 | public protocol Disposable { 15 | /** 16 | Dispose resource. 17 | */ 18 | func dispose() 19 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Examples/TableViewPartialUpdates/NumberSectionView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NumberSectionView.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 7/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | class NumberSectionView : UICollectionReusableView { 13 | @IBOutlet weak var value: UILabel? 14 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/RxExample.xcdatamodeld/RxExample.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedUnsubscribeType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol SynchronizedUnsubscribeType : class { 12 | typealias DisposeKey 13 | 14 | func synchronizedUnsubscribe(disposeKey: DisposeKey) 15 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Schedulers/Internal/InvocableType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InvocableType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol InvocableType { 12 | func invoke() 13 | } 14 | 15 | protocol InvocableWithValueType { 16 | typealias Value 17 | 18 | func invoke(value: Value) 19 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxDataSourceStarterKit/SectionModelType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SectionModelType.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 6/28/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public protocol SectionModelType { 12 | typealias Item 13 | 14 | var items: [Item] { get } 15 | 16 | init(original: Self, items: [Item]) 17 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/String+URL.swift: -------------------------------------------------------------------------------- 1 | // 2 | // String+URL.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 12/28/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension String { 12 | var URLEscaped: String { 13 | return self.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet()) ?? "" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Observables/Implementations/Never.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Never.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Never : Producer { 12 | override func subscribe(observer: O) -> Disposable { 13 | return NopDisposable.instance 14 | } 15 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Cancelable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Cancelable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 3/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Represents disposable resource with state tracking. 13 | */ 14 | public protocol Cancelable : Disposable { 15 | /** 16 | - returns: Was resource disposed. 17 | */ 18 | var disposed: Bool { get } 19 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/RxCocoaTests/Driver+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Driver+Extensions.swift 3 | // Tests 4 | // 5 | // Created by Krunoslav Zaher on 12/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxCocoa 11 | 12 | extension Driver : Equatable { 13 | 14 | } 15 | 16 | public func == (lhs: Driver, rhs: Driver) -> Bool { 17 | return lhs.asObservable() === rhs.asObservable() 18 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/Tests/TestErrors.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TestErrors.swift 3 | // Tests 4 | // 5 | // Created by Krunoslav Zaher on 12/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | let testError = NSError(domain: "dummyError", code: -232, userInfo: nil) 12 | let testError1 = NSError(domain: "dummyError1", code: -233, userInfo: nil) 13 | let testError2 = NSError(domain: "dummyError2", code: -234, userInfo: nil) 14 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Examples/Calculator/CalculatorAction.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CalculatorAction.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 12/21/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum Action { 12 | case Clear 13 | case ChangeSign 14 | case Percent 15 | case Operation(Operator) 16 | case Equal 17 | case AddNumber(Character) 18 | case AddDot 19 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Observables/Implementations/Empty.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Empty.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Empty : Producer { 12 | override func subscribe(observer: O) -> Disposable { 13 | observer.on(.Completed) 14 | return NopDisposable.instance 15 | } 16 | } -------------------------------------------------------------------------------- /ViperPrototype/Modules/MovieDetail/View/MovieDetailView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MovieDetailView.swift 3 | // ViperPrototype 4 | // 5 | // Created by Adriano Goncalves on 13/02/2016. 6 | // Copyright © 2016 Adriano Goncalves. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class MovieDetailView: UIViewController { 12 | 13 | override func viewWillAppear(animated: Bool) { 14 | super.viewWillAppear(animated) 15 | navigationController?.navigationBarHidden = false 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Disposables/StableCompositeDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // StableCompositeDisposable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 6/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public final class StableCompositeDisposable { 12 | public static func create(disposable1: Disposable, _ disposable2: Disposable) -> Disposable { 13 | return BinaryDisposable(disposable1, disposable2) 14 | } 15 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Schedulers/Internal/AnonymousInvocable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnonymousInvocable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct AnonymousInvocable : InvocableType { 12 | private let _action: () -> () 13 | 14 | init(_ action: () -> ()) { 15 | _action = action 16 | } 17 | 18 | func invoke() { 19 | _action() 20 | } 21 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Concurrency/LockOwnerType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LockOwnerType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol LockOwnerType : class, Lock { 12 | var _lock: NSRecursiveLock { get } 13 | } 14 | 15 | extension LockOwnerType { 16 | func lock() { 17 | _lock.lock() 18 | } 19 | 20 | func unlock() { 21 | _lock.unlock() 22 | } 23 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Services/DownloadableImage.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DownloadableImage.swift 3 | // RxExample 4 | // 5 | // Created by Vodovozov Gleb on 10/31/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | #if os(iOS) 14 | import UIKit 15 | #elseif os(OSX) 16 | import Cocoa 17 | #endif 18 | 19 | enum DownloadableImage{ 20 | case Content(image:Image) 21 | case OfflinePlaceholder 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxDataSourceStarterKit/RxDataSourceStarterKit.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxDataSourceStarterKit.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 8/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | #if !RX_NO_MODULE 12 | func bindingErrorToInterface(error: ErrorType) { 13 | let error = "Binding error to UI: \(error)" 14 | #if DEBUG 15 | fatalError(error) 16 | #else 17 | print(error) 18 | #endif 19 | } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/scripts/automation-tests/main.js: -------------------------------------------------------------------------------- 1 | 2 | #import "common.js" 3 | #import "01_githubSignUp.js" 4 | #import "02_searchWikipedia.js" 5 | #import "03_masterDetail.js" 6 | #import "04_controlsTests.js" 7 | #import "05_reactivePartialUpdates.js" 8 | 9 | var target = UIATarget.localTarget(); 10 | 11 | // open all screens 12 | for (var i = 0; i < 12; ++i) { 13 | log(i); 14 | target.delay( 0.5 ); 15 | target.frontMostApp().mainWindow().tableViews()[0].cells()[i].tap(); 16 | target.frontMostApp().navigationBar().leftButton().tap(); 17 | } 18 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Images.xcassets/ReactiveExtensionsLogo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "ReactiveExtensionsLogo.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x", 15 | "filename" : "ReactiveExtensionsLogo-2.png" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedDisposeType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol SynchronizedDisposeType : class, Disposable, Lock { 12 | func _synchronized_dispose() 13 | } 14 | 15 | extension SynchronizedDisposeType { 16 | func synchronizedDispose() { 17 | lock(); defer { unlock() } 18 | _synchronized_dispose() 19 | } 20 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedOnType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol SynchronizedOnType : class, ObserverType, Lock { 12 | func _synchronized_on(event: Event) 13 | } 14 | 15 | extension SynchronizedOnType { 16 | func synchronizedOn(event: Event) { 17 | lock(); defer { unlock() } 18 | _synchronized_on(event) 19 | } 20 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Disposables/DisposeBase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DisposeBase.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 4/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Base class for all disposables. 13 | */ 14 | public class DisposeBase { 15 | init() { 16 | #if TRACE_RESOURCES 17 | AtomicIncrement(&resourceCount) 18 | #endif 19 | } 20 | 21 | deinit { 22 | #if TRACE_RESOURCES 23 | AtomicDecrement(&resourceCount) 24 | #endif 25 | } 26 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/RxCocoa.h: -------------------------------------------------------------------------------- 1 | // 2 | // RxCocoa.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 2/21/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "_RX.h" 11 | #import "_RXDelegateProxy.h" 12 | #import "_RXKVOObserver.h" 13 | #import "_RXObjCRuntime.h" 14 | 15 | //! Project version number for RxCocoa. 16 | FOUNDATION_EXPORT double RxCocoaVersionNumber; 17 | 18 | //! Project version string for RxCocoa. 19 | FOUNDATION_EXPORT const unsigned char RxCocoaVersionString[]; -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/Common/Observables/Implementations/DeallocObservable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DeallocObservable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 12/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | class DeallocObservable { 15 | let _subject = ReplaySubject.create(bufferSize: 1) 16 | 17 | init() { 18 | } 19 | 20 | deinit { 21 | _subject.on(.Next(())) 22 | _subject.on(.Completed) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/scripts/automation-tests/05_reactivePartialUpdates.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | test("----- reactivePartialUpdates -----", function (check, pass) { 4 | var target = UIATarget.localTarget() 5 | 6 | target.frontMostApp().mainWindow().tableViews()[0].cells()[10].tap(); 7 | 8 | var rightButton = target.frontMostApp().navigationBar().rightButton(); 9 | rightButton.tap(); 10 | rightButton.tap(); 11 | rightButton.tap(); 12 | rightButton.tap(); 13 | rightButton.tap(); 14 | rightButton.tap(); 15 | rightButton.tap(); 16 | 17 | goBack() 18 | 19 | pass() 20 | }); 21 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxBlocking/README.md: -------------------------------------------------------------------------------- 1 | RxBlocking 2 | ============================================================ 3 | 4 | Set of blocking operators for easy unit testing. 5 | 6 | ***Don't use these operators in production apps. These operators are only meant for testing purposes.*** 7 | 8 | 9 | ```swift 10 | extension ObservableType { 11 | public func toArray() throws -> [E] {} 12 | } 13 | 14 | extension ObservableType { 15 | public func first() throws -> E? {} 16 | } 17 | 18 | extension ObservableType { 19 | public func last() throws -> E? {} 20 | } 21 | ``` 22 | 23 | 24 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/scripts/validate-playgrounds.sh: -------------------------------------------------------------------------------- 1 | . scripts/common.sh 2 | 3 | CONFIGURATIONS=(Release) 4 | 5 | # make sure osx builds 6 | for scheme in "RxSwift-OSX" 7 | do 8 | for configuration in ${CONFIGURATIONS[@]} 9 | do 10 | PAGES_PATH=${BUILD_DIRECTORY}/Build/Products/${configuration}/all-playground-pages.swift 11 | rx ${scheme} ${configuration} "" build 12 | cat Rx.playground/Sources/*.swift Rx.playground/Pages/**/*.swift > ${PAGES_PATH} 13 | swift -v -D NOT_IN_PLAYGROUND -F ${BUILD_DIRECTORY}/Build/Products/${configuration} ${PAGES_PATH} 14 | done 15 | done 16 | 17 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/RxSwiftTests/TestImplementations/EquatableArray.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EquatableArray.swift 3 | // RxTests 4 | // 5 | // Created by Krunoslav Zaher on 10/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct EquatableArray : Equatable { 12 | let elements: [Element] 13 | init(_ elements: [Element]) { 14 | self.elements = elements 15 | } 16 | } 17 | 18 | func == (lhs: EquatableArray, rhs: EquatableArray) -> Bool { 19 | return lhs.elements == rhs.elements 20 | } 21 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Services/UIImage+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+Extensions.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 11/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if os(iOS) 11 | import UIKit 12 | #endif 13 | 14 | extension Image { 15 | func forceLazyImageDecompression() -> Image { 16 | #if os(iOS) 17 | UIGraphicsBeginImageContext(CGSizeMake(1, 1)) 18 | self.drawAtPoint(CGPointZero) 19 | UIGraphicsEndImageContext() 20 | #endif 21 | return self 22 | } 23 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Observables/Implementations/Error.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Error.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Error : Producer { 12 | private let _error: ErrorType 13 | 14 | init(error: ErrorType) { 15 | _error = error 16 | } 17 | 18 | override func subscribe(observer: O) -> Disposable { 19 | observer.on(.Error(_error)) 20 | return NopDisposable.instance 21 | } 22 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InvocableScheduledItem.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct InvocableScheduledItem : InvocableType { 12 | 13 | let _invocable: I 14 | let _state: I.Value 15 | 16 | init(invocable: I, state: I.Value) { 17 | _invocable = invocable 18 | _state = state 19 | } 20 | 21 | func invoke() { 22 | _invocable.invoke(_state) 23 | } 24 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/iOS/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // Example 4 | // 5 | // Created by Krunoslav Zaher on 2/21/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 17 | // Override point for customization after application launch. 18 | return true 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SubscriptionDisposable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct SubscriptionDisposable : Disposable { 12 | private let _key: T.DisposeKey 13 | private weak var _owner: T? 14 | 15 | init(owner: T, key: T.DisposeKey) { 16 | _owner = owner 17 | _key = key 18 | } 19 | 20 | func dispose() { 21 | _owner?.synchronizedUnsubscribe(_key) 22 | } 23 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Examples/TableViewWithEditingCommands/UIImageView+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIImageView+Extensions.swift 3 | // RxExample 4 | // 5 | // Created by carlos on 28/5/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension UIImageView { 12 | 13 | func makeRoundedCorners(radius: CGFloat) { 14 | self.layer.cornerRadius = self.frame.size.width / 2 15 | self.layer.borderColor = UIColor.darkGrayColor().CGColor 16 | self.layer.borderWidth = radius 17 | self.layer.masksToBounds = true 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/RxSwiftTests/TestImplementations/Observable+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Observable+Extensions.swift 3 | // RxTests 4 | // 5 | // Created by Krunoslav Zaher on 6/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | import RxTests 12 | 13 | public func == (lhs: Observable, rhs: Observable) -> Bool { 14 | return lhs === rhs 15 | } 16 | 17 | extension TestableObservable : Equatable { 18 | 19 | } 20 | 21 | public func == (lhs: TestableObservable, rhs: TestableObservable) -> Bool { 22 | return lhs === rhs 23 | } 24 | 25 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/Tests/Recorded+Timeless.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Recorded+Timeless.swift 3 | // Tests 4 | // 5 | // Created by Krunoslav Zaher on 12/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxTests 11 | import RxSwift 12 | 13 | func next(value: T) -> Recorded> { 14 | return Recorded(time: 0, event: .Next(value)) 15 | } 16 | 17 | func completed() -> Recorded> { 18 | return Recorded(time: 0, event: .Completed) 19 | } 20 | 21 | func error(error: ErrorType) -> Recorded> { 22 | return Recorded(time: 0, event: .Error(error)) 23 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/Common/_RXDelegateProxy.h: -------------------------------------------------------------------------------- 1 | // 2 | // _RXDelegateProxy.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface _RXDelegateProxy : NSObject 12 | 13 | @property (nonatomic, assign, readonly) id _forwardToDelegate; 14 | 15 | -(void)_setForwardToDelegate:(id)forwardToDelegate retainDelegate:(BOOL)retainDelegate; 16 | 17 | -(BOOL)hasWiredImplementationForSelector:(SEL)selector; 18 | 19 | -(void)interceptedSelector:(SEL)selector withArguments:(NSArray*)arguments; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/RxSwiftTests/TestImplementations/Mocks/MainThreadPrimitiveHotObservable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainThreadPrimitiveHotObservable.swift 3 | // RxTests 4 | // 5 | // Created by Krunoslav Zaher on 10/14/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | import XCTest 12 | 13 | class MainThreadPrimitiveHotObservable : PrimitiveHotObservable { 14 | override func subscribe(observer: O) -> Disposable { 15 | XCTAssertTrue(isMainThread()) 16 | return super.subscribe(observer) 17 | } 18 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/Common/Logging.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Logging.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 4/3/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Simple logging settings for RxCocoa library. 13 | */ 14 | public struct Logging { 15 | public typealias LogURLRequest = (NSURLRequest) -> Bool 16 | 17 | /** 18 | Log URL requests to standard output in curl format. 19 | */ 20 | public static var URLRequests: LogURLRequest = { _ in 21 | #if DEBUG 22 | return true 23 | #else 24 | return false 25 | #endif 26 | } 27 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/OSX/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 5/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | @NSApplicationMain 12 | class AppDelegate: NSObject, NSApplicationDelegate { 13 | 14 | func applicationDidFinishLaunching(aNotification: NSNotification) { 15 | // Insert code here to initialize your application 16 | } 17 | 18 | func applicationWillTerminate(aNotification: NSNotification) { 19 | // Insert code here to tear down your application 20 | } 21 | 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/RxSwiftTests/TestImplementations/Mocks/MockDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MockDisposable.swift 3 | // RxTests 4 | // 5 | // Created by Yury Korolev on 10/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | import RxTests 12 | 13 | class MockDisposable : Disposable 14 | { 15 | var ticks = [Int]() 16 | private let _scheduler: TestScheduler 17 | 18 | init(scheduler: TestScheduler) { 19 | _scheduler = scheduler 20 | ticks.append(_scheduler.clock) 21 | } 22 | 23 | func dispose() { 24 | ticks.append(_scheduler.clock) 25 | } 26 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/RxSwiftTests/TestImplementations/Mocks/BackgroundThreadPrimitiveHotObservable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BackgroundThreadPrimitiveHotObservable.swift 3 | // RxTests 4 | // 5 | // Created by Krunoslav Zaher on 10/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | import XCTest 12 | 13 | class BackgroundThreadPrimitiveHotObservable : PrimitiveHotObservable { 14 | override func subscribe(observer: O) -> Disposable { 15 | XCTAssertTrue(!isMainThread()) 16 | return super.subscribe(observer) 17 | } 18 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Extensions/String+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // String+Rx.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 12/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension String { 12 | /** 13 | This is needed because on Linux Swift doesn't have `rangeOfString(..., options: .BackwardsSearch)` 14 | */ 15 | func lastIndexOf(character: Character) -> Index? { 16 | var last: Index? 17 | for i in startIndex ..< endIndex { 18 | if self[i] == character { 19 | last = i 20 | } 21 | } 22 | 23 | return last 24 | } 25 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/RxSwiftTests/TestImplementations/Mocks/PrimitiveMockObserver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PrimitiveMockObserver.swift 3 | // RxTests 4 | // 5 | // Created by Krunoslav Zaher on 6/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | import RxTests 12 | 13 | class PrimitiveMockObserver : ObserverType { 14 | typealias Element = ElementType 15 | 16 | var events: [Recorded>] 17 | 18 | init() { 19 | self.events = [] 20 | } 21 | 22 | func on(event: Event) { 23 | events.append(Recorded(time: 0, event: event)) 24 | } 25 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/ObservableConvertibleType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObservableConvertibleType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 9/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Type that can be converted to observable sequence (`Observer`). 13 | */ 14 | public protocol ObservableConvertibleType { 15 | /** 16 | Type of elements in sequence. 17 | */ 18 | typealias E 19 | 20 | /** 21 | Converts `self` to `Observable` sequence. 22 | 23 | - returns: Observable sequence that represents `self`. 24 | */ 25 | func asObservable() -> Observable 26 | } 27 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/RxSwiftTests/TestImplementations/ElementIndexPair.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ElementIndexPair.swift 3 | // RxTests 4 | // 5 | // Created by Krunoslav Zaher on 6/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct ElementIndexPair : Equatable { 12 | let element: E 13 | let index: I 14 | 15 | init(_ element: E, _ index: I) { 16 | self.element = element 17 | self.index = index 18 | } 19 | } 20 | 21 | func == (lhs: ElementIndexPair, rhs: ElementIndexPair) -> Bool { 22 | return lhs.element == rhs.element && lhs.index == rhs.index 23 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Concurrency/SynchronizedSubscribeType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedSubscribeType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol SynchronizedSubscribeType : class, ObservableType, Lock { 12 | func _synchronized_subscribe(observer: O) -> Disposable 13 | } 14 | 15 | extension SynchronizedSubscribeType { 16 | func synchronizedSubscribe(observer: O) -> Disposable { 17 | lock(); defer { unlock() } 18 | return _synchronized_subscribe(observer) 19 | } 20 | } -------------------------------------------------------------------------------- /ViperPrototype/Modules/MovieDetail/Wireframe/MovieDetailWireframe.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MovieDetailWireframe.swift 3 | // ViperPrototype 4 | // 5 | // Created by Adriano Goncalves on 13/02/2016. 6 | // Copyright © 2016 Adriano Goncalves. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | struct MovieDetailWireframe { 12 | 13 | static func presentMovieDetailModule(window: UIWindow) { 14 | let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("MovieDetailView") 15 | if let navController = window.rootViewController as? UINavigationController { 16 | navController.pushViewController(controller, animated: true) 17 | } 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/OSX/NSSlider+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSSlider+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Junior B. on 24/05/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | import Cocoa 14 | 15 | extension NSSlider { 16 | 17 | /** 18 | Reactive wrapper for `value` property. 19 | */ 20 | public var rx_value: ControlProperty { 21 | return rx_value(getter: { [weak self] in 22 | return self?.doubleValue ?? 0 23 | }, setter: { [weak self] value in 24 | self?.doubleValue = value 25 | }) 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample-iOSTests/Mocks/NotImplementedStubs.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NotImplementedStubs.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | import RxTests 12 | 13 | // MARK: Generic support code 14 | 15 | 16 | // MARK: Not implemented stubs 17 | 18 | func notImplemented() -> (T1) -> Observable { 19 | return { _ in 20 | fatalError() 21 | return Observable.empty() 22 | } 23 | } 24 | 25 | func notImplementedSync() -> (T1) -> Void { 26 | return { _ in 27 | fatalError() 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Disposables/NopDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NopDisposable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Represents a disposable that does nothing on disposal. 13 | 14 | Nop = No Operation 15 | */ 16 | public struct NopDisposable : Disposable { 17 | 18 | /** 19 | Singleton instance of `NopDisposable`. 20 | */ 21 | public static let instance: Disposable = NopDisposable() 22 | 23 | init() { 24 | 25 | } 26 | 27 | /** 28 | Does nothing. 29 | */ 30 | public func dispose() { 31 | } 32 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/iOS/UISwitch+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UISwitch+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Carlos García on 8/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | 17 | extension UISwitch { 18 | 19 | /** 20 | Reactive wrapper for `on` property. 21 | */ 22 | public var rx_value: ControlProperty { 23 | return rx_value(getter: { [weak self] in 24 | self?.on ?? false 25 | }, setter: { [weak self] value in 26 | self?.on = value 27 | }) 28 | } 29 | 30 | } 31 | 32 | #endif 33 | 34 | -------------------------------------------------------------------------------- /ViperPrototype/Modules/MainMoviesList/Interactor/MainMoviesListInteractor.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainMoviesListInteractor.swift 3 | // ViperPrototype 4 | // 5 | // Created by Adriano Goncalves on 13/02/2016. 6 | // Copyright © 2016 Adriano Goncalves. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import RxSwift 11 | 12 | struct MainMoviesListInteractor { 13 | 14 | private let apiDataManager: TmdbApiDataManager 15 | private let disposeBag = DisposeBag() 16 | 17 | init(apiDataManager: TmdbApiDataManager) { 18 | self.apiDataManager = apiDataManager 19 | } 20 | 21 | //MARK: Output 22 | 23 | func getAllMovies() -> Observable<[Movie]> { 24 | return apiDataManager.discoverMovies() 25 | } 26 | 27 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/Common/CocoaUnits/Driver/Variable+Driver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Variable+Driver.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 12/28/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | extension Variable { 15 | /** 16 | Converts `Variable` to `Driver` unit. 17 | 18 | - returns: Driving observable sequence. 19 | */ 20 | @warn_unused_result(message="http://git.io/rxs.uo") 21 | public func asDriver() -> Driver { 22 | let source = self.asObservable() 23 | .observeOn(driverObserveOnScheduler) 24 | return Driver(source) 25 | } 26 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxBlocking/BlockingObservable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BlockingObservable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 10/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | /** 15 | `BlockingObservable` is a variety of `Observable` that provides blocking operators. 16 | 17 | It can be useful for testing and demo purposes, but is generally inappropriate for production applications. 18 | 19 | If you think you need to use a `BlockingObservable` this is usually a sign that you should rethink your 20 | design. 21 | */ 22 | public struct BlockingObservable { 23 | let source: Observable 24 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/iOS/UIStepper+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIStepper+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Yuta ToKoRo on 9/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import Foundation 12 | import UIKit 13 | #if !RX_NO_MODULE 14 | import RxSwift 15 | #endif 16 | 17 | extension UIStepper { 18 | 19 | /** 20 | Reactive wrapper for `value` property. 21 | */ 22 | public var rx_value: ControlProperty { 23 | return rx_value(getter: { [weak self] in 24 | self?.value ?? 0 25 | }, setter: { [weak self] value in 26 | self?.value = value 27 | }) 28 | } 29 | 30 | } 31 | 32 | #endif 33 | 34 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/iOS/UISlider+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UISlider+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Alexander van der Werff on 28/05/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | extension UISlider { 18 | 19 | /** 20 | Reactive wrapper for `value` property. 21 | */ 22 | public var rx_value: ControlProperty { 23 | return rx_value(getter: { [weak self] in 24 | self?.value ?? 0.0 25 | }, setter: { [weak self] value in 26 | self?.value = value 27 | }) 28 | } 29 | 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/iOS/UIDatePicker+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIDatePicker+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Daniel Tartaglia on 5/31/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | extension UIDatePicker { 18 | 19 | /** 20 | Reactive wrapper for `date` property. 21 | */ 22 | public var rx_date: ControlProperty { 23 | return rx_value(getter: { [weak self] in 24 | self?.date ?? NSDate() 25 | }, setter: { [weak self] value in 26 | self?.date = value 27 | }) 28 | } 29 | 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/iOS/UITextField+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UITextField+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 2/21/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | extension UITextField { 18 | 19 | /** 20 | Reactive wrapper for `text` property. 21 | */ 22 | public var rx_text: ControlProperty { 23 | return rx_value(getter: { [weak self] in 24 | self?.text ?? "" 25 | }, setter: { [weak self] value in 26 | self?.text = value 27 | }) 28 | } 29 | 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Rx.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxBlocking/ObservableConvertibleType+Blocking.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObservableConvertibleType+Blocking.swift 3 | // RxBlocking 4 | // 5 | // Created by Krunoslav Zaher on 7/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | extension ObservableConvertibleType { 15 | /** 16 | Converts an Observable into a `BlockingObservable` (an Observable with blocking operators). 17 | 18 | - returns: `BlockingObservable` version of `self` 19 | */ 20 | @warn_unused_result(message="http://git.io/rxs.uo") 21 | public func toBlocking() -> BlockingObservable { 22 | return BlockingObservable(source: self.asObservable()) 23 | } 24 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample-iOSTests/Mocks/ValidationResult+Equatable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ValidationResult+Equatable.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // MARK: Equatable 12 | 13 | extension ValidationResult : Equatable { 14 | 15 | } 16 | 17 | func == (lhs: ValidationResult, rhs: ValidationResult) -> Bool { 18 | switch (lhs, rhs) { 19 | case (.OK, .OK): 20 | return true 21 | case (.Empty, .Empty): 22 | return true 23 | case (.Validating, .Validating): 24 | return true 25 | case (.Failed, .Failed): 26 | return true 27 | default: 28 | return false 29 | } 30 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/Common/SectionedViewDataSourceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SectionedViewDataSourceType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 1/10/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Data source with access to underlying sectioned model. 13 | */ 14 | public protocol SectionedViewDataSourceType { 15 | /** 16 | Returns model at index path. 17 | 18 | In case data source doesn't contain any sections when this method is being called, `RxCocoaError.ItemsNotYetBound(object: self)` is thrown. 19 | 20 | - parameter indexPath: Model index path 21 | - returns: Model at index path. 22 | */ 23 | func modelAtIndexPath(indexPath: NSIndexPath) throws -> Any 24 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Rx.playground/Sources/SupportCode.swift: -------------------------------------------------------------------------------- 1 | 2 | import Foundation 3 | 4 | public func example(description: String, action: () -> ()) { 5 | print("\n--- \(description) example ---") 6 | action() 7 | } 8 | 9 | public func delay(delay:Double, closure:()->()) { 10 | dispatch_after( 11 | dispatch_time( 12 | DISPATCH_TIME_NOW, 13 | Int64(delay * Double(NSEC_PER_SEC)) 14 | ), 15 | dispatch_get_main_queue(), closure) 16 | } 17 | 18 | #if NOT_IN_PLAYGROUND 19 | 20 | public func playgroundShouldContinueIndefinitely() { 21 | } 22 | 23 | #else 24 | 25 | import XCPlayground 26 | 27 | public func playgroundShouldContinueIndefinitely() { 28 | XCPlaygroundPage.currentPage.needsIndefiniteExecution = true 29 | } 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/iOS/UISegmentedControl+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UISegmentedControl+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Carlos García on 8/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | 17 | extension UISegmentedControl { 18 | 19 | /** 20 | Reactive wrapper for `selectedSegmentIndex` property. 21 | */ 22 | public var rx_value: ControlProperty { 23 | return rx_value(getter: { [weak self] in 24 | self?.selectedSegmentIndex ?? 0 25 | }, setter: { [weak self] value in 26 | self?.selectedSegmentIndex = value 27 | }) 28 | } 29 | 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /ViperPrototype/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/DataStructures/InfiniteSequence.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InfiniteSequence.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 6/13/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Sequence that repeats `repeatedValue` infinite number of times. 13 | */ 14 | struct InfiniteSequence : SequenceType { 15 | typealias Element = E 16 | typealias Generator = AnyGenerator 17 | 18 | private let _repeatedValue: E 19 | 20 | init(repeatedValue: E) { 21 | _repeatedValue = repeatedValue 22 | } 23 | 24 | func generate() -> Generator { 25 | let repeatedValue = _repeatedValue 26 | return anyGenerator { 27 | return repeatedValue 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Observables/Implementations/StartWith.swift: -------------------------------------------------------------------------------- 1 | // 2 | // StartWith.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 4/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class StartWith: Producer { 12 | let elements: [Element] 13 | let source: Observable 14 | 15 | init(source: Observable, elements: [Element]) { 16 | self.source = source 17 | self.elements = elements 18 | super.init() 19 | } 20 | 21 | override func run(observer: O) -> Disposable { 22 | for e in elements { 23 | observer.on(.Next(e)) 24 | } 25 | 26 | return source.subscribe(observer) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Subjects/SubjectType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SubjectType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 3/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Represents an object that is both an observable sequence as well as an observer. 13 | */ 14 | public protocol SubjectType : ObservableType { 15 | /** 16 | The type of the observer that represents this subject. 17 | 18 | Usually this type is type of subject itself, but it doesn't have to be. 19 | */ 20 | typealias SubjectObserverType : ObserverType 21 | 22 | /** 23 | Returns observer interface for subject. 24 | 25 | - returns: Observer interface for subject. 26 | */ 27 | func asObserver() -> SubjectObserverType 28 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/OSX/NSButton+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSButton+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 5/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | import Cocoa 14 | 15 | extension NSButton { 16 | 17 | /** 18 | Reactive wrapper for control event. 19 | */ 20 | public var rx_tap: ControlEvent { 21 | return rx_controlEvent 22 | } 23 | 24 | /** 25 | Reactive wrapper for `state` property`. 26 | */ 27 | public var rx_state: ControlProperty { 28 | return rx_value(getter: { [weak self] in 29 | return self?.state ?? 0 30 | }, setter: { [weak self] state in 31 | self?.state = state 32 | }) 33 | } 34 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/iOS/RootViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RootViewController.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 4/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | #if !RX_NO_MODULE 12 | import RxSwift 13 | import RxCocoa 14 | #endif 15 | 16 | public class RootViewController : UITableViewController { 17 | public override func viewDidLoad() { 18 | super.viewDidLoad() 19 | // force load 20 | GitHubSearchRepositoriesAPI.sharedAPI.activityIndicator 21 | DefaultWikipediaAPI.sharedAPI 22 | DefaultImageService.sharedImageService 23 | DefaultWireframe.sharedInstance 24 | MainScheduler.instance 25 | ReachabilityService.sharedReachabilityService 26 | } 27 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/RxSwiftTests/TestImplementations/Mocks/TestConnectableObservable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TestConnectableObservable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 4/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | 12 | class TestConnectableObservable : ConnectableObservableType { 13 | typealias E = S.E 14 | 15 | let _o: ConnectableObservable 16 | 17 | init(o: Observable, s: S) { 18 | _o = o.multicast(s) 19 | } 20 | 21 | func connect() -> Disposable { 22 | return _o.connect() 23 | } 24 | 25 | func subscribe(observer: O) -> Disposable { 26 | return _o.subscribe(observer) 27 | } 28 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HistoricalScheduler.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 12/27/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Provides a virtual time scheduler that uses `NSDate` for absolute time and `NSTimeInterval` for relative time. 13 | */ 14 | public class HistoricalScheduler : VirtualTimeScheduler { 15 | 16 | /** 17 | Creates a new historical scheduler with initial clock value. 18 | 19 | - parameter initialClock: Initial value for virtual clock. 20 | */ 21 | public init(initialClock: RxTime = NSDate(timeIntervalSince1970: 0)) { 22 | super.init(initialClock: initialClock, converter: HistoricalSchedulerTimeConverter()) 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /ViperPrototype/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ViperPrototype 4 | // 5 | // Created by Adriano Goncalves on 13/02/2016. 6 | // Copyright © 2016 Adriano Goncalves. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 17 | self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 18 | if let window = window { 19 | window.rootViewController = UINavigationController(navigationBarClass: nil, toolbarClass: nil) 20 | ConfigurationsWireframe.presentConfigurationsModule(window) 21 | window.makeKeyAndVisible() 22 | } 23 | return true 24 | } 25 | 26 | } 27 | 28 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample-iOSTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/scripts/automation-tests/02_searchWikipedia.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | test("----- searchWikipedia -----", function (check, pass) { 4 | 5 | var target = UIATarget.localTarget() 6 | 7 | var width = target.frontMostApp().mainWindow().rect().size.width 8 | 9 | target.frontMostApp().mainWindow().tableViews()[0].cells()[11].tap(); 10 | 11 | target.delay(2); 12 | 13 | var searchBar = target.frontMostApp().mainWindow().searchBars()[0]; 14 | 15 | searchBar.tap() 16 | target.frontMostApp().keyboard().typeString("banana"); 17 | 18 | target.delay(1); 19 | 20 | target.tap({x:width - 40, y:43}); 21 | 22 | target.delay(1); 23 | 24 | searchBar.tap(); 25 | target.delay(1); 26 | 27 | target.frontMostApp().keyboard().typeString("Yosemite"); 28 | target.delay(1); 29 | 30 | target.tap({x:width - 40, y:43}); 31 | 32 | goBack(); 33 | 34 | pass(); 35 | }); 36 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/RxMutableBox.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxMutableBox.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 5/22/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Creates mutable reference wrapper for any type. 13 | */ 14 | class RxMutableBox : CustomDebugStringConvertible { 15 | /** 16 | Wrapped value 17 | */ 18 | var value : T 19 | 20 | /** 21 | Creates reference wrapper for `value`. 22 | 23 | - parameter value: Value to wrap. 24 | */ 25 | init (_ value: T) { 26 | self.value = value 27 | } 28 | } 29 | 30 | extension RxMutableBox { 31 | /** 32 | - returns: Box description. 33 | */ 34 | var debugDescription: String { 35 | get { 36 | return "MutatingBox(\(self.value))" 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/ConnectableObservableType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ConnectableObservableType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 3/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Represents an observable sequence wrapper that can be connected and disconnected from its underlying observable sequence. 13 | */ 14 | public protocol ConnectableObservableType : ObservableType { 15 | /** 16 | Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. 17 | 18 | - returns: Disposable used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. 19 | */ 20 | func connect() -> Disposable 21 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/RxCocoaTests/NSControl+RxTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSControl+RxTests.swift 3 | // Tests 4 | // 5 | // Created by mrahmiao on 1/1/16. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | import RxCocoa 12 | import Cocoa 13 | import XCTest 14 | 15 | class NSControlTests : RxTest { 16 | } 17 | 18 | extension NSControlTests { 19 | func testEnabled_False() { 20 | let subject = NSButton(frame: CGRectMake(0, 0, 1, 1)) 21 | Observable.just(false).subscribe(subject.rx_enabled).dispose() 22 | 23 | XCTAssertTrue(subject.enabled == false) 24 | } 25 | 26 | func testEnabled_True() { 27 | let subject = NSButton(frame: CGRectMake(0, 0, 1, 1)) 28 | Observable.just(true).subscribe(subject.rx_enabled).dispose() 29 | 30 | XCTAssertTrue(subject.enabled == true) 31 | } 32 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/Common/KVORepresentable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KVORepresentable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 11/14/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Type that is KVO representable (KVO mechanism can be used to observe it). 13 | */ 14 | public protocol KVORepresentable { 15 | /** 16 | Associated KVO type. 17 | */ 18 | typealias KVOType 19 | 20 | /** 21 | Constructs `Self` using KVO value. 22 | */ 23 | init?(KVOValue: KVOType) 24 | } 25 | 26 | extension KVORepresentable { 27 | /** 28 | Initializes `KVORepresentable` with optional value. 29 | */ 30 | init?(KVOValue: KVOType?) { 31 | guard let KVOValue = KVOValue else { 32 | return nil 33 | } 34 | 35 | self.init(KVOValue: KVOValue) 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Observables/Implementations/Producer.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Producer.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/20/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Producer : Observable { 12 | override init() { 13 | super.init() 14 | } 15 | 16 | override func subscribe(observer: O) -> Disposable { 17 | if !CurrentThreadScheduler.isScheduleRequired { 18 | return run(observer) 19 | } 20 | else { 21 | return CurrentThreadScheduler.instance.schedule(()) { _ in 22 | return self.run(observer) 23 | } 24 | } 25 | } 26 | 27 | func run(observer: O) -> Disposable { 28 | abstractMethod() 29 | } 30 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Observers/AnonymousObserver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnonymousObserver.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class AnonymousObserver : ObserverBase { 12 | typealias Element = ElementType 13 | 14 | typealias EventHandler = Event -> Void 15 | 16 | private let _eventHandler : EventHandler 17 | 18 | init(_ eventHandler: EventHandler) { 19 | #if TRACE_RESOURCES 20 | AtomicIncrement(&resourceCount) 21 | #endif 22 | _eventHandler = eventHandler 23 | } 24 | 25 | override func onCore(event: Event) { 26 | return _eventHandler(event) 27 | } 28 | 29 | #if TRACE_RESOURCES 30 | deinit { 31 | AtomicDecrement(&resourceCount) 32 | } 33 | #endif 34 | } 35 | -------------------------------------------------------------------------------- /ViperPrototype/Configuration/AppConfiguration.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppConfiguration.swift 3 | // ViperPrototype 4 | // 5 | // Created by Adriano Goncalves on 13/02/2016. 6 | // Copyright © 2016 Adriano Goncalves. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class AppConfiguration { 12 | 13 | private (set) var tmdbConfiguration: TmdbConfiguration? 14 | 15 | static let sharedInstance = AppConfiguration() 16 | 17 | var posterBasePath: String { 18 | return tmdbConfiguration!.imagesBaseUrl + tmdbConfiguration!.posterSizes[tmdbConfiguration!.posterSizes.count-2] 19 | } 20 | 21 | var backdropBasePath: String { 22 | return tmdbConfiguration!.imagesBaseUrl + tmdbConfiguration!.backdropSizes[tmdbConfiguration!.backdropSizes.count-2] 23 | } 24 | 25 | func setTmdbConfiguration(configuration: TmdbConfiguration) { 26 | tmdbConfiguration = configuration 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /ViperPrototype/Configuration/TmdbConfiguration.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TmdbConfiguration.swift 3 | // ViperPrototype 4 | // 5 | // Created by Adriano Goncalves on 13/02/2016. 6 | // Copyright © 2016 Adriano Goncalves. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct TmdbConfiguration { 12 | 13 | let imagesBaseUrl: String 14 | let posterSizes: [String] 15 | let backdropSizes: [String] 16 | 17 | init?(jsonDictionary: [NSObject: AnyObject]) { 18 | 19 | guard let images = jsonDictionary["images"] as? [NSObject: AnyObject], 20 | baseUrl = images["base_url"] as? String, 21 | posterSizes = images["poster_sizes"] as? [String], 22 | backdropSizes = images["backdrop_sizes"] as? [String] else { return nil } 23 | 24 | self.imagesBaseUrl = baseUrl 25 | self.posterSizes = posterSizes 26 | self.backdropSizes = backdropSizes 27 | 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Services/PseudoRandomGenerator.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PseudoRandomGenerator.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 6/28/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | // https://en.wikipedia.org/wiki/Random_number_generation 13 | class PseudoRandomGenerator { 14 | var m_w: UInt32 /* must not be zero, nor 0x464fffff */ 15 | var m_z: UInt32 /* must not be zero, nor 0x9068ffff */ 16 | 17 | init(_ m_w: UInt32, _ m_z: UInt32) { 18 | self.m_w = m_w 19 | self.m_z = m_z 20 | } 21 | 22 | func get_random() -> Int { 23 | m_z = 36969 &* (m_z & 65535) &+ (m_z >> 16); 24 | m_w = 18000 &* (m_w & 65535) &+ (m_w >> 16); 25 | let val = ((m_z << 16) &+ m_w) 26 | return Int(val % (1 << 30)) /* 32-bit result */ 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/Common/CocoaUnits/Driver/ControlEvent+Driver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ControlEvent+Driver.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 9/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | extension ControlEvent { 15 | /** 16 | Converts `ControlEvent` to `Driver` unit. 17 | 18 | `ControlEvent` already can't fail, so no special case needs to be handled. 19 | */ 20 | @warn_unused_result(message="http://git.io/rxs.uo") 21 | public func asDriver() -> Driver { 22 | return self.asDriver { (error) -> Driver in 23 | #if DEBUG 24 | rxFatalError("Somehow driver received error from a source that shouldn't fail.") 25 | #else 26 | return Driver.empty() 27 | #endif 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxBlocking/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 2.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/Common/CocoaUnits/Driver/ControlProperty+Driver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ControlProperty+Driver.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 9/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | extension ControlProperty { 15 | /** 16 | Converts `ControlProperty` to `Driver` unit. 17 | 18 | `ControlProperty` already can't fail, so no special case needs to be handled. 19 | */ 20 | @warn_unused_result(message="http://git.io/rxs.uo") 21 | public func asDriver() -> Driver { 22 | return self.asDriver { (error) -> Driver in 23 | #if DEBUG 24 | rxFatalError("Somehow driver received error from a source that shouldn't fail.") 25 | #else 26 | return Driver.empty() 27 | #endif 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 2.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 2.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 2.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Operators.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Operators.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 12/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | import RxCocoa 13 | #endif 14 | 15 | // Two way binding operator between control property and variable, that's all it takes { 16 | 17 | infix operator <-> { 18 | } 19 | 20 | func <-> (property: ControlProperty, variable: Variable) -> Disposable { 21 | let bindToUIDisposable = variable.asObservable() 22 | .bindTo(property) 23 | let bindToVariable = property 24 | .subscribe(onNext: { n in 25 | variable.value = n 26 | }, onCompleted: { 27 | bindToUIDisposable.dispose() 28 | }) 29 | 30 | return StableCompositeDisposable.create(bindToUIDisposable, bindToVariable) 31 | } 32 | 33 | // } 34 | 35 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Observers/ObserverBase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObserverBase.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class ObserverBase : Disposable, ObserverType { 12 | typealias E = ElementType 13 | 14 | private var _isStopped: AtomicInt = 0 15 | 16 | func on(event: Event) { 17 | switch event { 18 | case .Next: 19 | if _isStopped == 0 { 20 | onCore(event) 21 | } 22 | case .Error, .Completed: 23 | 24 | if !AtomicCompareAndSwap(0, 1, &_isStopped) { 25 | return 26 | } 27 | 28 | onCore(event) 29 | } 30 | } 31 | 32 | func onCore(event: Event) { 33 | abstractMethod() 34 | } 35 | 36 | func dispose() { 37 | _isStopped = 1 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScheduledItem.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 9/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct ScheduledItem 12 | : ScheduledItemType 13 | , InvocableType { 14 | typealias Action = T -> Disposable 15 | 16 | private let _action: Action 17 | private let _state: T 18 | 19 | private let _disposable = SingleAssignmentDisposable() 20 | 21 | var disposed: Bool { 22 | get { 23 | return _disposable.disposed 24 | } 25 | } 26 | 27 | init(action: Action, state: T) { 28 | _action = action 29 | _state = state 30 | } 31 | 32 | func invoke() { 33 | _disposable.disposable = _action(_state) 34 | } 35 | 36 | func dispose() { 37 | _disposable.dispose() 38 | } 39 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/Common/RxTarget.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTarget.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | class RxTarget : NSObject 15 | , Disposable { 16 | 17 | private var retainSelf: RxTarget? 18 | 19 | override init() { 20 | super.init() 21 | self.retainSelf = self 22 | 23 | #if TRACE_RESOURCES 24 | OSAtomicIncrement32(&resourceCount) 25 | #endif 26 | 27 | #if DEBUG 28 | MainScheduler.ensureExecutingOnScheduler() 29 | #endif 30 | } 31 | 32 | func dispose() { 33 | #if DEBUG 34 | MainScheduler.ensureExecutingOnScheduler() 35 | #endif 36 | self.retainSelf = nil 37 | } 38 | 39 | #if TRACE_RESOURCES 40 | deinit { 41 | OSAtomicDecrement32(&resourceCount) 42 | } 43 | #endif 44 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Rx.playground/Pages/Index.xcplaygroundpage/Contents.swift: -------------------------------------------------------------------------------- 1 | 2 | /*: 3 | > # IMPORTANT: To use `RxSamples`, please: 4 | 5 | 1. Open `Rx.xcworkspace` 6 | 2. Build `RxSwift-OSX` scheme 7 | 3. And then open `Rx` playground in `Rx.xcworkspace` tree view. 8 | 4. Choose `View > Show Debug Area` 9 | */ 10 | 11 | /*: 12 | ## Index: 13 | 14 | 1. [Introduction](Introduction) 15 | 1. [Subjects](Subjects) 16 | 1. [Transforming Observables](Transforming_Observables) 17 | 1. [Filtering Observables](Filtering_Observables) 18 | 1. [Combining Observables](Combining_Observables) 19 | 1. [Error Handling Operators](Error_Handling_Operators) 20 | 1. [Observable Utility Operators](Observable_Utility_Operators) 21 | 1. [Conditional and Boolean Operators](Conditional_and_Boolean_Operators) 22 | 1. [Mathematical and Aggregate Operators](Mathematical_and_Aggregate_Operators) 23 | 1. [Connectable Observable Operators](Connectable_Observable_Operators) 24 | 25 | */ 26 | 27 | //: [Index](Index) - [Next >>](@next) 28 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/Common/_RXKVOObserver.h: -------------------------------------------------------------------------------- 1 | // 2 | // _RXKVOObserver.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/11/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /** 12 | ################################################################################ 13 | This file is part of RX private API 14 | ################################################################################ 15 | */ 16 | 17 | typedef void (^KVOCallback)(id); 18 | 19 | // Exists because if written in Swift, reading unowned is disabled during dealloc process 20 | @interface _RXKVOObserver : NSObject 21 | 22 | -(instancetype)initWithTarget:(id)target 23 | retainTarget:(BOOL)retainTarget 24 | keyPath:(NSString*)keyPath 25 | options:(NSKeyValueObservingOptions)options 26 | callback:(KVOCallback)callback; 27 | 28 | -(void)dispose; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample-iOSTests/Mocks/MockWireframe.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MockWireframe.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | 12 | class MockWireframe : Wireframe { 13 | let _openURL: (NSURL) -> () 14 | let _promptFor: (String, Any, [Any]) -> Observable 15 | 16 | init(openURL: (NSURL) -> () = notImplementedSync(), 17 | promptFor: (String, Any, [Any]) -> Observable = notImplemented()) { 18 | _openURL = openURL 19 | _promptFor = promptFor 20 | } 21 | 22 | func openURL(URL: NSURL) { 23 | _openURL(URL) 24 | } 25 | 26 | func promptFor(message: String, cancelAction: Action, actions: [Action]) -> Observable { 27 | return _promptFor(message, cancelAction, actions.map { $0 as Any }).map { $0 as! Action } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Examples/TableViewWithEditingCommands/User.swift: -------------------------------------------------------------------------------- 1 | // 2 | // User.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct User: Equatable, CustomDebugStringConvertible { 12 | 13 | var firstName: String 14 | var lastName: String 15 | var imageURL: String 16 | 17 | init(firstName: String, lastName: String, imageURL: String) { 18 | self.firstName = firstName 19 | self.lastName = lastName 20 | self.imageURL = imageURL 21 | } 22 | } 23 | 24 | extension User { 25 | var debugDescription: String { 26 | get { 27 | return firstName + " " + lastName 28 | } 29 | } 30 | } 31 | 32 | func ==(lhs: User, rhs:User) -> Bool { 33 | return lhs.firstName == rhs.firstName && 34 | lhs.lastName == rhs.lastName && 35 | lhs.imageURL == rhs.imageURL 36 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | build/ 4 | Build/ 5 | *.pbxuser 6 | !default.pbxuser 7 | *.mode1v3 8 | !default.mode1v3 9 | *.mode2v3 10 | !default.mode2v3 11 | *.perspectivev3 12 | !default.perspectivev3 13 | xcuserdata 14 | *.xccheckout 15 | *.moved-aside 16 | DerivedData 17 | *.hmap 18 | *.ipa 19 | *.xcuserstate 20 | 21 | timeline.xctimeline 22 | 23 | # CocoaPods 24 | # 25 | # We recommend against adding the Pods directory to your .gitignore. However 26 | # you should judge for yourself, the pros and cons are mentioned at: 27 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 28 | # 29 | # Pods/ 30 | 31 | # Carthage 32 | # 33 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 34 | # Carthage/Checkouts 35 | 36 | Carthage/Build 37 | 38 | 39 | # Various 40 | 41 | .DS_Store 42 | 43 | 44 | # Linux 45 | 46 | *.swp 47 | *.swo 48 | 49 | # Swift Package Manager 50 | 51 | .build/ 52 | Packages/ 53 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/iOS/Protocols/RxTableViewDataSourceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTableViewDataSourceType.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/26/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import Foundation 12 | import UIKit 13 | #if !RX_NO_MODULE 14 | import RxSwift 15 | #endif 16 | 17 | /** 18 | Marks data source as `UITableView` reactive data source enabling it to be used with one of the `bindTo` methods. 19 | */ 20 | public protocol RxTableViewDataSourceType /*: UITableViewDataSource*/ { 21 | 22 | /** 23 | Type of elements that can be bound to table view. 24 | */ 25 | typealias Element 26 | 27 | /** 28 | New observable sequence event observed. 29 | 30 | - parameter tableView: Bound table view. 31 | - parameter observedEvent: Event 32 | */ 33 | func tableView(tableView: UITableView, observedEvent: Event) -> Void 34 | } 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/iOS/UIButton+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIButton+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 3/28/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | extension UIButton { 18 | 19 | /** 20 | Reactive wrapper for `TouchUpInside` control event. 21 | */ 22 | public var rx_tap: ControlEvent { 23 | return rx_controlEvent(.TouchUpInside) 24 | } 25 | 26 | } 27 | 28 | #endif 29 | 30 | #if os(tvOS) 31 | 32 | import Foundation 33 | #if !RX_NO_MODULE 34 | import RxSwift 35 | #endif 36 | import UIKit 37 | 38 | extension UIButton { 39 | 40 | /** 41 | Reactive wrapper for `PrimaryActionTriggered` control event. 42 | */ 43 | public var rx_primaryAction: ControlEvent { 44 | return rx_controlEvent(.PrimaryActionTriggered) 45 | } 46 | } 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Info-OSX.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | NSMainStoryboardFile 24 | Main 25 | NSPrincipalClass 26 | NSApplication 27 | 28 | 29 | -------------------------------------------------------------------------------- /ViperPrototype/Modules/Configurations/Interactor/ConfigurationsInteractor.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ConfigurationsInteractor.swift 3 | // ViperPrototype 4 | // 5 | // Created by Adriano Goncalves on 13/02/2016. 6 | // Copyright © 2016 Adriano Goncalves. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | 12 | struct ConfigurationsInteractor { 13 | 14 | private let disposeBag = DisposeBag() 15 | private let dataManager: TmdbApiDataManager 16 | 17 | init(dataManager: TmdbApiDataManager) { 18 | self.dataManager = dataManager 19 | } 20 | 21 | func getConfigurations() -> Observable { 22 | 23 | return Observable.create { observer in 24 | 25 | self.dataManager.configurations().subscribeNext { (configuration) -> Void in 26 | observer.onNext(configuration.imagesBaseUrl != "") 27 | }.addDisposableTo(self.disposeBag) 28 | 29 | return AnonymousDisposable {} 30 | 31 | } 32 | 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/iOS/Proxies/RxSearchBarDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxSearchBarDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import Foundation 12 | import UIKit 13 | #if !RX_NO_MODULE 14 | import RxSwift 15 | #endif 16 | 17 | class RxSearchBarDelegateProxy : DelegateProxy 18 | , UISearchBarDelegate 19 | , DelegateProxyType { 20 | 21 | class func currentDelegateFor(object: AnyObject) -> AnyObject? { 22 | let searchBar: UISearchBar = castOrFatalError(object) 23 | return searchBar.delegate 24 | } 25 | 26 | class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { 27 | let searchBar: UISearchBar = castOrFatalError(object) 28 | searchBar.delegate = castOptionalOrFatalError(delegate) 29 | } 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample-iOSTests/Mocks/MockGitHubAPI.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MockGitHubAPI.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | 12 | class MockGitHubAPI : GitHubAPI { 13 | let _usernameAvailable: String -> Observable 14 | let _signup: (String, String) -> Observable 15 | 16 | init( 17 | usernameAvailable: (String) -> Observable = notImplemented(), 18 | signup: (String, String) -> Observable = notImplemented() 19 | ) { 20 | _usernameAvailable = usernameAvailable 21 | _signup = signup 22 | } 23 | 24 | func usernameAvailable(username: String) -> Observable { 25 | return _usernameAvailable(username) 26 | } 27 | 28 | func signup(username: String, password: String) -> Observable { 29 | return _signup(username, password) 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/Common/Proxies/RxCLLocationManagerDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxCLLocationManagerDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Carlos García on 8/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import CoreLocation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | class RxCLLocationManagerDelegateProxy : DelegateProxy 15 | , CLLocationManagerDelegate 16 | , DelegateProxyType { 17 | 18 | class func currentDelegateFor(object: AnyObject) -> AnyObject? { 19 | let locationManager: CLLocationManager = castOrFatalError(object) 20 | return locationManager.delegate 21 | } 22 | 23 | class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { 24 | let locationManager: CLLocationManager = castOrFatalError(object) 25 | locationManager.delegate = castOptionalOrFatalError(delegate) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxTests/TestableObserver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TestableObserver.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | 12 | /** 13 | Observer that records events together with virtual time when they were received. 14 | */ 15 | public class TestableObserver 16 | : ObserverType { 17 | public typealias Element = ElementType 18 | 19 | private let _scheduler: TestScheduler 20 | 21 | /** 22 | Recorded events. 23 | */ 24 | public private(set) var events = [Recorded>]() 25 | 26 | init(scheduler: TestScheduler) { 27 | _scheduler = scheduler 28 | } 29 | 30 | /** 31 | Notify observer about sequence event. 32 | 33 | - parameter event: Event that occured. 34 | */ 35 | public func on(event: Event) { 36 | events.append(Recorded(time: _scheduler.clock, event: event)) 37 | } 38 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Examples/WikipediaImageSearch/WikipediaAPI/WikipediaPage.swift: -------------------------------------------------------------------------------- 1 | // 2 | // WikipediaPage.swift 3 | // Example 4 | // 5 | // Created by Krunoslav Zaher on 3/28/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | struct WikipediaPage { 15 | let title: String 16 | let text: String 17 | 18 | init(title: String, text: String) { 19 | self.title = title 20 | self.text = text 21 | } 22 | 23 | // tedious parsing part 24 | static func parseJSON(json: NSDictionary) throws -> WikipediaPage { 25 | guard let title = json.valueForKey("parse")?.valueForKey("title") as? String, 26 | let text = json.valueForKey("parse")?.valueForKey("text")?.valueForKey("*") as? String else { 27 | throw apiError("Error parsing page content") 28 | } 29 | 30 | return WikipediaPage(title: title, text: text) 31 | } 32 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/iOS/Protocols/RxCollectionViewDataSourceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxCollectionViewDataSourceType.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import Foundation 12 | import UIKit 13 | #if !RX_NO_MODULE 14 | import RxSwift 15 | #endif 16 | 17 | /** 18 | Marks data source as `UICollectionView` reactive data source enabling it to be used with one of the `bindTo` methods. 19 | */ 20 | public protocol RxCollectionViewDataSourceType /*: UICollectionViewDataSource*/ { 21 | 22 | /** 23 | Type of elements that can be bound to collection view. 24 | */ 25 | typealias Element 26 | 27 | /** 28 | New observable sequence event observed. 29 | 30 | - parameter collectionView: Bound collection view. 31 | - parameter observedEvent: Event 32 | */ 33 | func collectionView(collectionView: UICollectionView, observedEvent: Event) -> Void 34 | } 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/iOS/Proxies/RxTableViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTableViewDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import Foundation 12 | import UIKit 13 | #if !RX_NO_MODULE 14 | import RxSwift 15 | #endif 16 | 17 | /** 18 | For more information take a look at `DelegateProxyType`. 19 | */ 20 | public class RxTableViewDelegateProxy 21 | : RxScrollViewDelegateProxy 22 | , UITableViewDelegate { 23 | 24 | 25 | /** 26 | Typed parent object. 27 | */ 28 | public weak private(set) var tableView: UITableView? 29 | 30 | /** 31 | Initializes `RxTableViewDelegateProxy` 32 | 33 | - parameter parentObject: Parent object for delegate proxy. 34 | */ 35 | public required init(parentObject: AnyObject) { 36 | self.tableView = (parentObject as! UITableView) 37 | super.init(parentObject: parentObject) 38 | } 39 | } 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/scripts/automation-tests/01_githubSignUp.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | test("----- githubSignUp -----", function (check, pass) { 4 | 5 | var target = UIATarget.localTarget(); 6 | 7 | UIATarget.onAlert = function(alert){ 8 | var okButton = UIATarget.localTarget().frontMostApp().alert().cancelButton().tap(); 9 | 10 | sleep(1) 11 | goBack() 12 | 13 | pass() 14 | return false; 15 | } 16 | 17 | target.frontMostApp().mainWindow().tableViews()[0].cells()[2].tap(); 18 | 19 | target.frontMostApp().mainWindow().textFields()[0].tap(); 20 | target.frontMostApp().keyboard().typeString("rxrevolution") 21 | 22 | target.frontMostApp().mainWindow().secureTextFields()[0].tap(); 23 | target.frontMostApp().keyboard().typeString("mypassword") 24 | 25 | target.frontMostApp().mainWindow().secureTextFields()[1].tap(); 26 | target.frontMostApp().keyboard().typeString("mypassword") 27 | 28 | UIATarget.localTarget().tap({x:14.50, y:80.00}); 29 | target.frontMostApp().mainWindow().buttons()["Sign up"].tap(); 30 | 31 | sleep(2) 32 | }); 33 | -------------------------------------------------------------------------------- /ViperPrototype/Modules/MainMoviesList/View/MainMoviesListCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainMoviesListCell.swift 3 | // ViperPrototype 4 | // 5 | // Created by Adriano Goncalves on 13/02/2016. 6 | // Copyright © 2016 Adriano Goncalves. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import RxSwift 11 | 12 | class MainMoviesListCell: UICollectionViewCell { 13 | 14 | private let disposeBag = DisposeBag() 15 | 16 | static var identifier: String { return String(self) } 17 | 18 | @IBOutlet weak private var backgroundImage: UIImageView! 19 | @IBOutlet weak private var titleLabel: UILabel! 20 | @IBOutlet weak private var releaseDateLabel: UILabel! 21 | 22 | func updateUI(model: MainMoviesListViewItem) { 23 | backgroundImage.image = nil 24 | titleLabel.text = model.movieTitle 25 | releaseDateLabel.text = model.movieReleaseDate 26 | model.backdropImage?.asDriver(onErrorJustReturn: UIImage()).driveNext({ (image) -> Void in 27 | self.backgroundImage.image = image 28 | }).addDisposableTo(disposeBag) 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /ViperPrototype/Services/TmdbApiService.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TmdbApiService.swift 3 | // ViperPrototype 4 | // 5 | // Created by Adriano Goncalves on 13/02/2016. 6 | // Copyright © 2016 Adriano Goncalves. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import RxSwift 11 | 12 | struct TmdbApiService { 13 | 14 | private let apiKey = "dac7d87953c93d4b13c689999e59fd8e" 15 | private let disposeBag = DisposeBag() 16 | 17 | private let urlSession: NSURLSession 18 | 19 | init(urlSession: NSURLSession = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration())) { 20 | self.urlSession = urlSession 21 | } 22 | 23 | func discoverMovies() -> Observable { 24 | return urlSession.rx_JSON(NSURLRequest(URL: NSURL(string: "https://api.themoviedb.org/3/discover/movie?api_key=\(apiKey)")!)) 25 | } 26 | 27 | func configurations() -> Observable { 28 | return urlSession.rx_JSON(NSURLRequest(URL: NSURL(string: "https://api.themoviedb.org/3/configuration?api_key=\(apiKey)")!)) 29 | } 30 | 31 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/Common/NSLayoutConstraint+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSLayoutConstraint+Rx.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 12/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | #if os(OSX) 12 | import Cocoa 13 | #else 14 | import UIKit 15 | #endif 16 | 17 | #if !RX_NO_MODULE 18 | import RxSwift 19 | #endif 20 | 21 | #if os(iOS) || os(OSX) || os(tvOS) 22 | extension NSLayoutConstraint { 23 | /** 24 | Bindable sink for `constant` property. 25 | */ 26 | public var rx_constant: AnyObserver { 27 | return AnyObserver { [weak self] event in 28 | MainScheduler.ensureExecutingOnScheduler() 29 | 30 | switch event { 31 | case .Next(let value): 32 | self?.constant = value 33 | case .Error(let error): 34 | bindingErrorToInterface(error) 35 | break 36 | case .Completed: 37 | break 38 | } 39 | } 40 | } 41 | } 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Observables/Observable+Debug.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Observable+Debug.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 5/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // MARK: debug 12 | 13 | extension ObservableType { 14 | 15 | /** 16 | Prints received events for all observers on standard output. 17 | 18 | - seealso: [do operator on reactivex.io](http://reactivex.io/documentation/operators/do.html) 19 | 20 | - parameter identifier: Identifier that is printed together with event description to standard output. 21 | - returns: An observable sequence whose events are printed to standard output. 22 | */ 23 | @warn_unused_result(message="http://git.io/rxs.uo") 24 | public func debug(identifier: String? = nil, file: String = __FILE__, line: UInt = __LINE__, function: String = __FUNCTION__) 25 | -> Observable { 26 | return Debug(source: self.asObservable(), identifier: identifier, file: file, line: line, function: function) 27 | } 28 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Documentation/Linux.md: -------------------------------------------------------------------------------- 1 | Linux 2 | ===== 3 | 4 | We've made a proof of concept for Linux. 5 | 6 | To test it, create `Package.swift` in your test directory with the following content: 7 | 8 | ``` 9 | import PackageDescription 10 | 11 | let package = Package( 12 | name: "MyShinyUnicornCat", 13 | dependencies: [ 14 | .Package(url: "https://github.com/ReactiveX/RxSwift.git", Version(2, 0, 0)) 15 | ] 16 | ) 17 | ``` 18 | 19 | What does work: 20 | * Distribution using Swift Package Manager 21 | * Single Threaded mode (CurrentThreadScheduler) 22 | * Half of unit tests are passing. 23 | * Projects that can be compiled and "used": 24 | * RxSwift 25 | * RxBlocking 26 | * RxTests 27 | 28 | What doesn't work: 29 | * Schedulers - because they are dependent on https://github.com/apple/swift-corelibs-libdispatch and it still hasn't been released 30 | * Multithreading - still no access to c11 locks 31 | * For some reason it looks like Swift compiler generates wrong code when using `ErrorType` on `Linux`, so don't use errors, otherwise you can get weird crashes. 32 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxDataSourceStarterKit/DataSources/RxCollectionViewSectionedReloadDataSource.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxCollectionViewSectionedReloadDataSource.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 7/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | #if !RX_NO_MODULE 12 | import RxSwift 13 | import RxCocoa 14 | #endif 15 | 16 | class RxCollectionViewSectionedReloadDataSource : RxCollectionViewSectionedDataSource 17 | , RxCollectionViewDataSourceType { 18 | typealias Element = [S] 19 | 20 | func collectionView(collectionView: UICollectionView, observedEvent: Event) { 21 | switch observedEvent { 22 | case .Next(let element): 23 | setSections(element) 24 | collectionView.reloadData() 25 | case .Error(let error): 26 | bindingErrorToInterface(error) 27 | case .Completed: 28 | break 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Examples/Numbers/NumbersViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NumbersViewController.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 12/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | #if !RX_NO_MODULE 12 | import RxSwift 13 | import RxCocoa 14 | #endif 15 | 16 | class NumbersViewController: ViewController { 17 | @IBOutlet weak var number1: UITextField! 18 | @IBOutlet weak var number2: UITextField! 19 | @IBOutlet weak var number3: UITextField! 20 | 21 | @IBOutlet weak var result: UILabel! 22 | 23 | override func viewDidLoad() { 24 | super.viewDidLoad() 25 | 26 | Observable.combineLatest(number1.rx_text, number2.rx_text, number3.rx_text) { textValue1, textValue2, textValue3 -> Int in 27 | return (Int(textValue1) ?? 0) + (Int(textValue2) ?? 0) + (Int(textValue3) ?? 0) 28 | } 29 | .map { $0.description } 30 | .bindTo(result.rx_text) 31 | .addDisposableTo(disposeBag) 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/iOS/UIActivityIndicatorView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIActivityIndicatorView+Rx.swift 3 | // Rx 4 | // 5 | // Created by Ivan Persidskiy on 02/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | import UIKit 11 | 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | extension UIActivityIndicatorView { 17 | 18 | /** 19 | Bindable sink for `startAnimating()`, `stopAnimating()` methods. 20 | */ 21 | public var rx_animating: AnyObserver { 22 | return AnyObserver {event in 23 | MainScheduler.ensureExecutingOnScheduler() 24 | 25 | switch (event) { 26 | case .Next(let value): 27 | if value { 28 | self.startAnimating() 29 | } else { 30 | self.stopAnimating() 31 | } 32 | case .Error(let error): 33 | bindingErrorToInterface(error) 34 | case .Completed: 35 | break 36 | } 37 | } 38 | } 39 | 40 | } 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxTests/Any+Equatable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Any+Equatable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 12/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | A way to use built in XCTest methods with objects that are partially equatable. 13 | 14 | If this can be done simpler, PRs are welcome :) 15 | */ 16 | struct AnyEquatable 17 | : Equatable 18 | , CustomDebugStringConvertible 19 | , CustomStringConvertible { 20 | typealias Comparer = (Target, Target) -> Bool 21 | 22 | let _target: Target 23 | let _comparer: Comparer 24 | 25 | init(target: Target, comparer: Comparer) { 26 | _target = target 27 | _comparer = comparer 28 | } 29 | } 30 | 31 | func == (lhs: AnyEquatable, rhs: AnyEquatable) -> Bool { 32 | return lhs._comparer(lhs._target, rhs._target) 33 | } 34 | 35 | extension AnyEquatable { 36 | var description: String { 37 | return "\(_target)" 38 | } 39 | 40 | var debugDescription: String { 41 | return "\(_target)" 42 | } 43 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/LICENSE.md: -------------------------------------------------------------------------------- 1 | **The MIT License** 2 | **Copyright © 2015 Krunoslav Zaher** 3 | **All rights reserved.** 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxBlocking.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "RxBlocking" 3 | s.version = "2.1.0" 4 | s.summary = "RxSwift Blocking operatos" 5 | s.description = <<-DESC 6 | Set of blocking operators for RxSwift. These operators are mostly intended for unit/integration tests 7 | with a couple of other special scenarios where they could be useful. 8 | 9 | E.g. 10 | 11 | Waiting for observable sequence to complete before exiting command line application. 12 | DESC 13 | s.homepage = "https://github.com/ReactiveX/RxSwift" 14 | s.license = 'MIT' 15 | s.author = { "Krunoslav Zaher" => "krunoslav.zaher@gmail.com" } 16 | s.source = { :git => "https://github.com/ReactiveX/RxSwift.git", :tag => s.version.to_s } 17 | 18 | s.requires_arc = true 19 | 20 | s.ios.deployment_target = '8.0' 21 | s.osx.deployment_target = '10.9' 22 | s.watchos.deployment_target = '2.0' 23 | s.tvos.deployment_target = '9.0' 24 | 25 | s.source_files = 'RxBlocking/**/*.swift' 26 | 27 | s.dependency 'RxSwift', '~> 2.0' 28 | end 29 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/iOS/Proxies/RxCollectionViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxCollectionViewDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import Foundation 12 | import UIKit 13 | #if !RX_NO_MODULE 14 | import RxSwift 15 | #endif 16 | 17 | /** 18 | For more information take a look at `DelegateProxyType`. 19 | */ 20 | public class RxCollectionViewDelegateProxy 21 | : RxScrollViewDelegateProxy 22 | , UICollectionViewDelegate 23 | , UICollectionViewDelegateFlowLayout { 24 | 25 | /** 26 | Typed parent object. 27 | */ 28 | public weak private(set) var collectionView: UICollectionView? 29 | 30 | /** 31 | Initializes `RxCollectionViewDelegateProxy` 32 | 33 | - parameter parentObject: Parent object for delegate proxy. 34 | */ 35 | public required init(parentObject: AnyObject) { 36 | self.collectionView = (parentObject as! UICollectionView) 37 | super.init(parentObject: parentObject) 38 | } 39 | } 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/PerformanceTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | LSMinimumSystemVersion 26 | $(MACOSX_DEPLOYMENT_TARGET) 27 | NSMainNibFile 28 | MainMenu 29 | NSPrincipalClass 30 | NSApplication 31 | 32 | 33 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Examples/Dependencies.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dependencies.swift 3 | // WikipediaImageSearch 4 | // 5 | // Created by carlos on 13/5/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | class Dependencies { 15 | 16 | static let sharedDependencies = Dependencies() // Singleton 17 | 18 | let URLSession = NSURLSession.sharedSession() 19 | let backgroundWorkScheduler: ImmediateSchedulerType 20 | let mainScheduler: SerialDispatchQueueScheduler 21 | let wireframe: Wireframe 22 | 23 | private init() { 24 | wireframe = DefaultWireframe() 25 | 26 | let operationQueue = NSOperationQueue() 27 | operationQueue.maxConcurrentOperationCount = 2 28 | #if !RX_NO_MODULE 29 | operationQueue.qualityOfService = NSQualityOfService.UserInitiated 30 | #endif 31 | backgroundWorkScheduler = OperationQueueScheduler(operationQueue: operationQueue) 32 | 33 | mainScheduler = MainScheduler.instance 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "RxCocoa" 3 | s.version = "2.1.0" 4 | s.summary = "RxSwift Cocoa extensions" 5 | s.description = <<-DESC 6 | * UI extensions 7 | * NSURL extensions 8 | * KVO extensions 9 | DESC 10 | s.homepage = "https://github.com/ReactiveX/RxSwift" 11 | s.license = 'MIT' 12 | s.author = { "Krunoslav Zaher" => "krunoslav.zaher@gmail.com" } 13 | s.source = { :git => "https://github.com/ReactiveX/RxSwift.git", :tag => s.version.to_s } 14 | 15 | s.requires_arc = true 16 | 17 | s.ios.deployment_target = '8.0' 18 | s.osx.deployment_target = '10.9' 19 | s.watchos.deployment_target = '2.0' 20 | s.tvos.deployment_target = '9.0' 21 | 22 | s.source_files = 'RxCocoa/RxCocoa.h', 'RxCocoa/Common/**/*.{swift,h,m}' 23 | s.ios.source_files = 'RxCocoa/iOS/**/*.swift' 24 | s.osx.source_files = 'RxCocoa/OSX/**/*.swift' 25 | s.watchos.source_files = 'RxCocoa/iOS/**/*.swift' 26 | s.tvos.source_files = 'RxCocoa/iOS/**/*.swift' 27 | 28 | s.dependency 'RxSwift', '~> 2.0' 29 | end 30 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxDataSourceStarterKit/DataSources/RxTableViewSectionedReloadDataSource.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTableViewSectionedReloadDataSource.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 6/27/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | #if !RX_NO_MODULE 12 | import RxSwift 13 | import RxCocoa 14 | #endif 15 | 16 | /** 17 | Code for reactive data sources is packed in [RxDataSources](https://github.com/RxSwiftCommunity/RxDataSources) project. 18 | */ 19 | class RxTableViewSectionedReloadDataSource : RxTableViewSectionedDataSource 20 | , RxTableViewDataSourceType { 21 | typealias Element = [S] 22 | 23 | func tableView(tableView: UITableView, observedEvent: Event) { 24 | switch observedEvent { 25 | case .Next(let element): 26 | setSections(element) 27 | tableView.reloadData() 28 | case .Error(let error): 29 | bindingErrorToInterface(error) 30 | case .Completed: 31 | break 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/scripts/automation-tests/03_masterDetail.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | test("----- masterDetail -----", function (check, pass) { 4 | 5 | function yOffset (pixels) { 6 | return pixels / UIATarget.localTarget().frontMostApp().mainWindow().rect().size.height 7 | } 8 | 9 | var target = UIATarget.localTarget() 10 | 11 | target.frontMostApp().mainWindow().tableViews()[0].cells()[9].tap(); 12 | target.frontMostApp().navigationBar().rightButton().tap(); 13 | target.frontMostApp().mainWindow().dragInsideWithOptions({startOffset:{x:0.93, y:yOffset(300)}, endOffset:{x:0.95, y:yOffset(200)}, duration:1.5}); 14 | target.frontMostApp().mainWindow().dragInsideWithOptions({startOffset:{x:0.93, y:yOffset(300)}, endOffset:{x:0.95, y:yOffset(100)}, duration:1.5}); 15 | 16 | var firstCell = UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[1] 17 | 18 | firstCell.buttons()[0].tap(); 19 | 20 | firstCell.buttons()["Delete"].tap(); 21 | 22 | target.delay( 3 ); 23 | 24 | target.frontMostApp().navigationBar().rightButton().tap(); 25 | target.frontMostApp().mainWindow().tableViews()[0].cells()[1].tap(); 26 | goBack(); 27 | goBack(); 28 | 29 | pass() 30 | }); 31 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/scripts/automation-tests/common.js: -------------------------------------------------------------------------------- 1 | var goBack = function() { 2 | UIATarget.localTarget().frontMostApp().navigationBar().leftButton().tap() 3 | } 4 | 5 | var typeString = function(value) { 6 | UIATarget.localTarget().frontMostApp().keyboard().typeString(value) 7 | } 8 | 9 | function test(testName, callback) { 10 | 11 | function pass() { 12 | UIALogger.logPass( testName ); 13 | } 14 | 15 | function fail() { 16 | UIALogger.logFail( testName ); 17 | } 18 | 19 | function check(f) { 20 | if (f()){ 21 | pass() 22 | } 23 | else { 24 | fail() 25 | } 26 | } 27 | 28 | sleep(1) 29 | UIALogger.logStart( testName ); 30 | callback(check, pass) 31 | } 32 | 33 | function log(element) { 34 | UIALogger.logMessage(element.toString()) 35 | } 36 | 37 | function debug(element) { 38 | UIALogger.logDebug(element.toString()) 39 | } 40 | 41 | function logElement(element) { 42 | UIALogger.logDebug(element.toString()) 43 | } 44 | 45 | function error(string) { 46 | UIALogger.logError(string) 47 | } 48 | 49 | function warning(string) { 50 | UIALogger.logWarning(string) 51 | } 52 | 53 | function sleep(time) { 54 | UIATarget.localTarget().delay(time); 55 | } -------------------------------------------------------------------------------- /ViperPrototype/Modules/Configurations/View/ConfigurationsView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ConfigurationsView.swift 3 | // ViperPrototype 4 | // 5 | // Created by Adriano Goncalves on 13/02/2016. 6 | // Copyright © 2016 Adriano Goncalves. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import RxSwift 11 | 12 | class ConfigurationsView: UIViewController { 13 | 14 | private let disposeBag = DisposeBag() 15 | 16 | var presenter: ConfigurationsPresenter? 17 | 18 | override func viewDidLoad() { 19 | super.viewDidLoad() 20 | 21 | if let presenter = presenter { 22 | presenter.gotConfigurations().subscribeNext({ (result) -> Void in 23 | if !result { 24 | self.showError() 25 | } 26 | }).addDisposableTo(disposeBag) 27 | } 28 | 29 | } 30 | 31 | private func showError() { 32 | let alertController = UIAlertController(title: "Configuration error", message: "Unable to retrieve configurations", preferredStyle: UIAlertControllerStyle.Alert) 33 | alertController.addAction(UIAlertAction(title: "Ok", style: .Default, handler: nil)) 34 | presentViewController(alertController, animated: true, completion: nil) 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTextStorageDelegateProxy.swift 3 | // Rx 4 | // 5 | // Created by Segii Shulga on 12/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | public class RxTextStorageDelegateProxy 18 | : DelegateProxy 19 | , DelegateProxyType 20 | , NSTextStorageDelegate { 21 | 22 | 23 | /** 24 | For more information take a look at `DelegateProxyType`. 25 | */ 26 | public class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { 27 | let textStorage: NSTextStorage = castOrFatalError(object) 28 | textStorage.delegate = castOptionalOrFatalError(delegate) 29 | } 30 | 31 | /** 32 | For more information take a look at `DelegateProxyType`. 33 | */ 34 | public class func currentDelegateFor(object: AnyObject) -> AnyObject? { 35 | let textStorage: NSTextStorage = castOrFatalError(object) 36 | return textStorage.delegate 37 | } 38 | 39 | 40 | } 41 | #endif 42 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Examples/WikipediaImageSearch/Views/CollectionViewImageCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CollectionViewImageCell.swift 3 | // Example 4 | // 5 | // Created by Krunoslav Zaher on 4/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | #if !RX_NO_MODULE 12 | import RxSwift 13 | import RxCocoa 14 | #endif 15 | 16 | public class CollectionViewImageCell: UICollectionViewCell { 17 | @IBOutlet var imageOutlet: UIImageView! 18 | 19 | var disposeBag: DisposeBag! 20 | 21 | var downloadableImage: Observable?{ 22 | didSet{ 23 | let disposeBag = DisposeBag() 24 | 25 | self.downloadableImage? 26 | .asDriver(onErrorJustReturn: DownloadableImage.OfflinePlaceholder) 27 | .drive(imageOutlet.rxex_downloadableImageAnimated(kCATransitionFade)) 28 | .addDisposableTo(disposeBag) 29 | 30 | self.disposeBag = disposeBag 31 | } 32 | } 33 | 34 | override public func prepareForReuse() { 35 | super.prepareForReuse() 36 | 37 | disposeBag = nil 38 | } 39 | 40 | deinit { 41 | } 42 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Documentation/MathBehindRx.md: -------------------------------------------------------------------------------- 1 | Math Behind Rx 2 | ============== 3 | 4 | ## Duality between Observer and Iterator / Enumerator / Generator / Sequences 5 | 6 | There is a duality between observer and generator pattern. That's what enables transition from async callback world to synchronous world of sequence transformations. 7 | 8 | In short, enumerator and observer pattern both describe sequences. It's pretty obvious why does enumerator defined sequence, but what about observer. 9 | 10 | There is also a pretty simple explanation that doesn't include a lot of math. Assume that you are observing mouse movements. Every received mouse movement is an element of a sequence of mouse movements over time. 11 | 12 | In short, there are two basic ways elements of a sequence can be accessed. 13 | 14 | * Push interface - Observer (observed elements over time make a sequence) 15 | * Pull interface - Iterator / Enumerator / Generator 16 | 17 | To learn more about this, these videos should help 18 | 19 | You can also see a more formal explanation explained in a fun way in this video: 20 | 21 | [Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx) (video)](https://www.youtube.com/watch?v=looJcaeboBY) 22 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Examples/TableViewWithEditingCommands/DetailViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DetailViewController.swift 3 | // RxExample 4 | // 5 | // Created by carlos on 26/5/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | class DetailViewController: ViewController { 15 | 16 | var user: User! 17 | 18 | let $ = Dependencies.sharedDependencies 19 | 20 | @IBOutlet weak var imageView: UIImageView! 21 | @IBOutlet weak var label: UILabel! 22 | 23 | override func viewDidLoad() { 24 | super.viewDidLoad() 25 | 26 | imageView.makeRoundedCorners(5) 27 | 28 | let url = NSURL(string: user.imageURL)! 29 | let request = NSURLRequest(URL: url) 30 | 31 | NSURLSession.sharedSession().rx_data(request) 32 | .map { data in 33 | UIImage(data: data) 34 | } 35 | .observeOn($.mainScheduler) 36 | .subscribe(imageView.rx_image) 37 | .addDisposableTo(disposeBag) 38 | 39 | label.text = user.firstName + " " + user.lastName 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxBlocking/RunLoopLock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RunLoopLock.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 11/5/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | class RunLoopLock { 15 | let currentRunLoop: CFRunLoopRef 16 | 17 | init() { 18 | currentRunLoop = CFRunLoopGetCurrent() 19 | } 20 | 21 | func dispatch(action: () -> ()) { 22 | CFRunLoopPerformBlock(currentRunLoop, kCFRunLoopDefaultMode) { 23 | if CurrentThreadScheduler.isScheduleRequired { 24 | CurrentThreadScheduler.instance.schedule(()) { _ in 25 | action() 26 | return NopDisposable.instance 27 | } 28 | } 29 | else { 30 | action() 31 | } 32 | } 33 | CFRunLoopWakeUp(currentRunLoop) 34 | } 35 | 36 | func stop() { 37 | CFRunLoopPerformBlock(currentRunLoop, kCFRunLoopDefaultMode) { 38 | CFRunLoopStop(self.currentRunLoop) 39 | } 40 | CFRunLoopWakeUp(currentRunLoop) 41 | } 42 | 43 | func run() { 44 | CFRunLoopRun() 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/Common/Observables/NSNotificationCenter+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSNotificationCenter+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 5/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | extension NSNotificationCenter { 15 | /** 16 | Transforms notifications posted to notification center to observable sequence of notifications. 17 | 18 | - parameter name: Filter notifications by name. 19 | - parameter object: Optional object used to filter notifications. 20 | - returns: Observable sequence of posted notifications. 21 | */ 22 | @warn_unused_result(message="http://git.io/rxs.uo") 23 | public func rx_notification(name: String, object: AnyObject? = nil) -> Observable { 24 | return Observable.create { [weak object] observer in 25 | let nsObserver = self.addObserverForName(name, object: object, queue: nil) { notification in 26 | observer.on(.Next(notification)) 27 | } 28 | 29 | return AnonymousDisposable { 30 | self.removeObserver(nsObserver) 31 | } 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Examples/GitHubSignup/Protocols.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Protocols.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 12/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | import RxCocoa 13 | #endif 14 | 15 | enum ValidationResult { 16 | case OK(message: String) 17 | case Empty 18 | case Validating 19 | case Failed(message: String) 20 | } 21 | 22 | enum SignupState { 23 | case SignedUp(signedUp: Bool) 24 | } 25 | 26 | protocol GitHubAPI { 27 | func usernameAvailable(username: String) -> Observable 28 | func signup(username: String, password: String) -> Observable 29 | } 30 | 31 | protocol GitHubValidationService { 32 | func validateUsername(username: String) -> Observable 33 | func validatePassword(password: String) -> ValidationResult 34 | func validateRepeatedPassword(password: String, repeatedPassword: String) -> ValidationResult 35 | } 36 | 37 | extension ValidationResult { 38 | var isValid: Bool { 39 | switch self { 40 | case .OK: 41 | return true 42 | default: 43 | return false 44 | } 45 | } 46 | } 47 | 48 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Disposables/BooleanDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BooleanDisposable.swift 3 | // Rx 4 | // 5 | // Created by Junior B. on 10/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Represents a disposable resource that can be checked for disposal status. 13 | */ 14 | public class BooleanDisposable : Disposable, Cancelable { 15 | 16 | internal static let BooleanDisposableTrue = BooleanDisposable(disposed: true) 17 | private var _disposed = false 18 | 19 | /** 20 | Initializes a new instance of the `BooleanDisposable` class 21 | */ 22 | public init() { 23 | } 24 | 25 | /** 26 | Initializes a new instance of the `BooleanDisposable` class with given value 27 | */ 28 | public init(disposed: Bool) { 29 | self._disposed = disposed 30 | } 31 | 32 | /** 33 | - returns: Was resource disposed. 34 | */ 35 | public var disposed: Bool { 36 | get { 37 | return _disposed 38 | } 39 | } 40 | 41 | /** 42 | Sets the status to disposed, which can be observer through the `disposed` property. 43 | */ 44 | public func dispose() { 45 | _disposed = true 46 | } 47 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Services/HtmlParsing.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HtmlParsing.swift 3 | // Example 4 | // 5 | // Created by Krunoslav Zaher on 3/28/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | func parseImageURLsfromHTML(html: NSString) throws -> [NSURL] { 12 | let regularExpression = try NSRegularExpression(pattern: "]*src=\"([^\"]+)\"[^>]*>", options: []) 13 | 14 | let matches = regularExpression.matchesInString(html as String, options: [], range: NSMakeRange(0, html.length)) 15 | 16 | return matches.map { match -> NSURL? in 17 | if match.numberOfRanges != 2 { 18 | return nil 19 | } 20 | 21 | let url = html.substringWithRange(match.rangeAtIndex(1)) 22 | 23 | var absoluteURLString = url 24 | if url.hasPrefix("//") { 25 | absoluteURLString = "http:" + url 26 | } 27 | 28 | return NSURL(string: absoluteURLString) 29 | }.filter { $0 != nil }.map { $0! } 30 | } 31 | 32 | func parseImageURLsfromHTMLSuitableForDisplay(html: NSString) throws -> [NSURL] { 33 | return try parseImageURLsfromHTML(html).filter { 34 | return $0.absoluteString.rangeOfString(".svg.") == nil 35 | } 36 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/iOS/Proxies/RxImagePickerDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxImagePickerDelegateProxy.swift 3 | // Rx 4 | // 5 | // Created by Segii Shulga on 1/4/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | public class RxImagePickerDelegateProxy 18 | : DelegateProxy 19 | , DelegateProxyType 20 | , UIImagePickerControllerDelegate 21 | , UINavigationControllerDelegate { 22 | 23 | /** 24 | For more information take a look at `DelegateProxyType`. 25 | */ 26 | public class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { 27 | let imagePickerController: UIImagePickerController = castOrFatalError(object) 28 | imagePickerController.delegate = castOptionalOrFatalError(delegate) 29 | } 30 | 31 | /** 32 | For more information take a look at `DelegateProxyType`. 33 | */ 34 | public class func currentDelegateFor(object: AnyObject) -> AnyObject? { 35 | let imagePickerController: UIImagePickerController = castOrFatalError(object) 36 | return imagePickerController.delegate 37 | } 38 | 39 | } 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /ViperPrototype/Modules/MainMoviesList/Presenter/MainMoviesListPresenter.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainMoviesListPresenter.swift 3 | // ViperPrototype 4 | // 5 | // Created by Adriano Goncalves on 13/02/2016. 6 | // Copyright © 2016 Adriano Goncalves. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | import RxCocoa 12 | 13 | struct MainMoviesListPresenter { 14 | 15 | private let disposeBag = DisposeBag() 16 | private let interactor: MainMoviesListInteractor 17 | private let wireframe: MainMoviesListWireframe 18 | 19 | init(interactor: MainMoviesListInteractor, wireframe: MainMoviesListWireframe) { 20 | self.interactor = interactor 21 | self.wireframe = wireframe 22 | } 23 | 24 | //MARK: Input 25 | 26 | //MARK: Output 27 | 28 | func gotAllMovies() -> Observable { 29 | 30 | return Observable.create { observer in 31 | 32 | self.interactor.getAllMovies().subscribeNext({ (movies) -> Void in 33 | 34 | let viewModel = MainMoviesListViewModel(movies: movies) 35 | observer.onNext(viewModel) 36 | 37 | }).addDisposableTo(self.disposeBag) 38 | 39 | return AnonymousDisposable {} 40 | 41 | } 42 | 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Examples/SimpleTableViewExample/SimpleTableViewExampleViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SimpleTableViewExampleViewController.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 12/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | #if !RX_NO_MODULE 12 | import RxSwift 13 | import RxCocoa 14 | #endif 15 | 16 | class SimpleTableViewExampleViewController : ViewController { 17 | @IBOutlet weak var tableView: UITableView! 18 | 19 | override func viewDidLoad() { 20 | super.viewDidLoad() 21 | 22 | let items = Observable.just([ 23 | "First Item", 24 | "Second Item", 25 | "Third Item" 26 | ]) 27 | 28 | items 29 | .bindTo(tableView.rx_itemsWithCellIdentifier("Cell", cellType: UITableViewCell.self)) { (row, element, cell) in 30 | cell.textLabel?.text = "\(element) @ row \(row)" 31 | } 32 | .addDisposableTo(disposeBag) 33 | 34 | 35 | tableView 36 | .rx_modelSelected(String) 37 | .subscribeNext { value in 38 | DefaultWireframe.presentAlert("Tapped `\(value)`") 39 | } 40 | .addDisposableTo(disposeBag) 41 | } 42 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxCocoa/Common/Observables/Implementations/KVOObserver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KVOObserver.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | protocol KVOObservableProtocol { 15 | var target: AnyObject { get } 16 | var keyPath: String { get } 17 | var retainTarget: Bool { get } 18 | var options: NSKeyValueObservingOptions { get } 19 | } 20 | 21 | class KVOObserver : _RXKVOObserver 22 | , Disposable { 23 | typealias Callback = (AnyObject?) -> Void 24 | 25 | var retainSelf: KVOObserver? = nil 26 | 27 | init(parent: KVOObservableProtocol, callback: Callback) { 28 | #if TRACE_RESOURCES 29 | OSAtomicIncrement32(&resourceCount) 30 | #endif 31 | 32 | super.init(target: parent.target, retainTarget: parent.retainTarget, keyPath: parent.keyPath, options: parent.options, callback: callback) 33 | self.retainSelf = self 34 | } 35 | 36 | override func dispose() { 37 | super.dispose() 38 | self.retainSelf = nil 39 | } 40 | 41 | deinit { 42 | #if TRACE_RESOURCES 43 | OSAtomicDecrement32(&resourceCount) 44 | #endif 45 | } 46 | } -------------------------------------------------------------------------------- /ViperPrototype/Modules/Configurations/Wireframe/ConfigurationsWireframe.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ConfigurationsWireframe.swift 3 | // ViperPrototype 4 | // 5 | // Created by Adriano Goncalves on 13/02/2016. 6 | // Copyright © 2016 Adriano Goncalves. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | struct ConfigurationsWireframe { 12 | 13 | static func presentConfigurationsModule(window: UIWindow) { 14 | 15 | let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("ConfigurationsViewController") as! ConfigurationsView 16 | 17 | let apiService = TmdbApiService() 18 | let apiDataManager = TmdbApiDataManager(apiService: apiService) 19 | let interactor = ConfigurationsInteractor(dataManager: apiDataManager) 20 | let presenter = ConfigurationsPresenter(interactor: interactor, wireframe: ConfigurationsWireframe()) 21 | 22 | if let navController = window.rootViewController as? UINavigationController { 23 | vc.presenter = presenter 24 | navController.navigationBarHidden = true 25 | navController.pushViewController(vc, animated: false) 26 | } 27 | 28 | } 29 | 30 | func showMainMoviesList() { 31 | MainMoviesListWireframe.presentMainMoviesListModule(UIApplication.sharedApplication().keyWindow!) 32 | } 33 | 34 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Observables/Implementations/Repeat.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Repeat.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 9/13/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class RepeatElement : Producer { 12 | private let _element: Element 13 | private let _scheduler: ImmediateSchedulerType 14 | 15 | init(element: Element, scheduler: ImmediateSchedulerType) { 16 | _element = element 17 | _scheduler = scheduler 18 | } 19 | 20 | override func run(observer: O) -> Disposable { 21 | let sink = RepeatElementSink(parent: self, observer: observer) 22 | sink.disposable = sink.run() 23 | 24 | return sink 25 | } 26 | } 27 | 28 | class RepeatElementSink : Sink { 29 | typealias Parent = RepeatElement 30 | 31 | private let _parent: Parent 32 | 33 | init(parent: Parent, observer: O) { 34 | _parent = parent 35 | super.init(observer: observer) 36 | } 37 | 38 | func run() -> Disposable { 39 | return _parent._scheduler.scheduleRecursive(_parent._element) { e, recurse in 40 | self.forwardOn(.Next(e)) 41 | recurse(e) 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Rx.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/14/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | #if TRACE_RESOURCES 12 | /** 13 | Counts internal Rx resources (Observables, Observers, Disposables ...). 14 | 15 | It provides a really simple way to detect leaks early during development. 16 | */ 17 | public var resourceCount: AtomicInt = 0 18 | #endif 19 | 20 | // Swift doesn't have a concept of abstract metods. 21 | // This function is being used as a runtime check that abstract methods aren't being called. 22 | @noreturn func abstractMethod() -> Void { 23 | rxFatalError("Abstract method") 24 | } 25 | 26 | @noreturn func rxFatalError(lastMessage: String) { 27 | // The temptation to comment this line is great, but please don't, it's for your own good. The choice is yours. 28 | fatalError(lastMessage) 29 | } 30 | 31 | func incrementChecked(inout i: Int) throws -> Int { 32 | if i == Int.max { 33 | throw RxError.Overflow 34 | } 35 | let result = i 36 | i += 1 37 | return result 38 | } 39 | 40 | func decrementChecked(inout i: Int) throws -> Int { 41 | if i == Int.min { 42 | throw RxError.Overflow 43 | } 44 | let result = i 45 | i -= 1 46 | return result 47 | } 48 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/RxCocoaTests/UIView+RxTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+RxTests.swift 3 | // RxTests 4 | // 5 | // Created by Krunoslav Zaher on 12/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | import RxSwift 12 | import RxCocoa 13 | import UIKit 14 | import XCTest 15 | 16 | class UIViewTests : RxTest { 17 | } 18 | 19 | extension UIViewTests { 20 | func testHidden_True() { 21 | let subject = UIView(frame: CGRect.zero) 22 | Observable.just(true).subscribe(subject.rx_hidden).dispose() 23 | 24 | XCTAssertTrue(subject.hidden == true) 25 | } 26 | 27 | func testEnabled_False() { 28 | let subject = UIView(frame: CGRect.zero) 29 | Observable.just(false).subscribe(subject.rx_hidden).dispose() 30 | 31 | XCTAssertTrue(subject.hidden == false) 32 | } 33 | } 34 | 35 | extension UIViewTests { 36 | func testAlpha_0() { 37 | let subject = UIView(frame: CGRect.zero) 38 | Observable.just(0).subscribe(subject.rx_alpha).dispose() 39 | 40 | XCTAssertTrue(subject.alpha == 0.0) 41 | } 42 | 43 | func testAlpha_1() { 44 | let subject = UIView(frame: CGRect.zero) 45 | Observable.just(1).subscribe(subject.rx_alpha).dispose() 46 | 47 | XCTAssertTrue(subject.alpha == 1.0) 48 | } 49 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Observable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Observable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | A type-erased `ObservableType`. 13 | 14 | It represents a push style sequence. 15 | */ 16 | public class Observable : ObservableType { 17 | /** 18 | Type of elements in sequence. 19 | */ 20 | public typealias E = Element 21 | 22 | init() { 23 | #if TRACE_RESOURCES 24 | OSAtomicIncrement32(&resourceCount) 25 | #endif 26 | } 27 | 28 | public func subscribe(observer: O) -> Disposable { 29 | abstractMethod() 30 | } 31 | 32 | public func asObservable() -> Observable { 33 | return self 34 | } 35 | 36 | deinit { 37 | #if TRACE_RESOURCES 38 | AtomicDecrement(&resourceCount) 39 | #endif 40 | } 41 | 42 | // this is kind of ugly I know :( 43 | // Swift compiler reports "Not supported yet" when trying to override protocol extensions, so ¯\_(ツ)_/¯ 44 | 45 | /** 46 | Optimizations for map operator 47 | */ 48 | internal func composeMap(selector: Element throws -> R) -> Observable { 49 | return Map(source: self, selector: selector) 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxTests/Recorded.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Recorded.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/14/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | import Swift 12 | 13 | /** 14 | Record of a value including the virtual time it was produced on. 15 | */ 16 | public struct Recorded 17 | : CustomDebugStringConvertible { 18 | 19 | /** 20 | Gets the virtual time the value was produced on. 21 | */ 22 | public let time: TestTime 23 | 24 | /** 25 | Gets the recorded value. 26 | */ 27 | public let value: Element 28 | 29 | public init(time: TestTime, event: Element) { 30 | self.time = time 31 | self.value = event 32 | } 33 | } 34 | 35 | extension Recorded { 36 | /** 37 | A textual representation of `self`, suitable for debugging. 38 | */ 39 | public var debugDescription: String { 40 | get { 41 | return "\(value) @ \(time)" 42 | } 43 | } 44 | } 45 | 46 | func == (lhs: Recorded, rhs: Recorded) -> Bool { 47 | return lhs.time == rhs.time && lhs.value == rhs.value 48 | } 49 | 50 | func == (lhs: Recorded>, rhs: Recorded>) -> Bool { 51 | return lhs.time == rhs.time && lhs.value == rhs.value 52 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/Tests/RxCocoaTests/NSView+RxTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSView+RxTests.swift 3 | // RxTests 4 | // 5 | // Created by Krunoslav Zaher on 12/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | import RxCocoa 12 | import Cocoa 13 | import XCTest 14 | 15 | class NSViewTests : RxTest { 16 | } 17 | 18 | extension NSViewTests { 19 | func testHidden_True() { 20 | let subject = NSView(frame: CGRect.zero) 21 | Observable.just(true).subscribe(subject.rx_hidden).dispose() 22 | 23 | XCTAssertTrue(subject.hidden == true) 24 | } 25 | 26 | func testHidden_False() { 27 | let subject = NSView(frame: CGRect.zero) 28 | Observable.just(false).subscribe(subject.rx_hidden).dispose() 29 | 30 | XCTAssertTrue(subject.hidden == false) 31 | } 32 | } 33 | 34 | extension NSViewTests { 35 | func testAlpha_0() { 36 | let subject = NSView(frame: CGRect.zero) 37 | Observable.just(0).subscribe(subject.rx_alpha).dispose() 38 | 39 | XCTAssertTrue(subject.alphaValue == 0.0) 40 | } 41 | 42 | func testAlpha_1() { 43 | let subject = NSView(frame: CGRect.zero) 44 | Observable.just(1).subscribe(subject.rx_alpha).dispose() 45 | 46 | XCTAssertTrue(subject.alphaValue == 1.0) 47 | } 48 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxExample/RxExample/Example.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Example.swift 3 | // Example 4 | // 5 | // Created by Krunoslav Zaher on 3/28/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | #if os(iOS) 12 | import UIKit 13 | typealias Image = UIImage 14 | #elseif os(OSX) 15 | import Cocoa 16 | import AppKit 17 | typealias Image = NSImage 18 | #endif 19 | 20 | let MB = 1024 * 1024 21 | 22 | func exampleError(error: String, location: String = "\(__FILE__):\(__LINE__)") -> NSError { 23 | return NSError(domain: "ExampleError", code: -1, userInfo: [NSLocalizedDescriptionKey: "\(location): \(error)"]) 24 | } 25 | 26 | extension String { 27 | func toFloat() -> Float? { 28 | let numberFormatter = NSNumberFormatter() 29 | return numberFormatter.numberFromString(self)?.floatValue 30 | } 31 | 32 | func toDouble() -> Double? { 33 | let numberFormatter = NSNumberFormatter() 34 | return numberFormatter.numberFromString(self)?.doubleValue 35 | } 36 | } 37 | 38 | func showAlert(message: String) { 39 | #if os(iOS) 40 | UIAlertView(title: "RxExample", message: message, delegate: nil, cancelButtonTitle: "OK").show() 41 | #elseif os(OSX) 42 | let alert = NSAlert() 43 | alert.messageText = message 44 | alert.runModal() 45 | #endif 46 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxTests/TestableObservable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TestableObservable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 12/28/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | 12 | /** 13 | Observable sequence that records subscription lifetimes and timestamped events sent to observers. 14 | */ 15 | public class TestableObservable 16 | : ObservableType { 17 | public typealias E = Element 18 | /** 19 | Subscriptions recorded during observable lifetime. 20 | */ 21 | public internal(set) var subscriptions: [Subscription] 22 | 23 | /** 24 | List of events to replay for all subscribers. 25 | 26 | Event times represent absolute `TestScheduler` time. 27 | */ 28 | public internal(set) var recordedEvents: [Recorded>] 29 | 30 | /** 31 | Parent test scheduler. 32 | */ 33 | internal let testScheduler: TestScheduler 34 | 35 | init(testScheduler: TestScheduler, recordedEvents: [Recorded>]) { 36 | self.testScheduler = testScheduler 37 | self.recordedEvents = recordedEvents 38 | self.subscriptions = [] 39 | } 40 | 41 | public func subscribe(observer: O) -> Disposable { 42 | fatalError("Abstract method") 43 | } 44 | } -------------------------------------------------------------------------------- /ViperPrototype/Modules/MainMoviesList/Wireframe/MainMoviesListWireframe.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainMoviesListWireframe.swift 3 | // ViperPrototype 4 | // 5 | // Created by Adriano Goncalves on 13/02/2016. 6 | // Copyright © 2016 Adriano Goncalves. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | struct MainMoviesListWireframe { 12 | 13 | static func presentMainMoviesListModule(window: UIWindow) { 14 | 15 | let mainMoviesListView = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("MainMoviesListView") as! MainMoviesListView 16 | 17 | let apiService = TmdbApiService() 18 | let apiDataManager = TmdbApiDataManager(apiService: apiService) 19 | 20 | let mainMoviesListInteractor = MainMoviesListInteractor(apiDataManager: apiDataManager) 21 | mainMoviesListView.presenter = MainMoviesListPresenter(interactor: mainMoviesListInteractor, wireframe: MainMoviesListWireframe()) 22 | 23 | if let navigationController = window.rootViewController as? UINavigationController { 24 | dispatch_async(dispatch_get_main_queue(), { () -> Void in 25 | navigationController.pushViewController(mainMoviesListView, animated: true) 26 | }) 27 | } 28 | 29 | } 30 | 31 | func showDetail() { 32 | MovieDetailWireframe.presentMovieDetailModule(UIApplication.sharedApplication().keyWindow!) 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Observables/Implementations/Sink.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Sink.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Sink : SingleAssignmentDisposable { 12 | private let _observer: O 13 | 14 | init(observer: O) { 15 | #if TRACE_RESOURCES 16 | AtomicIncrement(&resourceCount) 17 | #endif 18 | _observer = observer 19 | } 20 | 21 | final func forwardOn(event: Event) { 22 | if disposed { 23 | return 24 | } 25 | _observer.on(event) 26 | } 27 | 28 | final func forwarder() -> SinkForward { 29 | return SinkForward(forward: self) 30 | } 31 | 32 | deinit { 33 | #if TRACE_RESOURCES 34 | AtomicDecrement(&resourceCount) 35 | #endif 36 | } 37 | } 38 | 39 | class SinkForward: ObserverType { 40 | typealias E = O.E 41 | 42 | private let _forward: Sink 43 | 44 | init(forward: Sink) { 45 | _forward = forward 46 | } 47 | 48 | func on(event: Event) { 49 | switch event { 50 | case .Next: 51 | _forward._observer.on(event) 52 | case .Error, .Completed: 53 | _forward._observer.on(event) 54 | _forward.dispose() 55 | } 56 | } 57 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/RxSwift/RxSwift/Schedulers/ImmediateScheduler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ImmediateScheduler.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 10/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Represents an object that schedules units of work to run immediately on the current thread. 13 | */ 14 | private class ImmediateScheduler : ImmediateSchedulerType { 15 | 16 | private let _asyncLock = AsyncLock() 17 | 18 | /** 19 | Schedules an action to be executed immediatelly. 20 | 21 | In case `schedule` is called recursively from inside of `action` callback, scheduled `action` will be enqueued 22 | and executed after current `action`. (`AsyncLock` behavior) 23 | 24 | - parameter state: State passed to the action to be executed. 25 | - parameter action: Action to be executed. 26 | - returns: The disposable object used to cancel the scheduled action (best effort). 27 | */ 28 | func schedule(state: StateType, action: (StateType) -> Disposable) -> Disposable { 29 | let disposable = SingleAssignmentDisposable() 30 | _asyncLock.invoke(AnonymousInvocable { 31 | if disposable.disposed { 32 | return 33 | } 34 | disposable.disposable = action(state) 35 | }) 36 | 37 | return disposable 38 | } 39 | } --------------------------------------------------------------------------------