├── .swift-version
├── assets
├── CNAME.txt
└── Rx_Logo_M.png
├── Sources
├── RxSwift
│ ├── Rx.swift
│ ├── Event.swift
│ ├── Do.swift
│ ├── Errors.swift
│ ├── Reactive.swift
│ ├── Amb.swift
│ ├── Cancelable.swift
│ ├── Deprecated.swift
│ ├── Disposable.swift
│ ├── Just.swift
│ ├── Lock.swift
│ ├── Map.swift
│ ├── Maybe.swift
│ ├── Observable.swift
│ ├── Scan.swift
│ ├── Single.swift
│ ├── Sink.swift
│ ├── Skip.swift
│ ├── Take.swift
│ ├── Zip.swift
│ ├── AddRef.swift
│ ├── AnyObserver.swift
│ ├── AsMaybe.swift
│ ├── Bag+Rx.swift
│ ├── Buffer.swift
│ ├── Catch.swift
│ ├── Concat.swift
│ ├── Create.swift
│ ├── Debug.swift
│ ├── Delay.swift
│ ├── Empty.swift
│ ├── Error.swift
│ ├── Filter.swift
│ ├── First.swift
│ ├── GroupBy.swift
│ ├── Merge.swift
│ ├── Never.swift
│ ├── ObserverType.swift
│ ├── Range.swift
│ ├── Reduce.swift
│ ├── Repeat.swift
│ ├── RxMutableBox.swift
│ ├── Sample.swift
│ ├── SchedulerType.swift
│ ├── Switch.swift
│ ├── Timeout.swift
│ ├── Timer.swift
│ ├── ToArray.swift
│ ├── Using.swift
│ ├── Window.swift
│ ├── AsSingle.swift
│ ├── AsyncLock.swift
│ ├── Bag.swift
│ ├── Completable.swift
│ ├── Debounce.swift
│ ├── Deferred.swift
│ ├── ElementAt.swift
│ ├── Generate.swift
│ ├── Multicast.swift
│ ├── ObservableType.swift
│ ├── ObserveOn.swift
│ ├── Optional.swift
│ ├── Producer.swift
│ ├── RetryWhen.swift
│ ├── Sequence.swift
│ ├── SkipUntil.swift
│ ├── SkipWhile.swift
│ ├── StartWith.swift
│ ├── String+Rx.swift
│ ├── SubjectType.swift
│ ├── TakeLast.swift
│ ├── TakeUntil.swift
│ ├── TakeWhile.swift
│ ├── Throttle.swift
│ ├── Zip+arity.swift
│ ├── AsyncSubject.swift
│ ├── Disposables.swift
│ ├── DisposeBag.swift
│ ├── DisposeBase.swift
│ ├── Enumerated.swift
│ ├── GroupedObservable.swift
│ ├── Materialize.swift
│ ├── ObserverBase.swift
│ ├── Queue.swift
│ ├── RecursiveLock.swift
│ ├── ReplaySubject.swift
│ ├── SingleAsync.swift
│ ├── SubscribeOn.swift
│ ├── BehaviorSubject.swift
│ ├── CombineLatest.swift
│ ├── DefaultIfEmpty.swift
│ ├── Dematerialize.swift
│ ├── LockOwnerType.swift
│ ├── MainScheduler.swift
│ ├── NopDisposable.swift
│ ├── Platform.Darwin.swift
│ ├── Platform.Linux.swift
│ ├── PrimitiveSequence.swift
│ ├── PublishSubject.swift
│ ├── SwiftSupport.swift
│ ├── SwitchIfEmpty.swift
│ ├── WithLatestFrom.swift
│ ├── Zip+Collection.swift
│ ├── AnonymousObserver.swift
│ ├── BinaryDisposable.swift
│ ├── BooleanDisposable.swift
│ ├── Completable+AndThen.swift
│ ├── DelaySubscription.swift
│ ├── ImmediateSchedulerType.swift
│ ├── InvocableType.swift
│ ├── ScheduledItem.swift
│ ├── SerialDisposable.swift
│ ├── ShareReplayScope.swift
│ ├── TailRecursiveSink.swift
│ ├── AnonymousDisposable.swift
│ ├── CombineLatest+arity.swift
│ ├── CompositeDisposable.swift
│ ├── ConnectableObservableType.swift
│ ├── HistoricalScheduler.swift
│ ├── ObservableConvertibleType.swift
│ ├── ObservableType+Extensions.swift
│ ├── PriorityQueue.swift
│ ├── RecursiveScheduler.swift
│ ├── RefCountDisposable.swift
│ ├── ScheduledDisposable.swift
│ ├── SynchronizedOnType.swift
│ ├── VirtualTimeScheduler.swift
│ ├── CurrentThreadScheduler.swift
│ ├── DistinctUntilChanged.swift
│ ├── InfiniteSequence.swift
│ ├── ScheduledItemType.swift
│ ├── SubscriptionDisposable.swift
│ ├── CombineLatest+Collection.swift
│ ├── ConcurrentMainScheduler.swift
│ ├── DispatchQueue+Extensions.swift
│ ├── OperationQueueScheduler.swift
│ ├── PrimitiveSequence+Zip+arity.swift
│ ├── SynchronizedDisposeType.swift
│ ├── VirtualTimeConverterType.swift
│ ├── InvocableScheduledItem.swift
│ ├── SchedulerServices+Emulation.swift
│ ├── SingleAssignmentDisposable.swift
│ ├── SynchronizedUnsubscribeType.swift
│ ├── ObservableType+PrimitiveSequence.swift
│ ├── SerialDispatchQueueScheduler.swift
│ ├── ConcurrentDispatchQueueScheduler.swift
│ ├── DispatchQueueConfiguration.swift
│ └── HistoricalSchedulerTimeConverter.swift
├── AllTestz
│ ├── RxTest.swift
│ ├── TestErrors.swift
│ ├── Bag.swift
│ ├── RxMutableBox.swift
│ ├── Anomalies.swift
│ ├── MaybeTest.swift
│ ├── Platform.Linux.swift
│ ├── Queue.swift
│ ├── RecursiveLock.swift
│ ├── XCTest+AllTests.swift
│ ├── Driver+Test.swift
│ ├── Event+Test.swift
│ ├── Platform.Darwin.swift
│ ├── Recorded+Timeless.swift
│ ├── Signal+Test.swift
│ ├── SingleTest.swift
│ ├── VariableTest.swift
│ ├── DisposableTest.swift
│ ├── ObserverTests.swift
│ ├── Reactive+Tests.swift
│ ├── SchedulerTests.swift
│ ├── AssumptionsTest.swift
│ ├── AsyncSubjectTests.swift
│ ├── CompletableTest.swift
│ ├── Observable+Tests.swift
│ ├── PriorityQueue.swift
│ ├── RecursiveLockTest.swift
│ ├── ReplaySubjectTest.swift
│ ├── BehaviorSubjectTest.swift
│ ├── Completable+AndThen.swift
│ ├── DispatchQueue+Extensions.swift
│ ├── InfiniteSequence.swift
│ ├── MainSchedulerTests.swift
│ ├── Observable+AmbTests.swift
│ ├── Observable+MapTests.swift
│ ├── Observable+ZipTests.swift
│ ├── PublishSubjectTest.swift
│ ├── SharedSequence+Test.swift
│ ├── MySubject.swift
│ ├── Observable+BufferTests.swift
│ ├── Observable+CatchTests.swift
│ ├── Observable+ConcatTests.swift
│ ├── Observable+DebugTests.swift
│ ├── Observable+DelayTests.swift
│ ├── Observable+DoOnTests.swift
│ ├── Observable+FilterTests.swift
│ ├── Observable+JustTests.swift
│ ├── Observable+MergeTests.swift
│ ├── Observable+RangeTests.swift
│ ├── Observable+ReduceTests.swift
│ ├── Observable+RepeatTests.swift
│ ├── Observable+SampleTests.swift
│ ├── Observable+ScanTests.swift
│ ├── Observable+SingleTests.swift
│ ├── Observable+SkipTests.swift
│ ├── Observable+SwitchTests.swift
│ ├── Observable+TakeTests.swift
│ ├── Observable+TimerTests.swift
│ ├── Observable+UsingTests.swift
│ ├── Observable+WindowTests.swift
│ ├── SharingSchedulerTests.swift
│ ├── VirtualSchedulerTest.swift
│ ├── EquatableArray.swift
│ ├── HistoricalSchedulerTest.swift
│ ├── NotificationCenterTests.swift
│ ├── Observable+BlockingTest.swift
│ ├── Observable+GenerateTests.swift
│ ├── Observable+GroupByTests.swift
│ ├── Observable+OptionalTests.swift
│ ├── Observable+SequenceTests.swift
│ ├── Observable+TakeLastTests.swift
│ ├── Observable+ThrottleTests.swift
│ ├── Observable+TimeoutTests.swift
│ ├── Observable+ToArrayTests.swift
│ ├── CurrentThreadSchedulerTest.swift
│ ├── ElementIndexPair.swift
│ ├── MockDisposable.swift
│ ├── Observable+DefaultIfEmpty.swift
│ ├── Observable+ElementAtTests.swift
│ ├── Observable+EnumeratedTests.swift
│ ├── Observable+MaterializeTests.swift
│ ├── Observable+MulticastTests.swift
│ ├── Observable+ObserveOnTests.swift
│ ├── Observable+RetryWhenTests.swift
│ ├── Observable+SkipUntilTests.swift
│ ├── Observable+SkipWhileTests.swift
│ ├── Observable+SubscribeOnTests.swift
│ ├── Observable+SubscriptionTest.swift
│ ├── Observable+TakeUntilTests.swift
│ ├── Observable+TakeWhileTests.swift
│ ├── Observable+ZipTests+arity.swift
│ ├── SharedSequence+Extensions.swift
│ ├── SharedSequence+OperatorTest.swift
│ ├── Observable+CombineLatestTests.swift
│ ├── Observable+DematerializeTests.swift
│ ├── Observable+SwitchIfEmptyTests.swift
│ ├── Observable+Extensions.swift
│ ├── Observable+PrimitiveSequenceTest.swift
│ ├── Observable+ShareReplayScopeTests.swift
│ ├── Observable+WithLatestFromTests.swift
│ ├── ObservableType+SubscriptionTests.swift
│ ├── PrimitiveSequenceTest+zip+arity.swift
│ ├── TestVirtualScheduler.swift
│ ├── Observable+DelaySubscriptionTests.swift
│ ├── Observable.Extensions.swift
│ ├── PrimitiveMockObserver.swift
│ ├── Observable+CombineLatestTests+arity.swift
│ ├── Observable+DistinctUntilChangedTests.swift
│ ├── PrimitiveHotObservable.swift
│ ├── TestConnectableObservable.swift
│ ├── MainThreadPrimitiveHotObservable.swift
│ └── BackgroundThreadPrimitiveHotObservable.swift
├── RxCocoa
│ ├── RxCocoa.swift
│ ├── Binder.swift
│ ├── Deprecated.swift
│ ├── Driver.swift
│ ├── Logging.swift
│ ├── NSView+Rx.swift
│ ├── RxTarget.swift
│ ├── Signal.swift
│ ├── TextInput.swift
│ ├── UIButton+Rx.swift
│ ├── UILabel+Rx.swift
│ ├── UISlider+Rx.swift
│ ├── UISwitch+Rx.swift
│ ├── UITabBar+Rx.swift
│ ├── UIView+Rx.swift
│ ├── ControlEvent.swift
│ ├── ItemEvents.swift
│ ├── NSButton+Rx.swift
│ ├── NSControl+Rx.swift
│ ├── NSSlider+Rx.swift
│ ├── PublishRelay.swift
│ ├── UIControl+Rx.swift
│ ├── UIStepper+Rx.swift
│ ├── UITextView+Rx.swift
│ ├── UIWebView+Rx.swift
│ ├── BehaviorRelay.swift
│ ├── ControlTarget.swift
│ ├── DelegateProxy.swift
│ ├── NSImageView+Rx.swift
│ ├── NSObject+Rx.swift
│ ├── NSTextField+Rx.swift
│ ├── NSTextStorage+Rx.swift
│ ├── UIAlertAction+Rx.swift
│ ├── UIApplication+Rx.swift
│ ├── UIDatePicker+Rx.swift
│ ├── UIImageView+Rx.swift
│ ├── UIPageControl+Rx.swift
│ ├── UIPickerView+Rx.swift
│ ├── UIScrollView+Rx.swift
│ ├── UISearchBar+Rx.swift
│ ├── UITabBarItem+Rx.swift
│ ├── UITableView+Rx.swift
│ ├── UITextField+Rx.swift
│ ├── ControlProperty.swift
│ ├── DelegateProxyType.swift
│ ├── Observable+Bind.swift
│ ├── UIBarButtonItem+Rx.swift
│ ├── UIProgressView+Rx.swift
│ ├── URLSession+Rx.swift
│ ├── KVORepresentable.swift
│ ├── UICollectionView+Rx.swift
│ ├── UINavigationItem+Rx.swift
│ ├── UIRefreshControl+Rx.swift
│ ├── UISearchController+Rx.swift
│ ├── UISegmentedControl+Rx.swift
│ ├── UITabBarController+Rx.swift
│ ├── UIViewController+Rx.swift
│ ├── NSLayoutConstraint+Rx.swift
│ ├── SharedSequence.swift
│ ├── UIGestureRecognizer+Rx.swift
│ ├── BehaviorRelay+Driver.swift
│ ├── ControlEvent+Driver.swift
│ ├── ControlEvent+Signal.swift
│ ├── Driver+Subscription.swift
│ ├── KVORepresentable+Swift.swift
│ ├── NotificationCenter+Rx.swift
│ ├── PublishRelay+Signal.swift
│ ├── RxPickerViewAdapter.swift
│ ├── RxTabBarDelegateProxy.swift
│ ├── RxWebViewDelegateProxy.swift
│ ├── Signal+Subscription.swift
│ ├── UIActivityIndicatorView+Rx.swift
│ ├── UINavigationController+Rx.swift
│ ├── ControlProperty+Driver.swift
│ ├── DispatchQueue+Extensions.swift
│ ├── RxSearchBarDelegateProxy.swift
│ ├── RxTableViewDelegateProxy.swift
│ ├── RxTextViewDelegateProxy.swift
│ ├── SectionedViewDataSourceType.swift
│ ├── RxPickerViewDataSourceProxy.swift
│ ├── RxPickerViewDataSourceType.swift
│ ├── RxPickerViewDelegateProxy.swift
│ ├── RxScrollViewDelegateProxy.swift
│ ├── RxTableViewDataSourceProxy.swift
│ ├── RxTableViewDataSourceType.swift
│ ├── RxTextStorageDelegateProxy.swift
│ ├── KVORepresentable+CoreGraphics.swift
│ ├── NSObject+Rx+KVORepresentable.swift
│ ├── NSObject+Rx+RawRepresentable.swift
│ ├── RxCollectionViewDelegateProxy.swift
│ ├── SharedSequence+Operators.swift
│ ├── RxCocoaObjCRuntimeError+Extensions.swift
│ ├── RxCollectionViewDataSourceProxy.swift
│ ├── RxCollectionViewDataSourceType.swift
│ ├── RxSearchControllerDelegateProxy.swift
│ ├── RxTabBarControllerDelegateProxy.swift
│ ├── ObservableConvertibleType+Driver.swift
│ ├── ObservableConvertibleType+Signal.swift
│ ├── SchedulerType+SharedSequence.swift
│ ├── RxNavigationControllerDelegateProxy.swift
│ ├── RxTableViewReactiveArrayDataSource.swift
│ ├── SharedSequence+Operators+arity.swift
│ ├── RxCollectionViewReactiveArrayDataSource.swift
│ └── ObservableConvertibleType+SharedSequence.swift
├── RxCocoaRuntime
│ ├── _RX.m
│ ├── _RXKVOObserver.m
│ ├── _RXObjCRuntime.m
│ ├── _RXDelegateProxy.m
│ └── include
│ │ ├── RxCocoaRuntime.h
│ │ ├── _RXDelegateProxy.h
│ │ └── _RXKVOObserver.h
├── RxTest
│ ├── Recorded.swift
│ ├── RxTests.swift
│ ├── XCTest+Rx.swift
│ ├── Deprecated.swift
│ ├── Any+Equatable.swift
│ ├── ColdObservable.swift
│ ├── HotObservable.swift
│ ├── Subscription.swift
│ ├── Bag.swift
│ ├── Event+Equatable.swift
│ ├── TestableObserver.swift
│ ├── TestScheduler.swift
│ ├── TestableObservable.swift
│ └── TestSchedulerVirtualTimeConverter.swift
└── RxBlocking
│ ├── Resources.swift
│ ├── RunLoopLock.swift
│ ├── RecursiveLock.swift
│ ├── BlockingObservable.swift
│ ├── Platform.Darwin.swift
│ ├── Platform.Linux.swift
│ ├── BlockingObservable+Operators.swift
│ └── ObservableConvertibleType+Blocking.swift
├── Gemfile
├── Tests
├── Platform
│ ├── RecursiveLock.swift
│ ├── Platform.Darwin.swift
│ ├── Platform.Linux.swift
│ └── DispatchQueue+Extensions.swift
├── RxCocoaTests
│ ├── RxTest-iOS-Bridging-Header.h
│ ├── RxTest-macOS-Bridging-Header.h
│ ├── RxTest-tvOS-Bridging-Header.h
│ ├── SharedSequence+Extensions.swift
│ ├── UIViewController+RxTests.swift
│ ├── NSSlider+RxTests.swift
│ ├── UIGestureRecognizer+RxTests.swift
│ ├── UISlider+RxTests.swift
│ ├── UINavigationItem+RxTests.swift.swift
│ ├── UIAlertAction+RxTests.swift
│ ├── UIRefreshControl+RxTests.swift
│ └── UITabBarItem+RxTests.swift
├── RxSwiftTests
│ ├── TestImplementations
│ │ ├── Mocks
│ │ │ ├── Observable.Extensions.swift
│ │ │ ├── MockDisposable.swift
│ │ │ ├── MainThreadPrimitiveHotObservable.swift
│ │ │ ├── PrimitiveMockObserver.swift
│ │ │ ├── BackgroundThreadPrimitiveHotObservable.swift
│ │ │ └── TestConnectableObservable.swift
│ │ ├── EquatableArray.swift
│ │ ├── Observable+Extensions.swift
│ │ └── ElementIndexPair.swift
│ ├── Observable+RepeatTests.swift
│ └── AssumptionsTest.swift
├── TestErrors.swift
├── Recorded+Timeless.swift
├── Benchmarks
│ └── Info.plist
├── Info.plist
└── Resources.swift
├── RxBlocking
├── Platform
│ ├── RecursiveLock.swift
│ ├── Platform.Darwin.swift
│ └── Platform.Linux.swift
├── BlockingObservable.swift
├── ObservableConvertibleType+Blocking.swift
├── README.md
├── Info.plist
└── Resources.swift
├── RxSwift
├── Platform
│ ├── Platform.Linux.swift
│ ├── RecursiveLock.swift
│ ├── Platform.Darwin.swift
│ ├── DataStructures
│ │ ├── Bag.swift
│ │ ├── Queue.swift
│ │ ├── PriorityQueue.swift
│ │ └── InfiniteSequence.swift
│ └── DispatchQueue+Extensions.swift
├── Disposable.swift
├── Schedulers
│ ├── Internal
│ │ ├── ScheduledItemType.swift
│ │ ├── InvocableType.swift
│ │ ├── InvocableScheduledItem.swift
│ │ └── ScheduledItem.swift
│ └── HistoricalScheduler.swift
├── Disposables
│ ├── Disposables.swift
│ ├── DisposeBase.swift
│ ├── SubscriptionDisposable.swift
│ └── NopDisposable.swift
├── Cancelable.swift
├── Concurrency
│ ├── SynchronizedUnsubscribeType.swift
│ ├── LockOwnerType.swift
│ ├── SynchronizedDisposeType.swift
│ └── SynchronizedOnType.swift
├── ObservableConvertibleType.swift
├── Extensions
│ └── String+Rx.swift
├── RxMutableBox.swift
├── Subjects
│ └── SubjectType.swift
├── SwiftSupport
│ └── SwiftSupport.swift
├── ConnectableObservableType.swift
├── Observers
│ ├── AnonymousObserver.swift
│ └── ObserverBase.swift
├── Observables
│ ├── Never.swift
│ └── Empty.swift
└── Info.plist
├── RxTest
├── Platform
│ └── DataStructures
│ │ └── Bag.swift
├── RxTests.swift
├── Info.plist
└── Deprecated.swift
├── default.profraw
├── RxCocoa
├── Platform
│ └── DispatchQueue+Extensions.swift
├── Runtime
│ ├── _RX.m
│ └── include
│ │ ├── RxCocoaRuntime.h
│ │ ├── _RXDelegateProxy.h
│ │ └── _RXKVOObserver.h
├── iOS
│ ├── Events
│ │ └── ItemEvents.swift
│ ├── UIImageView+Rx.swift
│ ├── UIProgressView+Rx.swift
│ ├── UIAlertAction+Rx.swift
│ ├── UINavigationItem+Rx.swift
│ ├── UITabBarItem+Rx.swift
│ ├── UIViewController+Rx.swift
│ ├── UIApplication+Rx.swift
│ ├── UISlider+Rx.swift
│ ├── UIRefreshControl+Rx.swift
│ ├── UIActivityIndicatorView+Rx.swift
│ ├── UILabel+Rx.swift
│ ├── Proxies
│ │ └── RxTableViewDelegateProxy.swift
│ ├── Protocols
│ │ ├── RxPickerViewDataSourceType.swift
│ │ ├── RxTableViewDataSourceType.swift
│ │ └── RxCollectionViewDataSourceType.swift
│ ├── UIPageControl+Rx.swift
│ └── UIStepper+Rx.swift
├── RxCocoa.h
├── macOS
│ ├── NSImageView+Rx.swift
│ ├── NSSlider+Rx.swift
│ └── NSView+Rx.swift
├── Traits
│ ├── Signal
│ │ ├── PublishRelay+Signal.swift
│ │ └── ControlEvent+Signal.swift
│ └── Driver
│ │ ├── BehaviorRelay+Driver.swift
│ │ ├── ControlEvent+Driver.swift
│ │ └── ControlProperty+Driver.swift
├── Foundation
│ ├── Logging.swift
│ └── KVORepresentable.swift
├── Common
│ ├── SectionedViewDataSourceType.swift
│ └── RxTarget.swift
└── Info.plist
├── Documentation
├── Subjects.md
├── Playgrounds.md
├── ExampleApp.md
└── NewFeatureRequestTemplate.md
├── RxExample
├── RxExample
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── Icon-40.png
│ │ │ ├── Icon-76.png
│ │ │ ├── Rx_Logo_M.png
│ │ │ ├── Icon-40@2x-1.png
│ │ │ ├── Icon-40@2x.png
│ │ │ ├── Icon-60@2x-1.png
│ │ │ ├── Icon-60@2x.png
│ │ │ ├── Icon-60@3x.png
│ │ │ ├── Icon-76@2x.png
│ │ │ ├── Icon-Small.png
│ │ │ ├── Rx_Logo-iPad.png
│ │ │ ├── Icon-Small@3x.png
│ │ │ └── Icon-Small@2x-1.png
│ │ └── ReactiveExtensionsLogo.imageset
│ │ │ ├── ReactiveExtensionsLogo-2.png
│ │ │ ├── ReactiveExtensionsLogo.png
│ │ │ └── Contents.json
│ ├── RxExample.xcdatamodeld
│ │ ├── .xccurrentversion
│ │ └── RxExample.xcdatamodel
│ │ │ └── contents
│ ├── Result.swift
│ ├── Examples
│ │ ├── TableViewPartialUpdates
│ │ │ ├── NumberCell.swift
│ │ │ └── NumberSectionView.swift
│ │ ├── TableViewWithEditingCommands
│ │ │ ├── UIImageView+Extensions.swift
│ │ │ └── User.swift
│ │ └── GitHubSearchRepositories
│ │ │ └── UINavigationController+Extensions.swift
│ ├── String+URL.swift
│ ├── iOS
│ │ └── UITableView+Extensions.swift
│ ├── Services
│ │ ├── DownloadableImage.swift
│ │ ├── UIImage+Extensions.swift
│ │ └── PseudoRandomGenerator.swift
│ ├── Application+Extensions.swift
│ ├── macOS
│ │ └── AppDelegate.swift
│ └── Lenses.swift
├── RxExample.xcodeproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
├── RxDataSources
│ ├── Differentiator
│ │ ├── IdentifiableType.swift
│ │ ├── SectionModelType.swift
│ │ ├── AnimatableSectionModelType.swift
│ │ ├── AnimatableSectionModelType+ItemPath.swift
│ │ ├── Optional+Extensions.swift
│ │ ├── Differentiator.h
│ │ ├── Info.plist
│ │ ├── Utilities.swift
│ │ └── ItemPath.swift
│ └── RxDataSources
│ │ ├── String+IdentifiableType.swift
│ │ ├── FloatingPointType+IdentifiableType.swift
│ │ ├── Deprecated.swift
│ │ ├── RxDataSources.h
│ │ ├── DataSources.swift
│ │ └── Info.plist
├── RxExample-iOSTests
│ ├── RxTest.swift
│ └── Mocks
│ │ ├── ValidationResult+Equatable.swift
│ │ └── NotImplementedStubs.swift
├── Extensions
│ └── RxImagePickerDelegateProxy.swift
├── RxExample-iOSUITests
│ └── Info.plist
└── RxExample-macOSUITests
│ └── Info.plist
├── scripts
├── validate-markdown.sh
├── profile-build-times.sh
├── validate-playgrounds.sh
├── update-jazzy-docs.sh
├── update-jazzy-config.rb
└── test-linux.sh
├── Rx.playground
├── playground.xcworkspace
│ └── contents.xcworkspacedata
├── SupportCode.remap
├── Pages
│ └── TryYourself.xcplaygroundpage
│ │ └── Contents.swift
└── contents.xcplayground
├── Rx.xcodeproj
└── project.xcworkspace
│ └── contents.xcworkspacedata
├── Preprocessor
└── Preprocessor.xcodeproj
│ └── project.xcworkspace
│ └── contents.xcworkspacedata
└── Platform
├── DispatchQueue+Extensions.swift
├── DataStructures
└── InfiniteSequence.swift
└── RecursiveLock.swift
/.swift-version:
--------------------------------------------------------------------------------
1 | 4.0
2 |
--------------------------------------------------------------------------------
/assets/CNAME.txt:
--------------------------------------------------------------------------------
1 | reactivex.io
2 |
--------------------------------------------------------------------------------
/Sources/RxSwift/Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Rx.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/RxTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxTest.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Event.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Event.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxCocoa.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/RxCocoa.swift
--------------------------------------------------------------------------------
/Sources/RxCocoaRuntime/_RX.m:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Runtime/_RX.m
--------------------------------------------------------------------------------
/Sources/RxSwift/Do.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Do.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Errors.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Errors.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Reactive.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Reactive.swift
--------------------------------------------------------------------------------
/Sources/RxTest/Recorded.swift:
--------------------------------------------------------------------------------
1 | ../../RxTest/Recorded.swift
--------------------------------------------------------------------------------
/Sources/RxTest/RxTests.swift:
--------------------------------------------------------------------------------
1 | ../../RxTest/RxTests.swift
--------------------------------------------------------------------------------
/Sources/RxTest/XCTest+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxTest/XCTest+Rx.swift
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 |
3 | gem 'danger'
4 |
--------------------------------------------------------------------------------
/Sources/AllTestz/TestErrors.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/TestErrors.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/Binder.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Common/Binder.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/Deprecated.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Deprecated.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Amb.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Amb.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Cancelable.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Cancelable.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Deprecated.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Deprecated.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Disposable.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Disposable.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Just.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Just.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Lock.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Concurrency/Lock.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Map.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Map.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Maybe.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Traits/Maybe.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Observable.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observable.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Scan.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Scan.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Single.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Traits/Single.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Sink.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Sink.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Skip.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Skip.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Take.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Take.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Zip.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Zip.swift
--------------------------------------------------------------------------------
/Sources/RxTest/Deprecated.swift:
--------------------------------------------------------------------------------
1 | ../../RxTest/Deprecated.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Bag.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/DataStructures/Bag.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/RxMutableBox.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/RxMutableBox.swift
--------------------------------------------------------------------------------
/Sources/RxBlocking/Resources.swift:
--------------------------------------------------------------------------------
1 | ../../RxBlocking/Resources.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/Driver.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/Driver/Driver.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/Logging.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Foundation/Logging.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/NSView+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/macOS/NSView+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxTarget.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Common/RxTarget.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/Signal.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/Signal/Signal.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/TextInput.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Common/TextInput.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIButton+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIButton+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UILabel+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UILabel+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UISlider+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UISlider+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UISwitch+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UISwitch+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UITabBar+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UITabBar+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIView+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIView+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/AddRef.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/AddRef.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/AnyObserver.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/AnyObserver.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/AsMaybe.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/AsMaybe.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Bag+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Extensions/Bag+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Buffer.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Buffer.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Catch.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Catch.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Concat.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Concat.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Create.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Create.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Debug.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Debug.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Delay.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Delay.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Empty.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Empty.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Error.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Error.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Filter.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Filter.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/First.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/First.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/GroupBy.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/GroupBy.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Merge.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Merge.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Never.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Never.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ObserverType.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/ObserverType.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Range.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Range.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Reduce.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Reduce.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Repeat.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Repeat.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/RxMutableBox.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/RxMutableBox.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Sample.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Sample.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/SchedulerType.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/SchedulerType.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Switch.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Switch.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Timeout.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Timeout.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Timer.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Timer.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ToArray.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/ToArray.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Using.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Using.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Window.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Window.swift
--------------------------------------------------------------------------------
/Sources/RxTest/Any+Equatable.swift:
--------------------------------------------------------------------------------
1 | ../../RxTest/Any+Equatable.swift
--------------------------------------------------------------------------------
/Sources/RxTest/ColdObservable.swift:
--------------------------------------------------------------------------------
1 | ../../RxTest/ColdObservable.swift
--------------------------------------------------------------------------------
/Sources/RxTest/HotObservable.swift:
--------------------------------------------------------------------------------
1 | ../../RxTest/HotObservable.swift
--------------------------------------------------------------------------------
/Sources/RxTest/Subscription.swift:
--------------------------------------------------------------------------------
1 | ../../RxTest/Subscription.swift
--------------------------------------------------------------------------------
/Tests/Platform/RecursiveLock.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/RecursiveLock.swift
--------------------------------------------------------------------------------
/RxBlocking/Platform/RecursiveLock.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/RecursiveLock.swift
--------------------------------------------------------------------------------
/RxSwift/Platform/Platform.Linux.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/Platform.Linux.swift
--------------------------------------------------------------------------------
/RxSwift/Platform/RecursiveLock.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/RecursiveLock.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Anomalies.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Anomalies.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/MaybeTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/MaybeTest.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Platform.Linux.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/Platform.Linux.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Queue.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/DataStructures/Queue.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/RecursiveLock.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/RecursiveLock.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/XCTest+AllTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/XCTest+AllTests.swift
--------------------------------------------------------------------------------
/Sources/RxBlocking/RunLoopLock.swift:
--------------------------------------------------------------------------------
1 | ../../RxBlocking/RunLoopLock.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/ControlEvent.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/ControlEvent.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/ItemEvents.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Events/ItemEvents.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/NSButton+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/macOS/NSButton+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/NSControl+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/macOS/NSControl+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/NSSlider+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/macOS/NSSlider+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/PublishRelay.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/PublishRelay.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIControl+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIControl+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIStepper+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIStepper+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UITextView+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UITextView+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIWebView+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIWebView+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/AsSingle.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/AsSingle.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/AsyncLock.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Concurrency/AsyncLock.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Bag.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Platform/DataStructures/Bag.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Completable.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Traits/Completable.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Debounce.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Debounce.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Deferred.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Deferred.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ElementAt.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/ElementAt.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Generate.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Generate.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Multicast.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Multicast.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ObservableType.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/ObservableType.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ObserveOn.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/ObserveOn.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Optional.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Optional.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Producer.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Producer.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/RetryWhen.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/RetryWhen.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Sequence.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Sequence.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/SkipUntil.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/SkipUntil.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/SkipWhile.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/SkipWhile.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/StartWith.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/StartWith.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/String+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Extensions/String+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/SubjectType.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Subjects/SubjectType.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/TakeLast.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/TakeLast.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/TakeUntil.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/TakeUntil.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/TakeWhile.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/TakeWhile.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Throttle.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Throttle.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Zip+arity.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Zip+arity.swift
--------------------------------------------------------------------------------
/Sources/RxTest/Bag.swift:
--------------------------------------------------------------------------------
1 | ../../RxTest/Platform/DataStructures/Bag.swift
--------------------------------------------------------------------------------
/Sources/RxTest/Event+Equatable.swift:
--------------------------------------------------------------------------------
1 | ../../RxTest/Event+Equatable.swift
--------------------------------------------------------------------------------
/Sources/RxTest/TestableObserver.swift:
--------------------------------------------------------------------------------
1 | ../../RxTest/TestableObserver.swift
--------------------------------------------------------------------------------
/Tests/Platform/Platform.Darwin.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/Platform.Darwin.swift
--------------------------------------------------------------------------------
/Tests/Platform/Platform.Linux.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/Platform.Linux.swift
--------------------------------------------------------------------------------
/RxBlocking/Platform/Platform.Darwin.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/Platform.Darwin.swift
--------------------------------------------------------------------------------
/RxBlocking/Platform/Platform.Linux.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/Platform.Linux.swift
--------------------------------------------------------------------------------
/RxSwift/Platform/Platform.Darwin.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/Platform.Darwin.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Driver+Test.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxCocoaTests/Driver+Test.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Event+Test.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Event+Test.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Platform.Darwin.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/Platform.Darwin.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Recorded+Timeless.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/Recorded+Timeless.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Signal+Test.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxCocoaTests/Signal+Test.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/SingleTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/SingleTest.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/VariableTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/VariableTest.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/BehaviorRelay.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/BehaviorRelay.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/ControlTarget.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Common/ControlTarget.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/DelegateProxy.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Common/DelegateProxy.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/NSImageView+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/macOS/NSImageView+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/NSObject+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Foundation/NSObject+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/NSTextField+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/macOS/NSTextField+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/NSTextStorage+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/NSTextStorage+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIAlertAction+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIAlertAction+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIApplication+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIApplication+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIDatePicker+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIDatePicker+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIImageView+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIImageView+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIPageControl+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIPageControl+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIPickerView+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIPickerView+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIScrollView+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIScrollView+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UISearchBar+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UISearchBar+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UITabBarItem+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UITabBarItem+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UITableView+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UITableView+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UITextField+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UITextField+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoaRuntime/_RXKVOObserver.m:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Runtime/_RXKVOObserver.m
--------------------------------------------------------------------------------
/Sources/RxCocoaRuntime/_RXObjCRuntime.m:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Runtime/_RXObjCRuntime.m
--------------------------------------------------------------------------------
/Sources/RxSwift/AsyncSubject.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Subjects/AsyncSubject.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Disposables.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Disposables/Disposables.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/DisposeBag.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Disposables/DisposeBag.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/DisposeBase.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Disposables/DisposeBase.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Enumerated.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Enumerated.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/GroupedObservable.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/GroupedObservable.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Materialize.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Materialize.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ObserverBase.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observers/ObserverBase.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Queue.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Platform/DataStructures/Queue.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/RecursiveLock.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Platform/RecursiveLock.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ReplaySubject.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Subjects/ReplaySubject.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/SingleAsync.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/SingleAsync.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/SubscribeOn.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/SubscribeOn.swift
--------------------------------------------------------------------------------
/Sources/RxTest/TestScheduler.swift:
--------------------------------------------------------------------------------
1 | ../../RxTest/Schedulers/TestScheduler.swift
--------------------------------------------------------------------------------
/Sources/RxTest/TestableObservable.swift:
--------------------------------------------------------------------------------
1 | ../../RxTest/TestableObservable.swift
--------------------------------------------------------------------------------
/RxSwift/Platform/DataStructures/Bag.swift:
--------------------------------------------------------------------------------
1 | ../../../Platform/DataStructures/Bag.swift
--------------------------------------------------------------------------------
/RxTest/Platform/DataStructures/Bag.swift:
--------------------------------------------------------------------------------
1 | ../../../Platform/DataStructures/Bag.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/DisposableTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/DisposableTest.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/ObserverTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/ObserverTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Reactive+Tests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Reactive+Tests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/SchedulerTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/SchedulerTests.swift
--------------------------------------------------------------------------------
/Sources/RxBlocking/RecursiveLock.swift:
--------------------------------------------------------------------------------
1 | ../../RxBlocking/Platform/RecursiveLock.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/ControlProperty.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/ControlProperty.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/DelegateProxyType.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Common/DelegateProxyType.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/Observable+Bind.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Common/Observable+Bind.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIBarButtonItem+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIBarButtonItem+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIProgressView+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIProgressView+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/URLSession+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Foundation/URLSession+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoaRuntime/_RXDelegateProxy.m:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Runtime/_RXDelegateProxy.m
--------------------------------------------------------------------------------
/Sources/RxSwift/BehaviorSubject.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Subjects/BehaviorSubject.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/CombineLatest.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/CombineLatest.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/DefaultIfEmpty.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/DefaultIfEmpty.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Dematerialize.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Dematerialize.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/LockOwnerType.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Concurrency/LockOwnerType.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/MainScheduler.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/MainScheduler.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/NopDisposable.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Disposables/NopDisposable.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Platform.Darwin.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Platform/Platform.Darwin.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Platform.Linux.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Platform/Platform.Linux.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/PrimitiveSequence.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Traits/PrimitiveSequence.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/PublishSubject.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Subjects/PublishSubject.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/SwiftSupport.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/SwiftSupport/SwiftSupport.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/SwitchIfEmpty.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/SwitchIfEmpty.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/WithLatestFrom.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/WithLatestFrom.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Zip+Collection.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/Zip+Collection.swift
--------------------------------------------------------------------------------
/RxSwift/Platform/DataStructures/Queue.swift:
--------------------------------------------------------------------------------
1 | ../../../Platform/DataStructures/Queue.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/AssumptionsTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/AssumptionsTest.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/AsyncSubjectTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/AsyncSubjectTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/CompletableTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/CompletableTest.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+Tests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+Tests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/PriorityQueue.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/DataStructures/PriorityQueue.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/RecursiveLockTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/RecursiveLockTest.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/ReplaySubjectTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/ReplaySubjectTest.swift
--------------------------------------------------------------------------------
/Sources/RxBlocking/BlockingObservable.swift:
--------------------------------------------------------------------------------
1 | ../../RxBlocking/BlockingObservable.swift
--------------------------------------------------------------------------------
/Sources/RxBlocking/Platform.Darwin.swift:
--------------------------------------------------------------------------------
1 | ../../RxBlocking/Platform/Platform.Darwin.swift
--------------------------------------------------------------------------------
/Sources/RxBlocking/Platform.Linux.swift:
--------------------------------------------------------------------------------
1 | ../../RxBlocking/Platform/Platform.Linux.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/KVORepresentable.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Foundation/KVORepresentable.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UICollectionView+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UICollectionView+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UINavigationItem+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UINavigationItem+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIRefreshControl+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIRefreshControl+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UISearchController+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UISearchController+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UISegmentedControl+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UISegmentedControl+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UITabBarController+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UITabBarController+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIViewController+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIViewController+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/AnonymousObserver.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observers/AnonymousObserver.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/BinaryDisposable.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Disposables/BinaryDisposable.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/BooleanDisposable.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Disposables/BooleanDisposable.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/Completable+AndThen.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Traits/Completable+AndThen.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/DelaySubscription.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/DelaySubscription.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ImmediateSchedulerType.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/ImmediateSchedulerType.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/InvocableType.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/Internal/InvocableType.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ScheduledItem.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/Internal/ScheduledItem.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/SerialDisposable.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Disposables/SerialDisposable.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ShareReplayScope.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/ShareReplayScope.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/TailRecursiveSink.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observers/TailRecursiveSink.swift
--------------------------------------------------------------------------------
/default.profraw:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/default.profraw
--------------------------------------------------------------------------------
/RxSwift/Platform/DispatchQueue+Extensions.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/DispatchQueue+Extensions.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/BehaviorSubjectTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/BehaviorSubjectTest.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Completable+AndThen.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Completable+AndThen.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/DispatchQueue+Extensions.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/DispatchQueue+Extensions.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/InfiniteSequence.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/DataStructures/InfiniteSequence.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/MainSchedulerTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/MainSchedulerTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+AmbTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+AmbTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+MapTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+MapTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+ZipTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+ZipTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/PublishSubjectTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/PublishSubjectTest.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/SharedSequence+Test.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxCocoaTests/SharedSequence+Test.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/NSLayoutConstraint+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Common/NSLayoutConstraint+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/SharedSequence.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/SharedSequence/SharedSequence.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIGestureRecognizer+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIGestureRecognizer+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/AnonymousDisposable.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Disposables/AnonymousDisposable.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/CombineLatest+arity.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/CombineLatest+arity.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/CompositeDisposable.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Disposables/CompositeDisposable.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ConnectableObservableType.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/ConnectableObservableType.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/HistoricalScheduler.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/HistoricalScheduler.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ObservableConvertibleType.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/ObservableConvertibleType.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ObservableType+Extensions.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/ObservableType+Extensions.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/PriorityQueue.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Platform/DataStructures/PriorityQueue.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/RecursiveScheduler.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/RecursiveScheduler.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/RefCountDisposable.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Disposables/RefCountDisposable.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ScheduledDisposable.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Disposables/ScheduledDisposable.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/SynchronizedOnType.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Concurrency/SynchronizedOnType.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/VirtualTimeScheduler.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/VirtualTimeScheduler.swift
--------------------------------------------------------------------------------
/Tests/Platform/DispatchQueue+Extensions.swift:
--------------------------------------------------------------------------------
1 | ../../Platform/DispatchQueue+Extensions.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/MySubject.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/TestImplementations/Mocks/MySubject.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+BufferTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+BufferTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+CatchTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+CatchTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+ConcatTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+ConcatTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+DebugTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+DebugTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+DelayTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+DelayTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+DoOnTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+DoOnTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+FilterTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+FilterTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+JustTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+JustTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+MergeTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+MergeTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+RangeTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+RangeTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+ReduceTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+ReduceTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+RepeatTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+RepeatTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+SampleTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+SampleTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+ScanTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+ScanTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+SingleTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+SingleTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+SkipTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+SkipTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+SwitchTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+SwitchTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+TakeTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+TakeTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+TimerTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+TimerTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+UsingTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+UsingTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+WindowTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+WindowTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/SharingSchedulerTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/SharingSchedulerTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/VirtualSchedulerTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/VirtualSchedulerTest.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/BehaviorRelay+Driver.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/Driver/BehaviorRelay+Driver.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/ControlEvent+Driver.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/Driver/ControlEvent+Driver.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/ControlEvent+Signal.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/Signal/ControlEvent+Signal.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/Driver+Subscription.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/Driver/Driver+Subscription.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/KVORepresentable+Swift.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Foundation/KVORepresentable+Swift.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/NotificationCenter+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Foundation/NotificationCenter+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/PublishRelay+Signal.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/Signal/PublishRelay+Signal.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxPickerViewAdapter.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/DataSources/RxPickerViewAdapter.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxTabBarDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Proxies/RxTabBarDelegateProxy.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxWebViewDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Proxies/RxWebViewDelegateProxy.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/Signal+Subscription.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/Signal/Signal+Subscription.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UIActivityIndicatorView+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UIActivityIndicatorView+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/UINavigationController+Rx.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/UINavigationController+Rx.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/CurrentThreadScheduler.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/CurrentThreadScheduler.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/DistinctUntilChanged.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/DistinctUntilChanged.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/InfiniteSequence.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Platform/DataStructures/InfiniteSequence.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ScheduledItemType.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/Internal/ScheduledItemType.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/SubscriptionDisposable.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Disposables/SubscriptionDisposable.swift
--------------------------------------------------------------------------------
/assets/Rx_Logo_M.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/assets/Rx_Logo_M.png
--------------------------------------------------------------------------------
/RxCocoa/Platform/DispatchQueue+Extensions.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Platform/DispatchQueue+Extensions.swift
--------------------------------------------------------------------------------
/RxSwift/Platform/DataStructures/PriorityQueue.swift:
--------------------------------------------------------------------------------
1 | ../../../Platform/DataStructures/PriorityQueue.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/EquatableArray.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/TestImplementations/EquatableArray.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/HistoricalSchedulerTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/HistoricalSchedulerTest.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/NotificationCenterTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxCocoaTests/NotificationCenterTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+BlockingTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxBlockingTests/Observable+BlockingTest.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+GenerateTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+GenerateTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+GroupByTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+GroupByTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+OptionalTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+OptionalTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+SequenceTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+SequenceTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+TakeLastTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+TakeLastTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+ThrottleTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+ThrottleTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+TimeoutTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+TimeoutTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+ToArrayTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+ToArrayTests.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/ControlProperty+Driver.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/Driver/ControlProperty+Driver.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/DispatchQueue+Extensions.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Platform/DispatchQueue+Extensions.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxSearchBarDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Proxies/RxSearchBarDelegateProxy.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxTableViewDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Proxies/RxTableViewDelegateProxy.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxTextViewDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Proxies/RxTextViewDelegateProxy.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/SectionedViewDataSourceType.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Common/SectionedViewDataSourceType.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/CombineLatest+Collection.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Observables/CombineLatest+Collection.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ConcurrentMainScheduler.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/ConcurrentMainScheduler.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/DispatchQueue+Extensions.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Platform/DispatchQueue+Extensions.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/OperationQueueScheduler.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/OperationQueueScheduler.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/PrimitiveSequence+Zip+arity.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Traits/PrimitiveSequence+Zip+arity.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/SynchronizedDisposeType.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Concurrency/SynchronizedDisposeType.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/VirtualTimeConverterType.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/VirtualTimeConverterType.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/CurrentThreadSchedulerTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/CurrentThreadSchedulerTest.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/ElementIndexPair.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/TestImplementations/ElementIndexPair.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/MockDisposable.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/TestImplementations/Mocks/MockDisposable.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+DefaultIfEmpty.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+DefaultIfEmpty.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+ElementAtTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+ElementAtTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+EnumeratedTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+EnumeratedTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+MaterializeTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+MaterializeTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+MulticastTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+MulticastTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+ObserveOnTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+ObserveOnTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+RetryWhenTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+RetryWhenTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+SkipUntilTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+SkipUntilTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+SkipWhileTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+SkipWhileTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+SubscribeOnTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+SubscribeOnTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+SubscriptionTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+SubscriptionTest.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+TakeUntilTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+TakeUntilTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+TakeWhileTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+TakeWhileTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+ZipTests+arity.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+ZipTests+arity.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/SharedSequence+Extensions.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxCocoaTests/SharedSequence+Extensions.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/SharedSequence+OperatorTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxCocoaTests/SharedSequence+OperatorTest.swift
--------------------------------------------------------------------------------
/Sources/RxBlocking/BlockingObservable+Operators.swift:
--------------------------------------------------------------------------------
1 | ../../RxBlocking/BlockingObservable+Operators.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxPickerViewDataSourceProxy.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Proxies/RxPickerViewDataSourceProxy.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxPickerViewDataSourceType.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Protocols/RxPickerViewDataSourceType.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxPickerViewDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Proxies/RxPickerViewDelegateProxy.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxScrollViewDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Proxies/RxScrollViewDelegateProxy.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxTableViewDataSourceProxy.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Proxies/RxTableViewDataSourceProxy.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxTableViewDataSourceType.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Protocols/RxTableViewDataSourceType.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxTextStorageDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/InvocableScheduledItem.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/Internal/InvocableScheduledItem.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/SchedulerServices+Emulation.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/SchedulerServices+Emulation.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/SingleAssignmentDisposable.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Disposables/SingleAssignmentDisposable.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/SynchronizedUnsubscribeType.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Concurrency/SynchronizedUnsubscribeType.swift
--------------------------------------------------------------------------------
/RxSwift/Platform/DataStructures/InfiniteSequence.swift:
--------------------------------------------------------------------------------
1 | ../../../Platform/DataStructures/InfiniteSequence.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+CombineLatestTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+CombineLatestTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+DematerializeTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+DematerializeTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+SwitchIfEmptyTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+SwitchIfEmptyTests.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/KVORepresentable+CoreGraphics.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Foundation/KVORepresentable+CoreGraphics.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/NSObject+Rx+KVORepresentable.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Foundation/NSObject+Rx+KVORepresentable.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/NSObject+Rx+RawRepresentable.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Foundation/NSObject+Rx+RawRepresentable.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxCollectionViewDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Proxies/RxCollectionViewDelegateProxy.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/SharedSequence+Operators.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/SharedSequence/SharedSequence+Operators.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ObservableType+PrimitiveSequence.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Traits/ObservableType+PrimitiveSequence.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/SerialDispatchQueueScheduler.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/SerialDispatchQueueScheduler.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+Extensions.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/TestImplementations/Observable+Extensions.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+PrimitiveSequenceTest.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+PrimitiveSequenceTest.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+ShareReplayScopeTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+ShareReplayScopeTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+WithLatestFromTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+WithLatestFromTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/ObservableType+SubscriptionTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/ObservableType+SubscriptionTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/PrimitiveSequenceTest+zip+arity.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/PrimitiveSequenceTest+zip+arity.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/TestVirtualScheduler.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/TestImplementations/TestVirtualScheduler.swift
--------------------------------------------------------------------------------
/Sources/RxBlocking/ObservableConvertibleType+Blocking.swift:
--------------------------------------------------------------------------------
1 | ../../RxBlocking/ObservableConvertibleType+Blocking.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxCocoaObjCRuntimeError+Extensions.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Common/RxCocoaObjCRuntimeError+Extensions.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxCollectionViewDataSourceProxy.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Proxies/RxCollectionViewDataSourceProxy.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxCollectionViewDataSourceType.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Protocols/RxCollectionViewDataSourceType.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxSearchControllerDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxTabBarControllerDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Proxies/RxTabBarControllerDelegateProxy.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/ConcurrentDispatchQueueScheduler.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/DispatchQueueConfiguration.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/Internal/DispatchQueueConfiguration.swift
--------------------------------------------------------------------------------
/Sources/RxSwift/HistoricalSchedulerTimeConverter.swift:
--------------------------------------------------------------------------------
1 | ../../RxSwift/Schedulers/HistoricalSchedulerTimeConverter.swift
--------------------------------------------------------------------------------
/Sources/RxTest/TestSchedulerVirtualTimeConverter.swift:
--------------------------------------------------------------------------------
1 | ../../RxTest/Schedulers/TestSchedulerVirtualTimeConverter.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+DelaySubscriptionTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+DelaySubscriptionTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable.Extensions.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/TestImplementations/Mocks/Observable.Extensions.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/PrimitiveMockObserver.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/TestImplementations/Mocks/PrimitiveMockObserver.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/ObservableConvertibleType+Driver.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/Driver/ObservableConvertibleType+Driver.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/ObservableConvertibleType+Signal.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/Signal/ObservableConvertibleType+Signal.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/SchedulerType+SharedSequence.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/SharedSequence/SchedulerType+SharedSequence.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+CombineLatestTests+arity.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+CombineLatestTests+arity.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/Observable+DistinctUntilChangedTests.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/Observable+DistinctUntilChangedTests.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/PrimitiveHotObservable.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/TestImplementations/Mocks/PrimitiveHotObservable.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxNavigationControllerDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/Proxies/RxNavigationControllerDelegateProxy.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxTableViewReactiveArrayDataSource.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/DataSources/RxTableViewReactiveArrayDataSource.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/SharedSequence+Operators+arity.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/SharedSequence/SharedSequence+Operators+arity.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/TestConnectableObservable.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/TestImplementations/Mocks/TestConnectableObservable.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/RxCollectionViewReactiveArrayDataSource.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/iOS/DataSources/RxCollectionViewReactiveArrayDataSource.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/MainThreadPrimitiveHotObservable.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/TestImplementations/Mocks/MainThreadPrimitiveHotObservable.swift
--------------------------------------------------------------------------------
/Sources/RxCocoa/ObservableConvertibleType+SharedSequence.swift:
--------------------------------------------------------------------------------
1 | ../../RxCocoa/Traits/SharedSequence/ObservableConvertibleType+SharedSequence.swift
--------------------------------------------------------------------------------
/Sources/AllTestz/BackgroundThreadPrimitiveHotObservable.swift:
--------------------------------------------------------------------------------
1 | ../../Tests/RxSwiftTests/TestImplementations/Mocks/BackgroundThreadPrimitiveHotObservable.swift
--------------------------------------------------------------------------------
/Documentation/Subjects.md:
--------------------------------------------------------------------------------
1 | Subjects
2 | ========
3 |
4 | All of behave exactly the same like described [here](http://reactivex.io/documentation/subject.html)
5 |
--------------------------------------------------------------------------------
/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-40.png
--------------------------------------------------------------------------------
/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-76.png
--------------------------------------------------------------------------------
/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Rx_Logo_M.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Rx_Logo_M.png
--------------------------------------------------------------------------------
/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-40@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-40@2x-1.png
--------------------------------------------------------------------------------
/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png
--------------------------------------------------------------------------------
/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-60@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-60@2x-1.png
--------------------------------------------------------------------------------
/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png
--------------------------------------------------------------------------------
/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png
--------------------------------------------------------------------------------
/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png
--------------------------------------------------------------------------------
/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-Small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-Small.png
--------------------------------------------------------------------------------
/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Rx_Logo-iPad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Rx_Logo-iPad.png
--------------------------------------------------------------------------------
/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-Small@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-Small@3x.png
--------------------------------------------------------------------------------
/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/RxExample/RxExample/Images.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png
--------------------------------------------------------------------------------
/scripts/validate-markdown.sh:
--------------------------------------------------------------------------------
1 | ROOT=`pwd`
2 | pushd `npm root -g`
3 | remark -u remark-slug -u remark-validate-links "${ROOT}/*.md"
4 | remark -u remark-slug -u remark-validate-links "${ROOT}/**/*.md"
5 | popd
6 |
--------------------------------------------------------------------------------
/Rx.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Rx.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/RxCocoa/Runtime/_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 "include/_RX.h"
10 |
11 |
--------------------------------------------------------------------------------
/RxExample/RxExample/Images.xcassets/ReactiveExtensionsLogo.imageset/ReactiveExtensionsLogo-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/RxExample/RxExample/Images.xcassets/ReactiveExtensionsLogo.imageset/ReactiveExtensionsLogo-2.png
--------------------------------------------------------------------------------
/RxExample/RxExample/Images.xcassets/ReactiveExtensionsLogo.imageset/ReactiveExtensionsLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/totocaster/RxSwift/master/RxExample/RxExample/Images.xcassets/ReactiveExtensionsLogo.imageset/ReactiveExtensionsLogo.png
--------------------------------------------------------------------------------
/RxExample/RxExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Documentation/Playgrounds.md:
--------------------------------------------------------------------------------
1 | ## Playgrounds
2 |
3 | To use playgrounds:
4 |
5 | * Open `Rx.xcworkspace`
6 | * Build the `RxSwift-macOS` scheme
7 | * Open `Rx` playground in the `Rx.xcworkspace` tree view.
8 | * Choose `View > Debug Area > Show Debug Area`
9 |
--------------------------------------------------------------------------------
/RxExample/RxExample/RxExample.xcdatamodeld/.xccurrentversion:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Preprocessor/Preprocessor.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/RxTest/RxTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RxTests.swift
3 | // RxTest
4 | //
5 | // Created by Krunoslav Zaher on 12/19/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Virtual time type.
10 | public typealias TestTime = Int
11 |
12 |
--------------------------------------------------------------------------------
/Tests/RxCocoaTests/RxTest-iOS-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // RxTest-iOS-Bridging-Header.h
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 11/25/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #import "RXObjCRuntime+Testing.h"
10 |
--------------------------------------------------------------------------------
/Tests/RxCocoaTests/RxTest-macOS-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // RxTest-macOS-Bridging-Header.h
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 11/25/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #import "RXObjCRuntime+Testing.h"
10 |
--------------------------------------------------------------------------------
/Tests/RxCocoaTests/RxTest-tvOS-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // RxTest-tvOS-Bridging-Header.h
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 11/25/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #import "RXObjCRuntime+Testing.h"
10 |
--------------------------------------------------------------------------------
/RxExample/RxExample/Result.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Result.swift
3 | // RxExample
4 | //
5 | // Created by Krunoslav Zaher on 3/18/17.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | enum Result {
10 | case success(T)
11 | case failure(E)
12 | }
13 |
--------------------------------------------------------------------------------
/Documentation/ExampleApp.md:
--------------------------------------------------------------------------------
1 |
2 | ## RxExamples
3 |
4 | To run the example app:
5 |
6 | * Open `Rx.xcworkspace`
7 | * Choose one of example schemes (RxExample-iOS, RxExample-OSX) and hit `Run`.
8 |
9 | You can also run the example app using CocoaPods.
10 |
11 | ```
12 | pod try RxSwift
13 | ```
14 |
--------------------------------------------------------------------------------
/RxSwift/Disposable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Disposable.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 2/8/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Respresents a disposable resource.
10 | public protocol Disposable {
11 | /// Dispose resource.
12 | func dispose()
13 | }
14 |
--------------------------------------------------------------------------------
/Tests/RxSwiftTests/TestImplementations/Mocks/Observable.Extensions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Observable.Extensions.swift
3 | // Tests
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 | }
14 |
--------------------------------------------------------------------------------
/RxSwift/Schedulers/Internal/ScheduledItemType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ScheduledItemType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 11/7/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | protocol ScheduledItemType
10 | : Cancelable
11 | , InvocableType {
12 | func invoke()
13 | }
14 |
--------------------------------------------------------------------------------
/scripts/profile-build-times.sh:
--------------------------------------------------------------------------------
1 | set -oe pipefail
2 | mkdir -p build
3 | xcodebuild -workspace Rx.xcworkspace -scheme RxSwift-iOS -configuration Debug -destination "name=iPhone 7" clean test \
4 | | tee build/output \
5 | | grep .[0-9]ms \
6 | | grep -v ^0.[0-9]ms \
7 | | sort -nr > build/build-times.txt \
8 | && cat build/build-times.txt | less
9 |
--------------------------------------------------------------------------------
/Rx.playground/SupportCode.remap:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "file": "/Users/mo/Documents/OpenSource/RxSwift/Rx.playground/Sources/SupportCode.swift",
4 | "offset": 276,
5 | "remove": 9,
6 | },
7 | {
8 | "file": "/Users/mo/Documents/OpenSource/RxSwift/Rx.playground/Sources/SupportCode.swift",
9 | "offset": 733,
10 | "text": "@escaping ",
11 | }
12 | ]
13 |
--------------------------------------------------------------------------------
/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 UIKit
10 |
11 | class NumberCell : UICollectionViewCell {
12 | @IBOutlet var value: UILabel?
13 | }
14 |
--------------------------------------------------------------------------------
/RxSwift/Disposables/Disposables.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Disposables.swift
3 | // RxSwift
4 | //
5 | // Created by Mohsen Ramezanpoor on 01/08/2016.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// A collection of utility methods for common disposable operations.
10 | public struct Disposables {
11 | private init() {}
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/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 UIKit
10 |
11 | class NumberSectionView : UICollectionReusableView {
12 | @IBOutlet weak var value: UILabel?
13 | }
14 |
--------------------------------------------------------------------------------
/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 |
10 | extension String {
11 | var URLEscaped: String {
12 | return self.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed) ?? ""
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/RxSwift/Cancelable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Cancelable.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 3/12/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Represents disposable resource with state tracking.
10 | public protocol Cancelable : Disposable {
11 | /// Was resource disposed.
12 | var isDisposed: Bool { get }
13 | }
14 |
--------------------------------------------------------------------------------
/RxExample/RxExample/iOS/UITableView+Extensions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UITableView+Extensions.swift
3 | // RxExample
4 | //
5 | // Created by Krunoslav Zaher on 8/20/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | extension UITableView {
12 | func hideEmptyCells() {
13 | self.tableFooterView = UIView(frame: .zero)
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/RxExample/RxDataSources/Differentiator/IdentifiableType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // IdentifiableType.swift
3 | // RxDataSources
4 | //
5 | // Created by Krunoslav Zaher on 1/6/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | public protocol IdentifiableType {
12 | associatedtype Identity: Hashable
13 |
14 | var identity : Identity { get }
15 | }
--------------------------------------------------------------------------------
/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SynchronizedUnsubscribeType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 10/25/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | protocol SynchronizedUnsubscribeType : class {
10 | associatedtype DisposeKey
11 |
12 | func synchronizedUnsubscribe(_ disposeKey: DisposeKey)
13 | }
14 |
--------------------------------------------------------------------------------
/RxSwift/Schedulers/Internal/InvocableType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // InvocableType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 11/7/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | protocol InvocableType {
10 | func invoke()
11 | }
12 |
13 | protocol InvocableWithValueType {
14 | associatedtype Value
15 |
16 | func invoke(_ value: Value)
17 | }
18 |
--------------------------------------------------------------------------------
/RxExample/RxExample/RxExample.xcdatamodeld/RxExample.xcdatamodel/contents:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/RxExample/RxDataSources/Differentiator/SectionModelType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SectionModelType.swift
3 | // RxDataSources
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 | associatedtype Item
13 |
14 | var items: [Item] { get }
15 |
16 | init(original: Self, items: [Item])
17 | }
--------------------------------------------------------------------------------
/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 | enum TestError: Error {
10 | case dummyError
11 | case dummyError1
12 | case dummyError2
13 | }
14 | let testError = TestError.dummyError
15 | let testError1 = TestError.dummyError1
16 | let testError2 = TestError.dummyError2
17 |
--------------------------------------------------------------------------------
/RxExample/RxDataSources/Differentiator/AnimatableSectionModelType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AnimatableSectionModelType.swift
3 | // RxDataSources
4 | //
5 | // Created by Krunoslav Zaher on 1/6/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | public protocol AnimatableSectionModelType
12 | : SectionModelType
13 | , IdentifiableType where Item: IdentifiableType, Item: Equatable {
14 | }
15 |
--------------------------------------------------------------------------------
/RxExample/RxDataSources/RxDataSources/String+IdentifiableType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // String+IdentifiableType.swift
3 | // RxDataSources
4 | //
5 | // Created by Krunoslav Zaher on 7/4/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | extension String : IdentifiableType {
12 | public typealias Identity = String
13 |
14 | public var identity: String {
15 | return self
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/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 RxSwift
10 | #if os(iOS)
11 | import UIKit
12 | #elseif os(macOS)
13 | import Cocoa
14 | #endif
15 |
16 | enum DownloadableImage{
17 | case content(image:Image)
18 | case offlinePlaceholder
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/RxSwift/Concurrency/LockOwnerType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LockOwnerType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 10/25/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | protocol LockOwnerType : class, Lock {
10 | var _lock: RecursiveLock { get }
11 | }
12 |
13 | extension LockOwnerType {
14 | func lock() {
15 | _lock.lock()
16 | }
17 |
18 | func unlock() {
19 | _lock.unlock()
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Tests/RxCocoaTests/SharedSequence+Extensions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SharedSequence+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 RxCocoa
10 |
11 | extension SharedSequence : Equatable {
12 |
13 | }
14 |
15 | public func == (lhs: SharedSequence, rhs: SharedSequence) -> Bool {
16 | return lhs.asObservable() === rhs.asObservable()
17 | }
18 |
--------------------------------------------------------------------------------
/RxExample/RxDataSources/Differentiator/AnimatableSectionModelType+ItemPath.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AnimatableSectionModelType+ItemPath.swift
3 | // RxDataSources
4 | //
5 | // Created by Krunoslav Zaher on 1/9/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | extension Array where Element: AnimatableSectionModelType {
12 | subscript(index: ItemPath) -> Element.Item {
13 | return self[index.sectionIndex].items[index.itemIndex]
14 | }
15 | }
--------------------------------------------------------------------------------
/RxSwift/Disposables/DisposeBase.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DisposeBase.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 4/4/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Base class for all disposables.
10 | public class DisposeBase {
11 | init() {
12 | #if TRACE_RESOURCES
13 | let _ = Resources.incrementTotal()
14 | #endif
15 | }
16 |
17 | deinit {
18 | #if TRACE_RESOURCES
19 | let _ = Resources.decrementTotal()
20 | #endif
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/RxExample/RxExample-iOSTests/RxTest.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RxTest.swift
3 | // RxExample
4 | //
5 | // Created by Krunoslav Zaher on 9/11/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import XCTest
10 |
11 | class RxTest : XCTestCase {
12 |
13 | }
14 |
15 | let testError = NSError(domain: "dummyError", code: -232, userInfo: nil)
16 | let testError1 = NSError(domain: "dummyError1", code: -233, userInfo: nil)
17 | let testError2 = NSError(domain: "dummyError2", code: -234, userInfo: nil)
18 |
--------------------------------------------------------------------------------
/RxSwift/Concurrency/SynchronizedDisposeType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SynchronizedDisposeType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 10/25/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | protocol SynchronizedDisposeType : class, Disposable, Lock {
10 | func _synchronized_dispose()
11 | }
12 |
13 | extension SynchronizedDisposeType {
14 | func synchronizedDispose() {
15 | lock(); defer { unlock() }
16 | _synchronized_dispose()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/RxSwift/Concurrency/SynchronizedOnType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SynchronizedOnType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 10/25/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | protocol SynchronizedOnType : class, ObserverType, Lock {
10 | func _synchronized_on(_ event: Event)
11 | }
12 |
13 | extension SynchronizedOnType {
14 | func synchronizedOn(_ event: Event) {
15 | lock(); defer { unlock() }
16 | _synchronized_on(event)
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/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 | #if os(iOS) || os(tvOS)
10 | import UIKit
11 |
12 | public typealias ItemMovedEvent = (sourceIndex: IndexPath, destinationIndex: IndexPath)
13 | public typealias WillDisplayCellEvent = (cell: UITableViewCell, indexPath: IndexPath)
14 | public typealias DidEndDisplayingCellEvent = (cell: UITableViewCell, indexPath: IndexPath)
15 | #endif
16 |
--------------------------------------------------------------------------------
/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[];
--------------------------------------------------------------------------------
/Tests/RxSwiftTests/TestImplementations/EquatableArray.swift:
--------------------------------------------------------------------------------
1 | //
2 | // EquatableArray.swift
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 10/15/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | struct EquatableArray : Equatable {
10 | let elements: [Element]
11 | init(_ elements: [Element]) {
12 | self.elements = elements
13 | }
14 | }
15 |
16 | func ==(lhs: EquatableArray, rhs: EquatableArray) -> Bool {
17 | return lhs.elements == rhs.elements
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/RxCocoa/macOS/NSImageView+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NSImageView+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 | #if os(macOS)
10 |
11 | import RxSwift
12 | import Cocoa
13 |
14 | extension Reactive where Base: NSImageView {
15 |
16 | /// Bindable sink for `image` property.
17 | public var image: Binder {
18 | return Binder(base) { imageView, image in
19 | imageView.image = image
20 | }
21 | }
22 | }
23 |
24 | #endif
25 |
--------------------------------------------------------------------------------
/RxExample/RxDataSources/RxDataSources/FloatingPointType+IdentifiableType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // FloatingPointType+IdentifiableType.swift
3 | // RxDataSources
4 | //
5 | // Created by Krunoslav Zaher on 7/4/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | extension FloatingPoint {
12 | typealias identity = Self
13 |
14 | public var identity: Self {
15 | return self
16 | }
17 | }
18 |
19 | extension Float : IdentifiableType {
20 |
21 | }
22 |
23 | extension Double : IdentifiableType {
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/RxCocoa/iOS/UIImageView+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIImageView+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 4/1/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import RxSwift
12 | import UIKit
13 |
14 | extension Reactive where Base: UIImageView {
15 |
16 | /// Bindable sink for `image` property.
17 | public var image: Binder {
18 | return Binder(base) { imageView, image in
19 | imageView.image = image
20 | }
21 | }
22 | }
23 |
24 | #endif
25 |
--------------------------------------------------------------------------------
/RxCocoa/Runtime/include/RxCocoaRuntime.h:
--------------------------------------------------------------------------------
1 | //
2 | // RxCocoaRuntime.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[];
20 |
--------------------------------------------------------------------------------
/RxExample/RxExample/Application+Extensions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Application+Extensions.swift
3 | // RxExample
4 | //
5 | // Created by Krunoslav Zaher on 8/20/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS)
10 | import UIKit
11 | typealias OSApplication = UIApplication
12 | #elseif os(macOS)
13 | import Cocoa
14 | typealias OSApplication = NSApplication
15 | #endif
16 |
17 | extension OSApplication {
18 | static var isInUITest: Bool {
19 | return ProcessInfo.processInfo.environment["isUITest"] != nil;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift:
--------------------------------------------------------------------------------
1 | //
2 | // InvocableScheduledItem.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 11/7/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | struct InvocableScheduledItem : InvocableType {
10 |
11 | let _invocable: I
12 | let _state: I.Value
13 |
14 | init(invocable: I, state: I.Value) {
15 | _invocable = invocable
16 | _state = state
17 | }
18 |
19 | func invoke() {
20 | _invocable.invoke(_state)
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Sources/RxCocoaRuntime/include/RxCocoaRuntime.h:
--------------------------------------------------------------------------------
1 | //
2 | // RxCocoaRuntime.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[];
20 |
--------------------------------------------------------------------------------
/Tests/RxSwiftTests/TestImplementations/Observable+Extensions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Observable+Extensions.swift
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 6/4/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 | import RxTest
11 |
12 | public func == (lhs: Observable, rhs: Observable) -> Bool {
13 | return lhs === rhs
14 | }
15 |
16 | extension TestableObservable : Equatable {
17 |
18 | }
19 |
20 | public func == (lhs: TestableObservable, rhs: TestableObservable) -> Bool {
21 | return lhs === rhs
22 | }
23 |
24 |
--------------------------------------------------------------------------------
/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 = radius
15 | self.layer.masksToBounds = true
16 | }
17 |
18 | func makeRoundedCorners() {
19 | self.makeRoundedCorners(self.frame.size.width / 2)
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/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 | #if os(iOS)
10 | import UIKit
11 | #endif
12 |
13 | extension Image {
14 | func forceLazyImageDecompression() -> Image {
15 | #if os(iOS)
16 | UIGraphicsBeginImageContext(CGSize(width: 1, height: 1))
17 | self.draw(at: CGPoint.zero)
18 | UIGraphicsEndImageContext()
19 | #endif
20 | return self
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/RxSwift/Disposables/SubscriptionDisposable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SubscriptionDisposable.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 10/25/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | struct SubscriptionDisposable : Disposable {
10 | private let _key: T.DisposeKey
11 | private weak var _owner: T?
12 |
13 | init(owner: T, key: T.DisposeKey) {
14 | _owner = owner
15 | _key = key
16 | }
17 |
18 | func dispose() {
19 | _owner?.synchronizedUnsubscribe(_key)
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/RxCocoa/Traits/Signal/PublishRelay+Signal.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PublishRelay+Signal.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 12/28/15.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 |
11 | extension PublishRelay {
12 | /// Converts `PublishRelay` to `Signal`.
13 | ///
14 | /// - returns: Observable sequence.
15 | public func asSignal() -> Signal {
16 | let source = self.asObservable()
17 | .observeOn(SignalSharingStrategy.scheduler)
18 | return SharedSequence(source)
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/RxCocoa/Traits/Driver/BehaviorRelay+Driver.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BehaviorRelay+Driver.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 10/7/17.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 |
11 | extension BehaviorRelay {
12 | /// Converts `BehaviorRelay` to `Driver`.
13 | ///
14 | /// - returns: Observable sequence.
15 | public func asDriver() -> Driver {
16 | let source = self.asObservable()
17 | .observeOn(DriverSharingStrategy.scheduler)
18 | return SharedSequence(source)
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/RxCocoa/iOS/UIProgressView+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIProgressView+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Samuel Bae on 2/27/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import RxSwift
12 | import UIKit
13 |
14 | extension Reactive where Base: UIProgressView {
15 |
16 | /// Bindable sink for `progress` property
17 | public var progress: Binder {
18 | return Binder(self.base) { progressView, progress in
19 | progressView.progress = progress
20 | }
21 | }
22 |
23 | }
24 |
25 | #endif
26 |
--------------------------------------------------------------------------------
/RxExample/Extensions/RxImagePickerDelegateProxy.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RxImagePickerDelegateProxy.swift
3 | // RxExample
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 RxSwift
12 | import RxCocoa
13 | import UIKit
14 |
15 | open class RxImagePickerDelegateProxy
16 | : RxNavigationControllerDelegateProxy, UIImagePickerControllerDelegate {
17 |
18 | public init(imagePicker: UIImagePickerController) {
19 | super.init(navigationController: imagePicker)
20 | }
21 |
22 | }
23 |
24 | #endif
25 |
--------------------------------------------------------------------------------
/RxExample/RxDataSources/Differentiator/Optional+Extensions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Optional+Extensions.swift
3 | // RxDataSources
4 | //
5 | // Created by Krunoslav Zaher on 1/8/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | extension Optional {
12 | func unwrap() throws -> Wrapped {
13 | if let unwrapped = self {
14 | return unwrapped
15 | }
16 | else {
17 | debugFatalError("Error during unwrapping optional")
18 | throw DifferentiatorError.unwrappingOptional
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/RxSwift/ObservableConvertibleType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ObservableConvertibleType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 9/17/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Type that can be converted to observable sequence (`Observable`).
10 | public protocol ObservableConvertibleType {
11 | /// Type of elements in sequence.
12 | associatedtype E
13 |
14 | /// Converts `self` to `Observable` sequence.
15 | ///
16 | /// - returns: Observable sequence that represents `self`.
17 | func asObservable() -> Observable
18 | }
19 |
--------------------------------------------------------------------------------
/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 RxTest
10 | import RxSwift
11 |
12 | func next(_ value: T) -> Recorded> {
13 | return Recorded(time: 0, value: .next(value))
14 | }
15 |
16 | func completed() -> Recorded> {
17 | return Recorded(time: 0, value: .completed)
18 | }
19 |
20 | func error(_ error: Swift.Error) -> Recorded> {
21 | return Recorded(time: 0, value: .error(error))
22 | }
23 |
--------------------------------------------------------------------------------
/Platform/DispatchQueue+Extensions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DispatchQueue+Extensions.swift
3 | // Platform
4 | //
5 | // Created by Krunoslav Zaher on 10/22/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import Dispatch
10 |
11 | extension DispatchQueue {
12 | private static var token: DispatchSpecificKey<()> = {
13 | let key = DispatchSpecificKey<()>()
14 | DispatchQueue.main.setSpecific(key: key, value: ())
15 | return key
16 | }()
17 |
18 | static var isMain: Bool {
19 | return DispatchQueue.getSpecific(key: token) != nil
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/RxCocoa/iOS/UIAlertAction+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIAlertAction+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Andrew Breckenridge on 5/7/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UIAlertAction {
15 |
16 | /// Bindable sink for `enabled` property.
17 | public var isEnabled: Binder {
18 | return Binder(self.base) { alertAction, value in
19 | alertAction.isEnabled = value
20 | }
21 | }
22 |
23 | }
24 |
25 | #endif
26 |
--------------------------------------------------------------------------------
/RxExample/RxDataSources/RxDataSources/Deprecated.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Deprecated.swift
3 | // RxDataSources
4 | //
5 | // Created by Krunoslav Zaher on 10/8/17.
6 | // Copyright © 2017 kzaher. All rights reserved.
7 | //
8 |
9 | extension CollectionViewSectionedDataSource {
10 | @available(*, deprecated, renamed: "configureSupplementaryView")
11 | public var supplementaryViewFactory: ConfigureSupplementaryView {
12 | get {
13 | return self.configureSupplementaryView
14 | }
15 | set {
16 | self.configureSupplementaryView = newValue
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/RxCocoa/iOS/UINavigationItem+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationItem+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by kumapo on 2016/05/09.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UINavigationItem {
15 |
16 | /// Bindable sink for `title` property.
17 | public var title: Binder {
18 | return Binder(self.base) { navigationItem, text in
19 | navigationItem.title = text
20 | }
21 | }
22 |
23 | }
24 |
25 | #endif
26 |
--------------------------------------------------------------------------------
/RxCocoa/iOS/UITabBarItem+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UITabBarItem+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Mateusz Derks on 04/03/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UITabBarItem {
15 |
16 | /// Bindable sink for `badgeValue` property.
17 | public var badgeValue: Binder {
18 | return Binder(self.base) { tabBarItem, badgeValue in
19 | tabBarItem.badgeValue = badgeValue
20 | }
21 | }
22 |
23 | }
24 |
25 | #endif
26 |
--------------------------------------------------------------------------------
/RxCocoa/iOS/UIViewController+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Kyle Fuller on 27/05/2016.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UIViewController {
15 |
16 | /// Bindable sink for `title`.
17 | public var title: Binder {
18 | return Binder(self.base) { viewController, title in
19 | viewController.title = title
20 | }
21 | }
22 |
23 | }
24 | #endif
25 |
--------------------------------------------------------------------------------
/Tests/RxCocoaTests/UIViewController+RxTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+RxTests.swift
3 | // Tests
4 | //
5 | // Created by Kyle Fuller on 30/05/2016.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 | import RxCocoa
11 | import UIKit
12 | import XCTest
13 |
14 | final class UIViewControllerTests : RxTest {
15 | }
16 |
17 | extension UIViewControllerTests {
18 | func testRxTitle() {
19 | let viewController = UIViewController()
20 |
21 | _ = Observable.just("title").bind(to: viewController.rx.title)
22 |
23 | XCTAssertEqual("title", viewController.title)
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/scripts/validate-playgrounds.sh:
--------------------------------------------------------------------------------
1 | . scripts/common.sh
2 |
3 | PLAYGROUND_CONFIGURATIONS=(Release)
4 |
5 | # make sure macOS builds
6 | for scheme in "RxSwift-macOS"
7 | do
8 | for configuration in ${PLAYGROUND_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 -target x86_64-apple-macosx10.10 -F ${BUILD_DIRECTORY}/Build/Products/${configuration} ${PAGES_PATH}
14 | done
15 | done
16 |
17 |
--------------------------------------------------------------------------------
/RxCocoa/Foundation/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 struct Foundation.URLRequest
10 |
11 | /// Simple logging settings for RxCocoa library.
12 | public struct Logging {
13 | public typealias LogURLRequest = (URLRequest) -> Bool
14 |
15 | /// Log URL requests to standard output in curl format.
16 | public static var URLRequests: LogURLRequest = { _ in
17 | #if DEBUG
18 | return true
19 | #else
20 | return false
21 | #endif
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Tests/RxSwiftTests/TestImplementations/Mocks/MockDisposable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MockDisposable.swift
3 | // Tests
4 | //
5 | // Created by Yury Korolev on 10/17/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 | import RxTest
11 |
12 | final class MockDisposable : Disposable
13 | {
14 | var ticks = [Int]()
15 | private let _scheduler: TestScheduler
16 |
17 | init(scheduler: TestScheduler) {
18 | _scheduler = scheduler
19 | ticks.append(_scheduler.clock)
20 | }
21 |
22 | func dispose() {
23 | ticks.append(_scheduler.clock)
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/RxExample/RxDataSources/RxDataSources/RxDataSources.h:
--------------------------------------------------------------------------------
1 | //
2 | // RxDataSources.h
3 | // RxDataSources
4 | //
5 | // Created by Krunoslav Zaher on 1/1/16.
6 | // Copyright © 2016 kzaher. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | //! Project version number for RxDataSources.
12 | FOUNDATION_EXPORT double RxDataSourcesVersionNumber;
13 |
14 | //! Project version string for RxDataSources.
15 | FOUNDATION_EXPORT const unsigned char RxDataSourcesVersionString[];
16 |
17 | // In this header, you should import all the public headers of your framework using statements like #import
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Documentation/NewFeatureRequestTemplate.md:
--------------------------------------------------------------------------------
1 | **Please copy the following template [here](https://github.com/ReactiveX/RxSwift/issues/new) and fill in the missing fields so we can help you as soon as possible.**
2 |
3 | ```
4 | *Short description of missing functionality*:
5 |
6 | E.g. I want this library to implement xxx operator.
7 |
8 | *Short code example of how you would like to use the API*:
9 |
10 | code goes here
11 |
12 | *The reason why I need this functionality*:
13 |
14 | E.g. I was trying to ....
15 |
16 | *Code I have right now*:
17 |
18 | code snippet that demonstrates how you've attempted to solve the problem
19 |
20 | ```
21 |
--------------------------------------------------------------------------------
/Tests/RxSwiftTests/TestImplementations/ElementIndexPair.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ElementIndexPair.swift
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 6/12/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | struct ElementIndexPair : Equatable {
10 | let element: E
11 | let index: I
12 |
13 | init(_ element: E, _ index: I) {
14 | self.element = element
15 | self.index = index
16 | }
17 | }
18 |
19 | func == (lhs: ElementIndexPair, rhs: ElementIndexPair) -> Bool {
20 | return lhs.element == rhs.element && lhs.index == rhs.index
21 | }
22 |
--------------------------------------------------------------------------------
/RxExample/RxDataSources/Differentiator/Differentiator.h:
--------------------------------------------------------------------------------
1 | //
2 | // Differentiator.h
3 | // Differentiator
4 | //
5 | // Created by muukii on 7/26/17.
6 | // Copyright © 2017 kzaher. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | //! Project version number for Differentiator.
12 | FOUNDATION_EXPORT double DifferentiatorVersionNumber;
13 |
14 | //! Project version string for Differentiator.
15 | FOUNDATION_EXPORT const unsigned char DifferentiatorVersionString[];
16 |
17 | // In this header, you should import all the public headers of your framework using statements like #import
18 |
19 |
20 |
--------------------------------------------------------------------------------
/RxExample/RxExample/macOS/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: Notification) {
15 | // Insert code here to initialize your application
16 | }
17 |
18 | func applicationWillTerminate(aNotification: Notification) {
19 | // Insert code here to tear down your application
20 | }
21 |
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/Tests/RxCocoaTests/NSSlider+RxTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NSSlider+RxTests.swift
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 11/26/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 | import RxCocoa
11 | import AppKit
12 | import XCTest
13 |
14 | final class NSSliderTests: RxTest {
15 |
16 | }
17 |
18 | extension NSSliderTests {
19 | func testSlider_ValueCompletesOnDealloc() {
20 | let createView: () -> NSSlider = { NSSlider(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) }
21 | ensurePropertyDeallocated(createView, 0.3) { (view: NSSlider) in view.rx.value }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Tests/RxSwiftTests/TestImplementations/Mocks/MainThreadPrimitiveHotObservable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MainThreadPrimitiveHotObservable.swift
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 10/14/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 | import XCTest
11 | import Dispatch
12 |
13 | final class MainThreadPrimitiveHotObservable : PrimitiveHotObservable {
14 | override func subscribe(_ observer: O) -> Disposable where O.E == E {
15 | XCTAssertTrue(DispatchQueue.isMain)
16 | return super.subscribe(observer)
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Tests/RxSwiftTests/TestImplementations/Mocks/PrimitiveMockObserver.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PrimitiveMockObserver.swift
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 6/4/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 | import RxTest
11 |
12 | final class PrimitiveMockObserver : ObserverType {
13 | typealias Element = ElementType
14 |
15 | var events: [Recorded>]
16 |
17 | init() {
18 | self.events = []
19 | }
20 |
21 | func on(_ event: Event) {
22 | events.append(Recorded(time: 0, value: event))
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Tests/RxSwiftTests/TestImplementations/Mocks/BackgroundThreadPrimitiveHotObservable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BackgroundThreadPrimitiveHotObservable.swift
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 10/19/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 | import XCTest
11 | import Dispatch
12 |
13 | final class BackgroundThreadPrimitiveHotObservable : PrimitiveHotObservable {
14 | override func subscribe(_ observer: O) -> Disposable where O.E == E {
15 | XCTAssertTrue(!DispatchQueue.isMain)
16 | return super.subscribe(observer)
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/RxSwift/Extensions/String+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // String+Rx.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 12/25/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | extension String {
10 | /// This is needed because on Linux Swift doesn't have `rangeOfString(..., options: .BackwardsSearch)`
11 | func lastIndexOf(_ character: Character) -> Index? {
12 | var index = endIndex
13 | while index > startIndex {
14 | index = self.index(before: index)
15 | if self[index] == character {
16 | return index
17 | }
18 | }
19 |
20 | return nil
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/RxCocoa/iOS/UIApplication+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIApplication+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Mads Bøgeskov on 18/01/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UIApplication {
15 |
16 | /// Bindable sink for `networkActivityIndicatorVisible`.
17 | public var isNetworkActivityIndicatorVisible: Binder {
18 | return Binder(self.base) { application, active in
19 | application.isNetworkActivityIndicatorVisible = active
20 | }
21 | }
22 | }
23 | #endif
24 |
25 |
--------------------------------------------------------------------------------
/RxBlocking/BlockingObservable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BlockingObservable.swift
3 | // RxBlocking
4 | //
5 | // Created by Krunoslav Zaher on 10/19/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 |
11 | /**
12 | `BlockingObservable` is a variety of `Observable` that provides blocking operators.
13 |
14 | It can be useful for testing and demo purposes, but is generally inappropriate for production applications.
15 |
16 | If you think you need to use a `BlockingObservable` this is usually a sign that you should rethink your
17 | design.
18 | */
19 | public struct BlockingObservable {
20 | let timeout: RxTimeInterval?
21 | let source: Observable
22 | }
23 |
--------------------------------------------------------------------------------
/scripts/update-jazzy-docs.sh:
--------------------------------------------------------------------------------
1 | . scripts/common.sh
2 |
3 | function updateDocs() {
4 | WORKSPACE=$1
5 | SCHEME=$2
6 | CONFIGURATION=$3
7 | SIMULATOR=$4
8 | MODULE=$5
9 |
10 | ensure_simulator_available "${SIMULATOR}"
11 | SIMULATOR_GUID=`simulator_ids "${SIMULATOR}"`
12 | DESTINATION='id='$SIMULATOR_GUID''
13 |
14 | set -x
15 | killall Simulator || true
16 | jazzy --config .jazzy.yml -m "${MODULE}" -x -workspace,"${WORKSPACE}",-scheme,"${SCHEME}",-configuration,"${CONFIGURATION}",-derivedDataPath,"${BUILD_DIRECTORY}",-destination,"$DESTINATION"
17 | set +x
18 | }
19 |
20 | ./scripts/update-jazzy-config.rb
21 |
22 | updateDocs Rx.xcworkspace "RxExample-iOS" "Release" $DEFAULT_IOS_SIMULATOR "RxSwift"
23 |
--------------------------------------------------------------------------------
/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 RxSwift
12 | import UIKit
13 |
14 | extension Reactive where Base: UISlider {
15 |
16 | /// Reactive wrapper for `value` property.
17 | public var value: ControlProperty {
18 | return base.rx.controlPropertyWithDefaultEvents(
19 | getter: { slider in
20 | slider.value
21 | }, setter: { slider, value in
22 | slider.value = value
23 | }
24 | )
25 | }
26 |
27 | }
28 |
29 | #endif
30 |
--------------------------------------------------------------------------------
/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 | // MARK: Equatable
10 |
11 | extension ValidationResult : Equatable {
12 |
13 | }
14 |
15 | func == (lhs: ValidationResult, rhs: ValidationResult) -> Bool {
16 | switch (lhs, rhs) {
17 | case (.ok, .ok):
18 | return true
19 | case (.empty, .empty):
20 | return true
21 | case (.validating, .validating):
22 | return true
23 | case (.failed, .failed):
24 | return true
25 | default:
26 | return false
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Tests/RxCocoaTests/UIGestureRecognizer+RxTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIGestureRecognizer+RxTests.swift
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 11/26/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxCocoa
10 | import RxSwift
11 | import RxTest
12 | import XCTest
13 |
14 | final class UIGestureRecognizerTests: RxTest {
15 |
16 | }
17 |
18 | extension UIGestureRecognizerTests {
19 | func testGestureRecognizer_DelegateEventCompletesOnDealloc() {
20 | let createView: () -> UIGestureRecognizer = { UIGestureRecognizer(target: nil, action: NSSelectorFromString("s")) }
21 | ensureEventDeallocated(createView) { (view: UIGestureRecognizer) in view.rx.event }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Tests/RxCocoaTests/UISlider+RxTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UISlider+RxTests.swift
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 11/26/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxCocoa
10 | import RxSwift
11 | import RxTest
12 | import XCTest
13 |
14 | #if os(iOS)
15 |
16 | final class UISliderTests: RxTest {
17 |
18 | }
19 |
20 | extension UISliderTests {
21 | func testSlider_DelegateEventCompletesOnDealloc() {
22 | let createView: () -> UISlider = { UISlider(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) }
23 | ensurePropertyDeallocated(createView, 0.5) { (view: UISlider) in view.rx.value }
24 | }
25 | }
26 |
27 | #endif
28 |
--------------------------------------------------------------------------------
/RxCocoa/macOS/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 | #if os(macOS)
10 |
11 | import RxSwift
12 | import Cocoa
13 |
14 | extension Reactive where Base: NSSlider {
15 |
16 | /// Reactive wrapper for `value` property.
17 | public var value: ControlProperty {
18 | return base.rx.controlProperty(
19 | getter: { control in
20 | return control.doubleValue
21 | },
22 | setter: { control, value in
23 | control.doubleValue = value
24 | }
25 | )
26 | }
27 |
28 | }
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/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 | /// Creates mutable reference wrapper for any type.
10 | final class RxMutableBox : CustomDebugStringConvertible {
11 | /// Wrapped value
12 | var value : T
13 |
14 | /// Creates reference wrapper for `value`.
15 | ///
16 | /// - parameter value: Value to wrap.
17 | init (_ value: T) {
18 | self.value = value
19 | }
20 | }
21 |
22 | extension RxMutableBox {
23 | /// - returns: Box description.
24 | var debugDescription: String {
25 | return "MutatingBox(\(self.value))"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/RxSwift/Subjects/SubjectType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SubjectType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 3/1/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Represents an object that is both an observable sequence as well as an observer.
10 | public protocol SubjectType : ObservableType {
11 | /// The type of the observer that represents this subject.
12 | ///
13 | /// Usually this type is type of subject itself, but it doesn't have to be.
14 | associatedtype SubjectObserverType : ObserverType
15 |
16 | /// Returns observer interface for subject.
17 | ///
18 | /// - returns: Observer interface for subject.
19 | func asObserver() -> SubjectObserverType
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/Platform/DataStructures/InfiniteSequence.swift:
--------------------------------------------------------------------------------
1 | //
2 | // InfiniteSequence.swift
3 | // Platform
4 | //
5 | // Created by Krunoslav Zaher on 6/13/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Sequence that repeats `repeatedValue` infinite number of times.
10 | struct InfiniteSequence : Sequence {
11 | typealias Element = E
12 | typealias Iterator = AnyIterator
13 |
14 | private let _repeatedValue: E
15 |
16 | init(repeatedValue: E) {
17 | _repeatedValue = repeatedValue
18 | }
19 |
20 | func makeIterator() -> Iterator {
21 | let repeatedValue = _repeatedValue
22 | return AnyIterator {
23 | return repeatedValue
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/RxCocoa/iOS/UIRefreshControl+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIRefreshControl+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Yosuke Ishikawa on 1/31/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UIRefreshControl {
15 | /// Bindable sink for `beginRefreshing()`, `endRefreshing()` methods.
16 | public var isRefreshing: Binder {
17 | return Binder(self.base) { refreshControl, refresh in
18 | if refresh {
19 | refreshControl.beginRefreshing()
20 | } else {
21 | refreshControl.endRefreshing()
22 | }
23 | }
24 | }
25 |
26 | }
27 |
28 | #endif
29 |
--------------------------------------------------------------------------------
/RxSwift/SwiftSupport/SwiftSupport.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SwiftSupport.swift
3 | // RxSwift
4 | //
5 | // Created by Volodymyr Gorbenko on 3/6/17.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | #if swift(>=4.0)
12 | typealias IntMax = Int64
13 | public typealias RxAbstractInteger = FixedWidthInteger
14 |
15 | extension SignedInteger {
16 | func toIntMax() -> IntMax {
17 | return IntMax(self)
18 | }
19 | }
20 | #else
21 | public typealias RxAbstractInteger = SignedInteger
22 |
23 | extension Array {
24 | public mutating func swapAt(_ i: Int, _ j: Int) {
25 | swap(&self[i], &self[j])
26 | }
27 | }
28 |
29 | #endif
30 |
--------------------------------------------------------------------------------
/RxCocoa/Common/SectionedViewDataSourceType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SectionedViewDataSourceType.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 1/10/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import struct Foundation.IndexPath
10 |
11 | /// Data source with access to underlying sectioned model.
12 | public protocol SectionedViewDataSourceType {
13 | /// Returns model at index path.
14 | ///
15 | /// In case data source doesn't contain any sections when this method is being called, `RxCocoaError.ItemsNotYetBound(object: self)` is thrown.
16 |
17 | /// - parameter indexPath: Model index path
18 | /// - returns: Model at index path.
19 | func model(at indexPath: IndexPath) throws -> Any
20 | }
21 |
--------------------------------------------------------------------------------
/scripts/update-jazzy-config.rb:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | require 'yaml'
4 |
5 | included_directories = %w(RxSwift RxCocoa)
6 |
7 | files_and_directories = included_directories.collect do |directory|
8 | Dir.glob("#{directory}/**/*")
9 | end.flatten.sort_by { |file| file }
10 |
11 | swift_files = files_and_directories.select { |file| file =~ /.*\.swift$/ }
12 |
13 | directory_and_name = swift_files.map do |file|
14 | { File.dirname(file) => File.basename(file, '.swift') }
15 | end
16 |
17 | categories = directory_and_name.flat_map(&:entries)
18 | .group_by(&:first)
19 | .map { |k,v| { 'name' => k, 'children' => v.map(&:last) } }
20 |
21 | config = { 'custom_categories' => categories }
22 |
23 | File.open('.jazzy.yml','w') do |h|
24 | h.write config.to_yaml
25 | end
26 |
--------------------------------------------------------------------------------
/Rx.playground/Pages/TryYourself.xcplaygroundpage/Contents.swift:
--------------------------------------------------------------------------------
1 | /*:
2 | > # IMPORTANT: To use **Rx.playground**:
3 | 1. Open **Rx.xcworkspace**.
4 | 1. Build the **RxSwift-macOS** scheme (**Product** → **Build**).
5 | 1. Open **Rx** playground in the **Project navigator**.
6 | 1. Show the Debug Area (**View** → **Debug Area** → **Show Debug Area**).
7 | */
8 | import RxSwift
9 | /*:
10 | # Try Yourself
11 |
12 | It's time to play with Rx 🎉
13 | */
14 | playgroundShouldContinueIndefinitely()
15 |
16 | example("Try yourself") {
17 | // let disposeBag = DisposeBag()
18 | _ = Observable.just("Hello, RxSwift!")
19 | .debug("Observable")
20 | .subscribe()
21 | // .disposed(by: disposeBag) // If dispose bag is used instead, sequence will terminate on scope exit
22 | }
23 |
--------------------------------------------------------------------------------
/RxCocoa/Traits/Driver/ControlEvent+Driver.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ControlEvent+Driver.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 9/19/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 |
11 | extension ControlEvent {
12 | /// Converts `ControlEvent` to `Driver` trait.
13 | ///
14 | /// `ControlEvent` already can't fail, so no special case needs to be handled.
15 | public func asDriver() -> Driver {
16 | return self.asDriver { (error) -> Driver in
17 | #if DEBUG
18 | rxFatalError("Somehow driver received error from a source that shouldn't fail.")
19 | #else
20 | return Driver.empty()
21 | #endif
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Tests/Benchmarks/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 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/RxCocoa/Traits/Signal/ControlEvent+Signal.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ControlEvent+Signal.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 11/1/17.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 |
11 | extension ControlEvent {
12 | /// Converts `ControlEvent` to `Signal` trait.
13 | ///
14 | /// `ControlEvent` already can't fail, so no special case needs to be handled.
15 | public func asSignal() -> Signal {
16 | return self.asSignal { (error) -> Signal in
17 | #if DEBUG
18 | rxFatalError("Somehow signal received error from a source that shouldn't fail.")
19 | #else
20 | return Signal.empty()
21 | #endif
22 | }
23 | }
24 | }
25 |
26 |
--------------------------------------------------------------------------------
/RxCocoa/Foundation/KVORepresentable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // KVORepresentable.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 11/14/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Type that is KVO representable (KVO mechanism can be used to observe it).
10 | public protocol KVORepresentable {
11 | /// Associated KVO type.
12 | associatedtype KVOType
13 |
14 | /// Constructs `Self` using KVO value.
15 | init?(KVOValue: KVOType)
16 | }
17 |
18 | extension KVORepresentable {
19 | /// Initializes `KVORepresentable` with optional value.
20 | init?(KVOValue: KVOType?) {
21 | guard let KVOValue = KVOValue else {
22 | return nil
23 | }
24 |
25 | self.init(KVOValue: KVOValue)
26 | }
27 | }
28 |
29 |
--------------------------------------------------------------------------------
/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 RxSwift
10 |
11 | extension ObservableConvertibleType {
12 | /// Converts an Observable into a `BlockingObservable` (an Observable with blocking operators).
13 | ///
14 | /// - parameter timeout: Maximal time interval BlockingObservable can block without throwing `RxError.timeout`.
15 | /// - returns: `BlockingObservable` version of `self`
16 | public func toBlocking(timeout: RxTimeInterval? = nil) -> BlockingObservable {
17 | return BlockingObservable(timeout: timeout, source: self.asObservable())
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/RxCocoa/Traits/Driver/ControlProperty+Driver.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ControlProperty+Driver.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 9/19/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 |
11 | extension ControlProperty {
12 | /// Converts `ControlProperty` to `Driver` trait.
13 | ///
14 | /// `ControlProperty` already can't fail, so no special case needs to be handled.
15 | public func asDriver() -> Driver {
16 | return self.asDriver { (error) -> Driver in
17 | #if DEBUG
18 | rxFatalError("Somehow driver received error from a source that shouldn't fail.")
19 | #else
20 | return Driver.empty()
21 | #endif
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/RxCocoa/iOS/UIActivityIndicatorView+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIActivityIndicatorView+Rx.swift
3 | // RxCocoa
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 |
11 | import UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UIActivityIndicatorView {
15 |
16 | /// Bindable sink for `startAnimating()`, `stopAnimating()` methods.
17 | public var isAnimating: Binder {
18 | return Binder(self.base) { activityIndicator, active in
19 | if active {
20 | activityIndicator.startAnimating()
21 | } else {
22 | activityIndicator.stopAnimating()
23 | }
24 | }
25 | }
26 |
27 | }
28 |
29 | #endif
30 |
--------------------------------------------------------------------------------
/RxExample/RxExample-iOSUITests/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 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/scripts/test-linux.sh:
--------------------------------------------------------------------------------
1 | set -e
2 |
3 | function cleanup {
4 | git checkout Package.swift
5 | }
6 |
7 | if [[ `uname` == "Darwin" ]]; then
8 | if [[ `git diff HEAD Package.swift | wc -l` > 0 ]]; then
9 | echo "Package.swift has uncommitted changes"
10 | exit -1
11 | fi
12 | trap cleanup EXIT
13 | echo "Running linux"
14 | eval $(docker-machine env default)
15 | docker exec -it rx4.0 bash -c "cd /projects/RxSwift; scripts/test-linux.sh"
16 | elif [[ `uname` == "Linux" ]]; then
17 | CONFIGURATIONS=(debug release)
18 |
19 | rm -rf .build || true
20 |
21 | ./scripts/all-tests.sh Unix
22 |
23 | git checkout Package.swift
24 |
25 | for configuration in ${CONFIGURATIONS[@]}
26 | do
27 | swift build -c ${configuration}
28 | done
29 | else
30 | echo "Unknown os (`uname`)"
31 | exit -1
32 | fi
33 |
--------------------------------------------------------------------------------
/RxExample/RxExample-macOSUITests/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 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/RxSwift/Disposables/NopDisposable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NopDisposable.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 2/15/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /// Represents a disposable that does nothing on disposal.
10 | ///
11 | /// Nop = No Operation
12 | fileprivate struct NopDisposable : Disposable {
13 |
14 | fileprivate static let noOp: Disposable = NopDisposable()
15 |
16 | fileprivate init() {
17 |
18 | }
19 |
20 | /// Does nothing.
21 | public func dispose() {
22 | }
23 | }
24 |
25 | extension Disposables {
26 | /**
27 | Creates a disposable that does nothing on disposal.
28 | */
29 | static public func create() -> Disposable {
30 | return NopDisposable.noOp
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/RxCocoa/iOS/UILabel+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UILabel+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 4/1/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import RxSwift
12 | import UIKit
13 |
14 | extension Reactive where Base: UILabel {
15 |
16 | /// Bindable sink for `text` property.
17 | public var text: Binder {
18 | return Binder(self.base) { label, text in
19 | label.text = text
20 | }
21 | }
22 |
23 | /// Bindable sink for `attributedText` property.
24 | public var attributedText: Binder {
25 | return Binder(self.base) { label, text in
26 | label.attributedText = text
27 | }
28 | }
29 |
30 | }
31 |
32 | #endif
33 |
--------------------------------------------------------------------------------
/Tests/RxSwiftTests/TestImplementations/Mocks/TestConnectableObservable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TestConnectableObservable.swift
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 4/19/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 |
11 | final class TestConnectableObservable : ConnectableObservableType where S.E == S.SubjectObserverType.E {
12 | typealias E = S.E
13 |
14 | let _o: ConnectableObservable
15 |
16 | init(o: Observable, s: S) {
17 | _o = o.multicast(s)
18 | }
19 |
20 | func connect() -> Disposable {
21 | return _o.connect()
22 | }
23 |
24 | func subscribe(_ observer: O) -> Disposable where O.E == E {
25 | return _o.subscribe(observer)
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/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 UIKit
12 | import RxSwift
13 |
14 | /// For more information take a look at `DelegateProxyType`.
15 | open class RxTableViewDelegateProxy
16 | : RxScrollViewDelegateProxy
17 | , UITableViewDelegate {
18 |
19 | /// Typed parent object.
20 | public weak private(set) var tableView: UITableView?
21 |
22 | /// - parameter tableView: Parent object for delegate proxy.
23 | public init(tableView: UITableView) {
24 | self.tableView = tableView
25 | super.init(scrollView: tableView)
26 | }
27 |
28 | }
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/RxCocoa/macOS/NSView+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NSView+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Krunoslav Zaher on 12/6/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(macOS)
10 |
11 | import Cocoa
12 | import RxSwift
13 |
14 | extension Reactive where Base: NSView {
15 | /// Bindable sink for `hidden` property.
16 | public var isHidden: Binder {
17 | return Binder(self.base) { view, value in
18 | view.isHidden = value
19 | }
20 | }
21 |
22 | /// Bindable sink for `alphaValue` property.
23 | public var alpha: Binder {
24 | return Binder(self.base) { view, value in
25 | view.alphaValue = value
26 | }
27 | }
28 | }
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/RxSwift/Schedulers/HistoricalScheduler.swift:
--------------------------------------------------------------------------------
1 | //
2 | // HistoricalScheduler.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 12/27/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import struct Foundation.Date
10 |
11 | /// Provides a virtual time scheduler that uses `Date` for absolute time and `NSTimeInterval` for relative time.
12 | public class HistoricalScheduler : VirtualTimeScheduler {
13 |
14 | /**
15 | Creates a new historical scheduler with initial clock value.
16 |
17 | - parameter initialClock: Initial value for virtual clock.
18 | */
19 | public init(initialClock: RxTime = Date(timeIntervalSince1970: 0)) {
20 | super.init(initialClock: initialClock, converter: HistoricalSchedulerTimeConverter())
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/RxCocoa/iOS/Protocols/RxPickerViewDataSourceType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RxPickerViewDataSourceType.swift
3 | // RxCocoa
4 | //
5 | // Created by Sergey Shulga on 05/07/2017.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS)
10 |
11 | import UIKit
12 | import RxSwift
13 |
14 | /// Marks data source as `UIPickerView` reactive data source enabling it to be used with one of the `bindTo` methods.
15 | public protocol RxPickerViewDataSourceType {
16 | /// Type of elements that can be bound to picker view.
17 | associatedtype Element
18 |
19 | /// New observable sequence event observed.
20 | ///
21 | /// - parameter pickerView: Bound picker view.
22 | /// - parameter observedEvent: Event
23 | func pickerView(_ pickerView: UIPickerView, observedEvent: Event)
24 | }
25 |
26 | #endif
27 |
--------------------------------------------------------------------------------
/RxSwift/ConnectableObservableType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ConnectableObservableType.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 3/1/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | /**
10 | Represents an observable sequence wrapper that can be connected and disconnected from its underlying observable sequence.
11 | */
12 | public protocol ConnectableObservableType : ObservableType {
13 | /**
14 | 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.
15 |
16 | - returns: Disposable used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence.
17 | */
18 | func connect() -> Disposable
19 | }
20 |
--------------------------------------------------------------------------------
/Rx.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/RxCocoa/iOS/UIPageControl+Rx.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIPageControl+Rx.swift
3 | // RxCocoa
4 | //
5 | // Created by Francesco Puntillo on 14/04/2016.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS) || os(tvOS)
10 |
11 | import RxSwift
12 | import UIKit
13 |
14 | extension Reactive where Base: UIPageControl {
15 |
16 | /// Bindable sink for `currentPage` property.
17 | public var currentPage: Binder {
18 | return Binder(self.base) { controller, page in
19 | controller.currentPage = page
20 | }
21 | }
22 |
23 | /// Bindable sink for `numberOfPages` property.
24 | public var numberOfPages: Binder {
25 | return Binder(self.base) { controller, page in
26 | controller.numberOfPages = page
27 | }
28 | }
29 |
30 | }
31 |
32 | #endif
33 |
--------------------------------------------------------------------------------
/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 BlockingObservable {
11 | public func toArray() throws -> [E] {}
12 | }
13 |
14 | extension BlockingObservable {
15 | public func first() throws -> E? {}
16 | }
17 |
18 | extension BlockingObservable {
19 | public func last() throws -> E? {}
20 | }
21 |
22 | extension BlockingObservable {
23 | public func single() throws -> E? {}
24 | public func single(_ predicate: @escaping (E) throws -> Bool) throws -> E? {}
25 | }
26 |
27 | extension BlockingObservable {
28 | public func materialize() -> MaterializedSequenceResult
29 | }
30 | ```
31 |
32 |
33 |
--------------------------------------------------------------------------------
/RxExample/RxDataSources/RxDataSources/DataSources.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DataSources.swift
3 | // RxDataSources
4 | //
5 | // Created by Krunoslav Zaher on 1/8/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | enum RxDataSourceError : Error {
12 | case preconditionFailed(message: String)
13 | }
14 |
15 | func rxPrecondition(_ condition: Bool, _ message: @autoclosure() -> String) throws -> () {
16 | if condition {
17 | return
18 | }
19 | rxDebugFatalError("Precondition failed")
20 |
21 | throw RxDataSourceError.preconditionFailed(message: message())
22 | }
23 |
24 | func rxDebugFatalError(_ error: Error) {
25 | rxDebugFatalError("\(error)")
26 | }
27 |
28 | func rxDebugFatalError(_ message: String) {
29 | #if DEBUG
30 | fatalError(message)
31 | #else
32 | print(message)
33 | #endif
34 | }
35 |
--------------------------------------------------------------------------------
/RxExample/RxExample/Examples/GitHubSearchRepositories/UINavigationController+Extensions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationController+Extensions.swift
3 | // RxExample
4 | //
5 | // Created by Krunoslav Zaher on 12/13/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import RxSwift
11 | import RxCocoa
12 |
13 | struct Colors {
14 | static let offlineColor = UIColor(red: 1.0, green: 0.6, blue: 0.6, alpha: 1.0)
15 | static let onlineColor = nil as UIColor?
16 | }
17 |
18 | extension Reactive where Base: UINavigationController {
19 | var isOffline: Binder {
20 | return Binder(base) { navigationController, isOffline in
21 | navigationController.navigationBar.barTintColor = isOffline
22 | ? Colors.offlineColor
23 | : Colors.onlineColor
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Platform/RecursiveLock.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RecursiveLock.swift
3 | // Platform
4 | //
5 | // Created by Krunoslav Zaher on 12/18/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import class Foundation.NSRecursiveLock
10 |
11 | #if TRACE_RESOURCES
12 | class RecursiveLock: NSRecursiveLock {
13 | override init() {
14 | _ = Resources.incrementTotal()
15 | super.init()
16 | }
17 |
18 | override func lock() {
19 | super.lock()
20 | _ = Resources.incrementTotal()
21 | }
22 |
23 | override func unlock() {
24 | super.unlock()
25 | _ = Resources.decrementTotal()
26 | }
27 |
28 | deinit {
29 | _ = Resources.decrementTotal()
30 | }
31 | }
32 | #else
33 | typealias RecursiveLock = NSRecursiveLock
34 | #endif
35 |
--------------------------------------------------------------------------------
/RxCocoa/Runtime/include/_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 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface _RXDelegateProxy : NSObject
14 |
15 | @property (nonatomic, weak, readonly) id _forwardToDelegate;
16 |
17 | -(void)_setForwardToDelegate:(id __nullable)forwardToDelegate retainDelegate:(BOOL)retainDelegate NS_SWIFT_NAME(_setForwardToDelegate(_:retainDelegate:)) ;
18 |
19 | -(BOOL)hasWiredImplementationForSelector:(SEL)selector;
20 | -(BOOL)voidDelegateMethodsContain:(SEL)selector;
21 |
22 | -(void)_sentMessage:(SEL)selector withArguments:(NSArray*)arguments;
23 | -(void)_methodInvoked:(SEL)selector withArguments:(NSArray*)arguments;
24 |
25 | @end
26 |
27 | NS_ASSUME_NONNULL_END
28 |
--------------------------------------------------------------------------------
/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 |
10 |
11 | // https://en.wikipedia.org/wiki/Random_number_generation
12 | class PseudoRandomGenerator {
13 | var m_w: UInt32 /* must not be zero, nor 0x464fffff */
14 | var m_z: UInt32 /* must not be zero, nor 0x9068ffff */
15 |
16 | init(_ m_w: UInt32, _ m_z: UInt32) {
17 | self.m_w = m_w
18 | self.m_z = m_z
19 | }
20 |
21 | func get_random() -> Int {
22 | m_z = 36969 &* (m_z & 65535) &+ (m_z >> 16);
23 | m_w = 18000 &* (m_w & 65535) &+ (m_w >> 16);
24 | let val = ((m_z << 16) &+ m_w)
25 | return Int(val % (1 << 30)) /* 32-bit result */
26 | }
27 | }
28 |
29 |
--------------------------------------------------------------------------------
/Tests/RxCocoaTests/UINavigationItem+RxTests.swift.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationItem+RxTests.swift.swift
3 | // Tests
4 | //
5 | // Created by kumapo on 2016/05/11.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 | import RxCocoa
11 | import UIKit
12 | import XCTest
13 |
14 | final class UINavigationItemTests : RxTest {
15 | }
16 |
17 | extension UINavigationItemTests {
18 | func testTitle_Text() {
19 | let subject = UINavigationItem()
20 | Observable.just("Editing").subscribe(subject.rx.title).dispose()
21 |
22 | XCTAssertTrue(subject.title == "Editing")
23 | }
24 |
25 | func testTitle_Empty() {
26 | let subject = UINavigationItem()
27 | Observable.just(nil).subscribe(subject.rx.title).dispose()
28 |
29 | XCTAssertTrue(subject.title == nil)
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/Tests/RxCocoaTests/UIAlertAction+RxTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIAlertAction+RxTests.swift
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 11/26/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxCocoa
10 | import RxSwift
11 | import RxTest
12 | import XCTest
13 |
14 | final class UIAlertActionTests: RxTest {
15 |
16 | }
17 |
18 | extension UIAlertActionTests {
19 | func testAlertAction_Enable() {
20 | let subject = UIAlertAction()
21 | Observable.just(false).subscribe(subject.rx.isEnabled).dispose()
22 |
23 | XCTAssertTrue(subject.isEnabled == false)
24 | }
25 |
26 | func testAlertAction_Disable() {
27 | let subject = UIAlertAction()
28 | Observable.just(true).subscribe(subject.rx.isEnabled).dispose()
29 |
30 | XCTAssertTrue(subject.isEnabled == true)
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Tests/RxSwiftTests/Observable+RepeatTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Observable+RepeatTests.swift
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 4/29/17.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import XCTest
10 | import RxSwift
11 | import RxTest
12 |
13 | class ObservableRepeatTest : RxTest {
14 | }
15 |
16 | extension ObservableRepeatTest {
17 | func testRepeat_Element() {
18 | let scheduler = TestScheduler(initialClock: 0)
19 |
20 | let res = scheduler.start(disposed: 207) {
21 | Observable.repeatElement(42, scheduler: scheduler)
22 | }
23 |
24 | XCTAssertEqual(res.events, [
25 | next(201, 42),
26 | next(202, 42),
27 | next(203, 42),
28 | next(204, 42),
29 | next(205, 42),
30 | next(206, 42)
31 | ])
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/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 UIKit
12 | import RxSwift
13 |
14 | /// Marks data source as `UITableView` reactive data source enabling it to be used with one of the `bindTo` methods.
15 | public protocol RxTableViewDataSourceType /*: UITableViewDataSource*/ {
16 |
17 | /// Type of elements that can be bound to table view.
18 | associatedtype Element
19 |
20 | /// New observable sequence event observed.
21 | ///
22 | /// - parameter tableView: Bound table view.
23 | /// - parameter observedEvent: Event
24 | func tableView(_ tableView: UITableView, observedEvent: Event) -> Void
25 | }
26 |
27 | #endif
28 |
--------------------------------------------------------------------------------
/RxExample/RxDataSources/Differentiator/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 | 3.0.0
19 | CFBundleVersion
20 | $(CURRENT_PROJECT_VERSION)
21 | NSPrincipalClass
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Sources/RxCocoaRuntime/include/_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 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface _RXDelegateProxy : NSObject
14 |
15 | @property (nonatomic, weak, readonly) id _forwardToDelegate;
16 |
17 | -(void)_setForwardToDelegate:(id __nullable)forwardToDelegate retainDelegate:(BOOL)retainDelegate NS_SWIFT_NAME(_setForwardToDelegate(_:retainDelegate:)) ;
18 |
19 | -(BOOL)hasWiredImplementationForSelector:(SEL)selector;
20 | -(BOOL)voidDelegateMethodsContain:(SEL)selector;
21 |
22 | -(void)_sentMessage:(SEL)selector withArguments:(NSArray*)arguments;
23 | -(void)_methodInvoked:(SEL)selector withArguments:(NSArray*)arguments;
24 |
25 | @end
26 |
27 | NS_ASSUME_NONNULL_END
28 |
--------------------------------------------------------------------------------
/RxSwift/Observers/AnonymousObserver.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AnonymousObserver.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 2/8/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | final class AnonymousObserver : ObserverBase {
10 | typealias Element = ElementType
11 |
12 | typealias EventHandler = (Event) -> Void
13 |
14 | private let _eventHandler : EventHandler
15 |
16 | init(_ eventHandler: @escaping EventHandler) {
17 | #if TRACE_RESOURCES
18 | let _ = Resources.incrementTotal()
19 | #endif
20 | _eventHandler = eventHandler
21 | }
22 |
23 | override func onCore(_ event: Event) {
24 | return _eventHandler(event)
25 | }
26 |
27 | #if TRACE_RESOURCES
28 | deinit {
29 | let _ = Resources.decrementTotal()
30 | }
31 | #endif
32 | }
33 |
--------------------------------------------------------------------------------
/RxSwift/Schedulers/Internal/ScheduledItem.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ScheduledItem.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 9/2/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | struct ScheduledItem
10 | : ScheduledItemType
11 | , InvocableType {
12 | typealias Action = (T) -> Disposable
13 |
14 | private let _action: Action
15 | private let _state: T
16 |
17 | private let _disposable = SingleAssignmentDisposable()
18 |
19 | var isDisposed: Bool {
20 | return _disposable.isDisposed
21 | }
22 |
23 | init(action: @escaping Action, state: T) {
24 | _action = action
25 | _state = state
26 | }
27 |
28 | func invoke() {
29 | _disposable.setDisposable(_action(_state))
30 | }
31 |
32 | func dispose() {
33 | _disposable.dispose()
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/RxExample/RxDataSources/Differentiator/Utilities.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Utilities.swift
3 | // RxDataSources
4 | //
5 | // Created by muukii on 8/2/17.
6 | // Copyright © 2017 kzaher. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | enum DifferentiatorError : Error {
12 | case unwrappingOptional
13 | case preconditionFailed(message: String)
14 | }
15 |
16 | func precondition(_ condition: Bool, _ message: @autoclosure() -> String) throws -> () {
17 | if condition {
18 | return
19 | }
20 | debugFatalError("Precondition failed")
21 |
22 | throw DifferentiatorError.preconditionFailed(message: message())
23 | }
24 |
25 | func debugFatalError(_ error: Error) {
26 | debugFatalError("\(error)")
27 | }
28 |
29 | func debugFatalError(_ message: String) {
30 | #if DEBUG
31 | fatalError(message)
32 | #else
33 | print(message)
34 | #endif
35 | }
36 |
--------------------------------------------------------------------------------
/RxExample/RxExample/Lenses.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Lenses.swift
3 | // RxExample
4 | //
5 | // Created by Krunoslav Zaher on 5/20/17.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | // These are kind of "Swift" lenses. We don't need to generate a lot of code this way and can just use Swift `var`.
10 | protocol Mutable {
11 | }
12 |
13 | extension Mutable {
14 | func mutateOne(transform: (inout Self) -> T) -> Self {
15 | var newSelf = self
16 | _ = transform(&newSelf)
17 | return newSelf
18 | }
19 |
20 | func mutate(transform: (inout Self) -> ()) -> Self {
21 | var newSelf = self
22 | transform(&newSelf)
23 | return newSelf
24 | }
25 |
26 | func mutate(transform: (inout Self) throws -> ()) rethrows -> Self {
27 | var newSelf = self
28 | try transform(&newSelf)
29 | return newSelf
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/RxSwift/Observers/ObserverBase.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ObserverBase.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 2/15/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | class ObserverBase : Disposable, ObserverType {
10 | typealias E = ElementType
11 |
12 | private var _isStopped: AtomicInt = 0
13 |
14 | func on(_ event: Event) {
15 | switch event {
16 | case .next:
17 | if _isStopped == 0 {
18 | onCore(event)
19 | }
20 | case .error, .completed:
21 | if AtomicCompareAndSwap(0, 1, &_isStopped) {
22 | onCore(event)
23 | }
24 | }
25 | }
26 |
27 | func onCore(_ event: Event) {
28 | rxAbstractMethod()
29 | }
30 |
31 | func dispose() {
32 | _ = AtomicCompareAndSwap(0, 1, &_isStopped)
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/RxSwift/Observables/Never.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Never.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 8/30/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | extension ObservableType {
10 |
11 | /**
12 | Returns a non-terminating observable sequence, which can be used to denote an infinite duration.
13 |
14 | - seealso: [never operator on reactivex.io](http://reactivex.io/documentation/operators/empty-never-throw.html)
15 |
16 | - returns: An observable sequence whose observers will never get called.
17 | */
18 | public static func never() -> Observable {
19 | return NeverProducer()
20 | }
21 | }
22 |
23 | final fileprivate class NeverProducer : Producer {
24 | override func subscribe(_ observer: O) -> Disposable where O.E == Element {
25 | return Disposables.create()
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/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 | 4.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(CURRENT_PROJECT_VERSION)
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/RxExample/RxDataSources/Differentiator/ItemPath.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ItemPath.swift
3 | // RxDataSources
4 | //
5 | // Created by Krunoslav Zaher on 1/9/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | public struct ItemPath {
12 | public let sectionIndex: Int
13 | public let itemIndex: Int
14 |
15 | public init(sectionIndex: Int, itemIndex: Int) {
16 | self.sectionIndex = sectionIndex
17 | self.itemIndex = itemIndex
18 | }
19 | }
20 |
21 | extension ItemPath : Equatable {
22 |
23 | }
24 |
25 | public func == (lhs: ItemPath, rhs: ItemPath) -> Bool {
26 | return lhs.sectionIndex == rhs.sectionIndex && lhs.itemIndex == rhs.itemIndex
27 | }
28 |
29 | extension ItemPath: Hashable {
30 |
31 | public var hashValue: Int {
32 | return sectionIndex.byteSwapped.hashValue ^ itemIndex.hashValue
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/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 RxSwift
10 | import RxTest
11 |
12 | import func Foundation.arc4random
13 |
14 | func genericFatal(_ message: String) -> T {
15 | if -1 == Int(arc4random() % 4) {
16 | print("This is hack to remove warning")
17 | }
18 | _ = fatalError(message)
19 | }
20 |
21 | // MARK: Generic support code
22 |
23 | // MARK: Not implemented stubs
24 |
25 | func notImplemented() -> (T1) -> Observable {
26 | return { _ -> Observable in
27 | return genericFatal("Not implemented")
28 | }
29 | }
30 |
31 | func notImplementedSync() -> (T1) -> Void {
32 | return { _ in
33 | genericFatal("Not implemented")
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/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 | struct User: Equatable, CustomDebugStringConvertible {
10 |
11 | var firstName: String
12 | var lastName: String
13 | var imageURL: String
14 |
15 | init(firstName: String, lastName: String, imageURL: String) {
16 | self.firstName = firstName
17 | self.lastName = lastName
18 | self.imageURL = imageURL
19 | }
20 | }
21 |
22 | extension User {
23 | var debugDescription: String {
24 | return firstName + " " + lastName
25 | }
26 | }
27 |
28 | func ==(lhs: User, rhs:User) -> Bool {
29 | return lhs.firstName == rhs.firstName &&
30 | lhs.lastName == rhs.lastName &&
31 | lhs.imageURL == rhs.imageURL
32 | }
33 |
--------------------------------------------------------------------------------
/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 | 4.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(CURRENT_PROJECT_VERSION)
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/RxTest/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 | 4.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(CURRENT_PROJECT_VERSION)
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/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 | 4.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(CURRENT_PROJECT_VERSION)
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Tests/RxSwiftTests/AssumptionsTest.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AssumptionsTest.swift
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 2/14/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import XCTest
10 | import RxSwift
11 | import class Foundation.NSNull
12 |
13 | final class AssumptionsTest : RxTest {
14 |
15 | func testResourceLeaksDetectionIsTurnedOn() {
16 | #if TRACE_RESOURCES
17 | let startResourceCount = Resources.total
18 |
19 | var observable: Observable! = Observable.just(1)
20 |
21 | XCTAssertTrue(observable != nil)
22 | XCTAssertEqual(Resources.total, (startResourceCount + 1) as Int32)
23 |
24 | observable = nil
25 |
26 | XCTAssertEqual(Resources.total, startResourceCount)
27 | #elseif RELEASE
28 |
29 | #else
30 | XCTAssert(false, "Can't run unit tests in without tracing")
31 | #endif
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Tests/RxCocoaTests/UIRefreshControl+RxTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIRefreshControl+RxTests.swift
3 | // Tests
4 | //
5 | // Created by Yosuke Ishikawa on 1/31/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | #if os(iOS)
10 |
11 | import RxSwift
12 | import RxCocoa
13 | import UIKit
14 | import XCTest
15 |
16 | final class UIRefreshControlTests : RxTest {
17 | }
18 |
19 | extension UIRefreshControlTests {
20 | func testRefreshing_True() {
21 | let subject = UIRefreshControl()
22 | Observable.just(true).subscribe(subject.rx.isRefreshing).dispose()
23 |
24 | XCTAssertTrue(subject.isRefreshing == true)
25 | }
26 |
27 | func testRefreshing_False() {
28 | let subject = UIRefreshControl()
29 | Observable.just(false).subscribe(subject.rx.isRefreshing).dispose()
30 |
31 | XCTAssertTrue(subject.isRefreshing == false)
32 | }
33 | }
34 |
35 | #endif
36 |
--------------------------------------------------------------------------------
/Tests/RxCocoaTests/UITabBarItem+RxTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UITabBarItem+RxTests.swift
3 | // Tests
4 | //
5 | // Created by Mateusz Derks on 04/03/16.
6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 | import RxCocoa
11 | import UIKit
12 | import XCTest
13 |
14 | final class UITabBarItemTests : RxTest {
15 | }
16 |
17 | extension UITabBarItemTests {
18 | func testBadgetValue_Text() {
19 | let subject = UITabBarItem(tabBarSystemItem: .more, tag: 0)
20 | Observable.just("5").subscribe(subject.rx.badgeValue).dispose()
21 |
22 | XCTAssertTrue(subject.badgeValue == "5")
23 | }
24 |
25 | func testBadgetValue_Empty() {
26 | let subject = UITabBarItem(tabBarSystemItem: .more, tag: 0)
27 | Observable.just(nil).subscribe(subject.rx.badgeValue).dispose()
28 |
29 | XCTAssertTrue(subject.badgeValue == nil)
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/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 class Foundation.NSObject
10 |
11 | import RxSwift
12 |
13 | class RxTarget : NSObject
14 | , Disposable {
15 |
16 | private var retainSelf: RxTarget?
17 |
18 | override init() {
19 | super.init()
20 | self.retainSelf = self
21 |
22 | #if TRACE_RESOURCES
23 | _ = Resources.incrementTotal()
24 | #endif
25 |
26 | #if DEBUG
27 | MainScheduler.ensureExecutingOnScheduler()
28 | #endif
29 | }
30 |
31 | func dispose() {
32 | #if DEBUG
33 | MainScheduler.ensureExecutingOnScheduler()
34 | #endif
35 | self.retainSelf = nil
36 | }
37 |
38 | #if TRACE_RESOURCES
39 | deinit {
40 | _ = Resources.decrementTotal()
41 | }
42 | #endif
43 | }
44 |
--------------------------------------------------------------------------------
/RxCocoa/Runtime/include/_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 | // Exists because if written in Swift, reading unowned is disabled during dealloc process
18 | @interface _RXKVOObserver : NSObject
19 |
20 | -(instancetype)initWithTarget:(id)target
21 | retainTarget:(BOOL)retainTarget
22 | keyPath:(NSString*)keyPath
23 | options:(NSKeyValueObservingOptions)options
24 | callback:(void (^)(id))callback;
25 |
26 | -(void)dispose;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/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 UIKit
12 | import RxSwift
13 |
14 | /// Marks data source as `UICollectionView` reactive data source enabling it to be used with one of the `bindTo` methods.
15 | public protocol RxCollectionViewDataSourceType /*: UICollectionViewDataSource*/ {
16 |
17 | /// Type of elements that can be bound to collection view.
18 | associatedtype Element
19 |
20 | /// New observable sequence event observed.
21 | ///
22 | /// - parameter collectionView: Bound collection view.
23 | /// - parameter observedEvent: Event
24 | func collectionView(_ collectionView: UICollectionView, observedEvent: Event) -> Void
25 | }
26 |
27 | #endif
28 |
--------------------------------------------------------------------------------
/RxSwift/Observables/Empty.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Empty.swift
3 | // RxSwift
4 | //
5 | // Created by Krunoslav Zaher on 8/30/15.
6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | extension ObservableType {
10 | /**
11 | Returns an empty observable sequence, using the specified scheduler to send out the single `Completed` message.
12 |
13 | - seealso: [empty operator on reactivex.io](http://reactivex.io/documentation/operators/empty-never-throw.html)
14 |
15 | - returns: An observable sequence with no elements.
16 | */
17 | public static func empty() -> Observable {
18 | return EmptyProducer()
19 | }
20 | }
21 |
22 | final fileprivate class EmptyProducer : Producer {
23 | override func subscribe(_ observer: O) -> Disposable where O.E == Element {
24 | observer.on(.completed)
25 | return Disposables.create()
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/RxExample/RxDataSources/RxDataSources/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 | 3.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(CURRENT_PROJECT_VERSION)
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/RxTest/Deprecated.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Deprecated.swift
3 | // RxTest
4 | //
5 | // Created by Krunoslav Zaher on 4/29/17.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 |
11 | extension TestScheduler {
12 | @available(*, deprecated, renamed: "start(disposed:create:)")
13 | public func start(_ disposed: TestTime, create: @escaping () -> Observable) -> TestableObserver {
14 | return start(Defaults.created, subscribed: Defaults.subscribed, disposed: disposed, create: create)
15 | }
16 |
17 | @available(*, deprecated, renamed: "start(created:subscribed:disposed:create:)")
18 | public func start(_ created: TestTime, subscribed: TestTime, disposed: TestTime, create: @escaping () -> Observable) -> TestableObserver {
19 | return start(created: created, subscribed: subscribed, disposed: disposed, create: create)
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Sources/RxCocoaRuntime/include/_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 | // Exists because if written in Swift, reading unowned is disabled during dealloc process
18 | @interface _RXKVOObserver : NSObject
19 |
20 | -(instancetype)initWithTarget:(id)target
21 | retainTarget:(BOOL)retainTarget
22 | keyPath:(NSString*)keyPath
23 | options:(NSKeyValueObservingOptions)options
24 | callback:(void (^)(id))callback;
25 |
26 | -(void)dispose;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Tests/Resources.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Resources.swift
3 | // Tests
4 | //
5 | // Created by Krunoslav Zaher on 1/21/17.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 |
11 | #if TRACE_RESOURCES
12 | struct Resources {
13 | static func incrementTotal() -> Int32 {
14 | return RxSwift.Resources.incrementTotal()
15 | }
16 |
17 | static func decrementTotal() -> Int32 {
18 | return RxSwift.Resources.decrementTotal()
19 | }
20 |
21 | static var numberOfSerialDispatchQueueObservables: Int32 {
22 | return RxSwift.Resources.numberOfSerialDispatchQueueObservables
23 | }
24 |
25 | static var numberOfMapOperators: Int32 {
26 | return RxSwift.Resources.numberOfMapOperators
27 | }
28 |
29 | static var total: Int32 {
30 | return RxSwift.Resources.total
31 | }
32 | }
33 | #endif
34 |
--------------------------------------------------------------------------------
/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 UIKit
12 | import RxSwift
13 |
14 | extension Reactive where Base: UIStepper {
15 |
16 | /// Reactive wrapper for `value` property.
17 | public var value: ControlProperty {
18 | return base.rx.controlPropertyWithDefaultEvents(
19 | getter: { stepper in
20 | stepper.value
21 | }, setter: { stepper, value in
22 | stepper.value = value
23 | }
24 | )
25 | }
26 |
27 | /// Reactive wrapper for `stepValue` property.
28 | public var stepValue: Binder {
29 | return Binder(self.base) { stepper, value in
30 | stepper.stepValue = value
31 | }
32 | }
33 |
34 | }
35 |
36 | #endif
37 |
38 |
--------------------------------------------------------------------------------
/RxBlocking/Resources.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Resources.swift
3 | // RxBlocking
4 | //
5 | // Created by Krunoslav Zaher on 1/21/17.
6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved.
7 | //
8 |
9 | import RxSwift
10 |
11 | #if TRACE_RESOURCES
12 | struct Resources {
13 | static func incrementTotal() -> Int32 {
14 | return RxSwift.Resources.incrementTotal()
15 | }
16 |
17 | static func decrementTotal() -> Int32 {
18 | return RxSwift.Resources.decrementTotal()
19 | }
20 |
21 | static var numberOfSerialDispatchQueueObservables: Int32 {
22 | return RxSwift.Resources.numberOfSerialDispatchQueueObservables
23 | }
24 |
25 | static var numberOfMapOperators: Int32 {
26 | return RxSwift.Resources.numberOfMapOperators
27 | }
28 |
29 | static var total: Int32 {
30 | return RxSwift.Resources.total
31 | }
32 | }
33 | #endif
34 |
--------------------------------------------------------------------------------