├── .gitignore ├── Assets ├── download.jpg ├── icon.jpg └── screenshot.jpg ├── Launch Screen.storyboard ├── Podfile ├── Podfile.lock ├── Pods ├── Crashlytics │ ├── Crashlytics.framework │ │ ├── README │ │ └── submit │ ├── README.md │ ├── iOS │ │ └── Crashlytics.framework │ │ │ ├── Crashlytics │ │ │ ├── Headers │ │ │ ├── ANSCompatibility.h │ │ │ ├── Answers.h │ │ │ ├── CLSAttributes.h │ │ │ ├── CLSLogging.h │ │ │ ├── CLSReport.h │ │ │ ├── CLSStackFrame.h │ │ │ └── Crashlytics.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ └── module.modulemap │ │ │ ├── run │ │ │ ├── submit │ │ │ └── uploadDSYM │ └── submit ├── Device │ ├── LICENSE │ ├── README.md │ └── Source │ │ ├── Size.swift │ │ ├── Type.swift │ │ ├── Version.swift │ │ └── iOS │ │ └── Device.swift ├── Fabric │ ├── Fabric.framework │ │ ├── README │ │ └── run │ ├── README.md │ ├── iOS │ │ └── Fabric.framework │ │ │ ├── Fabric │ │ │ ├── Headers │ │ │ ├── FABAttributes.h │ │ │ └── Fabric.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ └── module.modulemap │ │ │ ├── run │ │ │ └── uploadDSYM │ ├── run │ ├── upload-symbols │ └── uploadDSYM ├── Local Podspecs │ └── RazzleDazzle.podspec.json ├── Manifest.lock ├── Pods.xcodeproj │ └── project.pbxproj ├── RazzleDazzle │ ├── LICENSE │ ├── README.md │ └── Source │ │ ├── AlphaAnimation.swift │ │ ├── Animatable.swift │ │ ├── AnimatedPagingScrollViewController.swift │ │ ├── Animation.swift │ │ ├── Animator.swift │ │ ├── BackgroundColorAnimation.swift │ │ ├── ConstraintConstantAnimation.swift │ │ ├── ConstraintMultiplierAnimation.swift │ │ ├── CornerRadiusAnimation.swift │ │ ├── CubicBezier.swift │ │ ├── EasingFunction.swift │ │ ├── Filmstrip.swift │ │ ├── HideAnimation.swift │ │ ├── Interpolatable.swift │ │ ├── LabelTextColorAnimation.swift │ │ ├── LayerFillColorAnimation.swift │ │ ├── LayerStrokeColorAnimation.swift │ │ ├── LayerStrokeEndAnimation.swift │ │ ├── LayerStrokeStartAnimation.swift │ │ ├── PathPositionAnimation.swift │ │ ├── RazzleDazzle.h │ │ ├── RotationAnimation.swift │ │ ├── ScaleAnimation.swift │ │ ├── ScrollViewPageConstraintAnimation.swift │ │ ├── TranslationAnimation.swift │ │ └── UIView+Transform.swift ├── RxAtomic │ ├── LICENSE.md │ ├── README.md │ └── RxAtomic │ │ ├── RxAtomic.c │ │ └── include │ │ └── RxAtomic.h ├── RxCocoa │ ├── LICENSE.md │ ├── Platform │ │ ├── DataStructures │ │ │ ├── Bag.swift │ │ │ ├── InfiniteSequence.swift │ │ │ ├── PriorityQueue.swift │ │ │ └── Queue.swift │ │ ├── DeprecationWarner.swift │ │ ├── DispatchQueue+Extensions.swift │ │ ├── Platform.Darwin.swift │ │ ├── Platform.Linux.swift │ │ └── RecursiveLock.swift │ ├── README.md │ └── RxCocoa │ │ ├── Common │ │ ├── Binder.swift │ │ ├── ControlTarget.swift │ │ ├── DelegateProxy.swift │ │ ├── DelegateProxyType.swift │ │ ├── KeyPathBinder.swift │ │ ├── NSLayoutConstraint+Rx.swift │ │ ├── Observable+Bind.swift │ │ ├── RxCocoaObjCRuntimeError+Extensions.swift │ │ ├── RxTarget.swift │ │ ├── SectionedViewDataSourceType.swift │ │ └── TextInput.swift │ │ ├── Deprecated.swift │ │ ├── Foundation │ │ ├── KVORepresentable+CoreGraphics.swift │ │ ├── KVORepresentable+Swift.swift │ │ ├── KVORepresentable.swift │ │ ├── Logging.swift │ │ ├── NSObject+Rx+KVORepresentable.swift │ │ ├── NSObject+Rx+RawRepresentable.swift │ │ ├── NSObject+Rx.swift │ │ ├── NotificationCenter+Rx.swift │ │ └── URLSession+Rx.swift │ │ ├── Runtime │ │ ├── _RX.m │ │ ├── _RXDelegateProxy.m │ │ ├── _RXKVOObserver.m │ │ ├── _RXObjCRuntime.m │ │ └── include │ │ │ ├── RxCocoaRuntime.h │ │ │ ├── _RX.h │ │ │ ├── _RXDelegateProxy.h │ │ │ ├── _RXKVOObserver.h │ │ │ └── _RXObjCRuntime.h │ │ ├── RxCocoa.h │ │ ├── RxCocoa.swift │ │ ├── Traits │ │ ├── BehaviorRelay.swift │ │ ├── ControlEvent.swift │ │ ├── ControlProperty.swift │ │ ├── Driver │ │ │ ├── BehaviorRelay+Driver.swift │ │ │ ├── ControlEvent+Driver.swift │ │ │ ├── ControlProperty+Driver.swift │ │ │ ├── Driver+Subscription.swift │ │ │ ├── Driver.swift │ │ │ └── ObservableConvertibleType+Driver.swift │ │ ├── PublishRelay.swift │ │ ├── SharedSequence │ │ │ ├── ObservableConvertibleType+SharedSequence.swift │ │ │ ├── SchedulerType+SharedSequence.swift │ │ │ ├── SharedSequence+Operators+arity.swift │ │ │ ├── SharedSequence+Operators.swift │ │ │ └── SharedSequence.swift │ │ └── Signal │ │ │ ├── ControlEvent+Signal.swift │ │ │ ├── ObservableConvertibleType+Signal.swift │ │ │ ├── PublishRelay+Signal.swift │ │ │ ├── Signal+Subscription.swift │ │ │ └── Signal.swift │ │ ├── iOS │ │ ├── DataSources │ │ │ ├── RxCollectionViewReactiveArrayDataSource.swift │ │ │ ├── RxPickerViewAdapter.swift │ │ │ └── RxTableViewReactiveArrayDataSource.swift │ │ ├── Events │ │ │ └── ItemEvents.swift │ │ ├── NSTextStorage+Rx.swift │ │ ├── Protocols │ │ │ ├── RxCollectionViewDataSourceType.swift │ │ │ ├── RxPickerViewDataSourceType.swift │ │ │ └── RxTableViewDataSourceType.swift │ │ ├── Proxies │ │ │ ├── RxCollectionViewDataSourcePrefetchingProxy.swift │ │ │ ├── RxCollectionViewDataSourceProxy.swift │ │ │ ├── RxCollectionViewDelegateProxy.swift │ │ │ ├── RxNavigationControllerDelegateProxy.swift │ │ │ ├── RxPickerViewDataSourceProxy.swift │ │ │ ├── RxPickerViewDelegateProxy.swift │ │ │ ├── RxScrollViewDelegateProxy.swift │ │ │ ├── RxSearchBarDelegateProxy.swift │ │ │ ├── RxSearchControllerDelegateProxy.swift │ │ │ ├── RxTabBarControllerDelegateProxy.swift │ │ │ ├── RxTabBarDelegateProxy.swift │ │ │ ├── RxTableViewDataSourcePrefetchingProxy.swift │ │ │ ├── RxTableViewDataSourceProxy.swift │ │ │ ├── RxTableViewDelegateProxy.swift │ │ │ ├── RxTextStorageDelegateProxy.swift │ │ │ ├── RxTextViewDelegateProxy.swift │ │ │ └── RxWebViewDelegateProxy.swift │ │ ├── UIActivityIndicatorView+Rx.swift │ │ ├── UIAlertAction+Rx.swift │ │ ├── UIApplication+Rx.swift │ │ ├── UIBarButtonItem+Rx.swift │ │ ├── UIButton+Rx.swift │ │ ├── UICollectionView+Rx.swift │ │ ├── UIControl+Rx.swift │ │ ├── UIDatePicker+Rx.swift │ │ ├── UIGestureRecognizer+Rx.swift │ │ ├── UIImageView+Rx.swift │ │ ├── UILabel+Rx.swift │ │ ├── UINavigationController+Rx.swift │ │ ├── UINavigationItem+Rx.swift │ │ ├── UIPageControl+Rx.swift │ │ ├── UIPickerView+Rx.swift │ │ ├── UIProgressView+Rx.swift │ │ ├── UIRefreshControl+Rx.swift │ │ ├── UIScrollView+Rx.swift │ │ ├── UISearchBar+Rx.swift │ │ ├── UISearchController+Rx.swift │ │ ├── UISegmentedControl+Rx.swift │ │ ├── UISlider+Rx.swift │ │ ├── UIStepper+Rx.swift │ │ ├── UISwitch+Rx.swift │ │ ├── UITabBar+Rx.swift │ │ ├── UITabBarController+Rx.swift │ │ ├── UITabBarItem+Rx.swift │ │ ├── UITableView+Rx.swift │ │ ├── UITextField+Rx.swift │ │ ├── UITextView+Rx.swift │ │ ├── UIView+Rx.swift │ │ ├── UIViewController+Rx.swift │ │ └── UIWebView+Rx.swift │ │ └── macOS │ │ ├── NSButton+Rx.swift │ │ ├── NSControl+Rx.swift │ │ ├── NSImageView+Rx.swift │ │ ├── NSSlider+Rx.swift │ │ ├── NSTextField+Rx.swift │ │ ├── NSTextView+Rx.swift │ │ └── NSView+Rx.swift ├── RxSwift │ ├── LICENSE.md │ ├── Platform │ │ ├── AtomicInt.swift │ │ ├── DataStructures │ │ │ ├── Bag.swift │ │ │ ├── InfiniteSequence.swift │ │ │ ├── PriorityQueue.swift │ │ │ └── Queue.swift │ │ ├── DeprecationWarner.swift │ │ ├── DispatchQueue+Extensions.swift │ │ ├── Platform.Darwin.swift │ │ ├── Platform.Linux.swift │ │ └── RecursiveLock.swift │ ├── README.md │ └── RxSwift │ │ ├── AnyObserver.swift │ │ ├── Cancelable.swift │ │ ├── Concurrency │ │ ├── AsyncLock.swift │ │ ├── Lock.swift │ │ ├── LockOwnerType.swift │ │ ├── SynchronizedDisposeType.swift │ │ ├── SynchronizedOnType.swift │ │ └── SynchronizedUnsubscribeType.swift │ │ ├── ConnectableObservableType.swift │ │ ├── Deprecated.swift │ │ ├── Disposable.swift │ │ ├── Disposables │ │ ├── AnonymousDisposable.swift │ │ ├── BinaryDisposable.swift │ │ ├── BooleanDisposable.swift │ │ ├── CompositeDisposable.swift │ │ ├── Disposables.swift │ │ ├── DisposeBag.swift │ │ ├── DisposeBase.swift │ │ ├── NopDisposable.swift │ │ ├── RefCountDisposable.swift │ │ ├── ScheduledDisposable.swift │ │ ├── SerialDisposable.swift │ │ ├── SingleAssignmentDisposable.swift │ │ └── SubscriptionDisposable.swift │ │ ├── Errors.swift │ │ ├── Event.swift │ │ ├── Extensions │ │ ├── Bag+Rx.swift │ │ └── String+Rx.swift │ │ ├── GroupedObservable.swift │ │ ├── ImmediateSchedulerType.swift │ │ ├── Observable.swift │ │ ├── ObservableConvertibleType.swift │ │ ├── ObservableType+Extensions.swift │ │ ├── ObservableType.swift │ │ ├── Observables │ │ ├── AddRef.swift │ │ ├── Amb.swift │ │ ├── AsMaybe.swift │ │ ├── AsSingle.swift │ │ ├── Buffer.swift │ │ ├── Catch.swift │ │ ├── CombineLatest+Collection.swift │ │ ├── CombineLatest+arity.swift │ │ ├── CombineLatest.swift │ │ ├── Concat.swift │ │ ├── Create.swift │ │ ├── Debounce.swift │ │ ├── Debug.swift │ │ ├── DefaultIfEmpty.swift │ │ ├── Deferred.swift │ │ ├── Delay.swift │ │ ├── DelaySubscription.swift │ │ ├── Dematerialize.swift │ │ ├── DistinctUntilChanged.swift │ │ ├── Do.swift │ │ ├── ElementAt.swift │ │ ├── Empty.swift │ │ ├── Enumerated.swift │ │ ├── Error.swift │ │ ├── Filter.swift │ │ ├── First.swift │ │ ├── Generate.swift │ │ ├── GroupBy.swift │ │ ├── Just.swift │ │ ├── Map.swift │ │ ├── Materialize.swift │ │ ├── Merge.swift │ │ ├── Multicast.swift │ │ ├── Never.swift │ │ ├── ObserveOn.swift │ │ ├── Optional.swift │ │ ├── Producer.swift │ │ ├── Range.swift │ │ ├── Reduce.swift │ │ ├── Repeat.swift │ │ ├── RetryWhen.swift │ │ ├── Sample.swift │ │ ├── Scan.swift │ │ ├── Sequence.swift │ │ ├── ShareReplayScope.swift │ │ ├── SingleAsync.swift │ │ ├── Sink.swift │ │ ├── Skip.swift │ │ ├── SkipUntil.swift │ │ ├── SkipWhile.swift │ │ ├── StartWith.swift │ │ ├── SubscribeOn.swift │ │ ├── Switch.swift │ │ ├── SwitchIfEmpty.swift │ │ ├── Take.swift │ │ ├── TakeLast.swift │ │ ├── TakeUntil.swift │ │ ├── TakeWhile.swift │ │ ├── Throttle.swift │ │ ├── Timeout.swift │ │ ├── Timer.swift │ │ ├── ToArray.swift │ │ ├── Using.swift │ │ ├── Window.swift │ │ ├── WithLatestFrom.swift │ │ ├── Zip+Collection.swift │ │ ├── Zip+arity.swift │ │ └── Zip.swift │ │ ├── ObserverType.swift │ │ ├── Observers │ │ ├── AnonymousObserver.swift │ │ ├── ObserverBase.swift │ │ └── TailRecursiveSink.swift │ │ ├── Reactive.swift │ │ ├── Rx.swift │ │ ├── RxMutableBox.swift │ │ ├── SchedulerType.swift │ │ ├── Schedulers │ │ ├── ConcurrentDispatchQueueScheduler.swift │ │ ├── ConcurrentMainScheduler.swift │ │ ├── CurrentThreadScheduler.swift │ │ ├── HistoricalScheduler.swift │ │ ├── HistoricalSchedulerTimeConverter.swift │ │ ├── Internal │ │ │ ├── DispatchQueueConfiguration.swift │ │ │ ├── InvocableScheduledItem.swift │ │ │ ├── InvocableType.swift │ │ │ ├── ScheduledItem.swift │ │ │ └── ScheduledItemType.swift │ │ ├── MainScheduler.swift │ │ ├── OperationQueueScheduler.swift │ │ ├── RecursiveScheduler.swift │ │ ├── SchedulerServices+Emulation.swift │ │ ├── SerialDispatchQueueScheduler.swift │ │ ├── VirtualTimeConverterType.swift │ │ └── VirtualTimeScheduler.swift │ │ ├── Subjects │ │ ├── AsyncSubject.swift │ │ ├── BehaviorSubject.swift │ │ ├── PublishSubject.swift │ │ ├── ReplaySubject.swift │ │ └── SubjectType.swift │ │ ├── SwiftSupport │ │ └── SwiftSupport.swift │ │ └── Traits │ │ ├── Completable+AndThen.swift │ │ ├── Completable.swift │ │ ├── Maybe.swift │ │ ├── ObservableType+PrimitiveSequence.swift │ │ ├── PrimitiveSequence+Zip+arity.swift │ │ ├── PrimitiveSequence.swift │ │ └── Single.swift └── Target Support Files │ ├── Crashlytics │ └── Crashlytics.xcconfig │ ├── Device │ ├── Device-Info.plist │ ├── Device-dummy.m │ ├── Device-prefix.pch │ ├── Device-umbrella.h │ ├── Device.modulemap │ ├── Device.xcconfig │ └── Info.plist │ ├── Fabric │ └── Fabric.xcconfig │ ├── Pods-RxMarbles │ ├── Info.plist │ ├── Pods-RxMarbles-Info.plist │ ├── Pods-RxMarbles-acknowledgements.markdown │ ├── Pods-RxMarbles-acknowledgements.plist │ ├── Pods-RxMarbles-dummy.m │ ├── Pods-RxMarbles-frameworks.sh │ ├── Pods-RxMarbles-resources.sh │ ├── Pods-RxMarbles-umbrella.h │ ├── Pods-RxMarbles.debug.xcconfig │ ├── Pods-RxMarbles.modulemap │ └── Pods-RxMarbles.release.xcconfig │ ├── RazzleDazzle │ ├── Info.plist │ ├── RazzleDazzle-Info.plist │ ├── RazzleDazzle-dummy.m │ ├── RazzleDazzle-prefix.pch │ ├── RazzleDazzle-umbrella.h │ ├── RazzleDazzle.modulemap │ └── RazzleDazzle.xcconfig │ ├── RxAtomic │ ├── Info.plist │ ├── RxAtomic-Info.plist │ ├── RxAtomic-dummy.m │ ├── RxAtomic-prefix.pch │ ├── RxAtomic-umbrella.h │ ├── RxAtomic.modulemap │ └── RxAtomic.xcconfig │ ├── RxCocoa │ ├── Info.plist │ ├── RxCocoa-Info.plist │ ├── RxCocoa-dummy.m │ ├── RxCocoa-prefix.pch │ ├── RxCocoa-umbrella.h │ ├── RxCocoa.modulemap │ └── RxCocoa.xcconfig │ └── RxSwift │ ├── Info.plist │ ├── RxSwift-Info.plist │ ├── RxSwift-dummy.m │ ├── RxSwift-prefix.pch │ ├── RxSwift-umbrella.h │ ├── RxSwift.modulemap │ └── RxSwift.xcconfig ├── README.md ├── RxMarbles.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ └── tutubalinry.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── tutubalinry.xcuserdatad │ └── xcschemes │ ├── RxMarbles.xcscheme │ └── xcschememanagement.plist ├── RxMarbles.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── RxMarbles ├── Animation.swift ├── AppDelegate.swift ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── 1024x1024.png │ │ ├── 1024x1024@1X.png │ │ ├── 1024x1024@1x-1.png │ │ ├── 1024x1024@1x-2.png │ │ ├── 1024x1024@1x-3.png │ │ ├── 1024x1024@2x-1.png │ │ ├── 1024x1024@2x-2.png │ │ ├── 1024x1024@2x-3.png │ │ ├── 1024x1024@2x-4.png │ │ ├── 1024x1024@2x-5.png │ │ ├── 1024x1024@2x.png │ │ ├── 1024x1024@3x-1.png │ │ ├── 1024x1024@3x-2.png │ │ ├── 1024x1024@3x-3.png │ │ ├── 1024x1024@3x.png │ │ ├── 167x167.png │ │ ├── 80x80.png │ │ └── Contents.json │ ├── Colors │ │ ├── Contents.json │ │ └── bgPrimary.colorset │ │ │ └── Contents.json │ ├── Contents.json │ ├── IntroLogo.imageset │ │ ├── Contents.json │ │ ├── IntroLogo.png │ │ ├── IntroLogo@2x.png │ │ └── IntroLogo@3x.png │ ├── Rubbish.imageset │ │ ├── Contents.json │ │ ├── Trash.png │ │ ├── Trash@2x.png │ │ └── Trash@3x.png │ ├── Share │ │ ├── Contents.json │ │ ├── evernote.imageset │ │ │ ├── Contents.json │ │ │ ├── Evernote.png │ │ │ ├── Evernote@2x.png │ │ │ └── Evernote@3x.png │ │ ├── facebook.imageset │ │ │ ├── Contents.json │ │ │ ├── Facebook.png │ │ │ ├── Facebook@2x.png │ │ │ └── Facebook@3x.png │ │ ├── hanghout.imageset │ │ │ ├── Contents.json │ │ │ ├── Hanghout.png │ │ │ ├── Hanghout@2x.png │ │ │ └── Hanghout@3x.png │ │ ├── mail.imageset │ │ │ ├── Contents.json │ │ │ ├── Mail.png │ │ │ ├── Mail@2x.png │ │ │ └── Mail@3x.png │ │ ├── messenger.imageset │ │ │ ├── Contents.json │ │ │ ├── Messenger.png │ │ │ ├── Messenger@2x.png │ │ │ └── Messenger@3x.png │ │ ├── skype.imageset │ │ │ ├── Contents.json │ │ │ ├── Skype.png │ │ │ ├── Skype@2x.png │ │ │ └── Skype@3x.png │ │ ├── slack.imageset │ │ │ ├── Contents.json │ │ │ ├── Slack.png │ │ │ ├── Slack@2x.png │ │ │ └── Slack@3x.png │ │ ├── trello.imageset │ │ │ ├── Contents.json │ │ │ ├── Trello.png │ │ │ ├── Trello@2x.png │ │ │ └── Trello@3x.png │ │ ├── twitter.imageset │ │ │ ├── Contents.json │ │ │ ├── Twitter.png │ │ │ ├── Twitter@2x.png │ │ │ └── Twitter@3x.png │ │ └── viber.imageset │ │ │ ├── Contents.json │ │ │ ├── Viber.png │ │ │ ├── Viber@2x.png │ │ │ └── Viber@3x.png │ ├── Trash.imageset │ │ ├── Contents.json │ │ ├── trash-1.png │ │ ├── trash-1@2x.png │ │ └── trash-1@3x.png │ ├── anjlab.imageset │ │ ├── Contents.json │ │ ├── Group 3.png │ │ ├── Group 3@2x.png │ │ └── Group 3@3x.png │ ├── anjlab_ellipse1.imageset │ │ ├── Contents.json │ │ ├── Group 3.png │ │ ├── Group 3@2x.png │ │ └── Group 3@3x.png │ ├── anjlab_ellipse2.imageset │ │ ├── Contents.json │ │ ├── Group 3.png │ │ ├── Group 3@2x.png │ │ └── Group 3@3x.png │ ├── complete.imageset │ │ ├── Contents.json │ │ ├── complete.png │ │ ├── complete@2x.png │ │ └── complete@3x.png │ ├── cross.imageset │ │ ├── Contents.json │ │ ├── Line + Line.png │ │ ├── Line + Line@2x.png │ │ └── Line + Line@3x.png │ ├── downArrow.imageset │ │ ├── Contents.json │ │ ├── Group 4.png │ │ ├── Group 4@2x.png │ │ └── Group 4@3x.png │ ├── error.imageset │ │ ├── Contents.json │ │ ├── error.png │ │ ├── error@2x.png │ │ ├── error@3x.png │ │ ├── errorDark@1x.png │ │ ├── errorDark@2x.png │ │ └── errorDark@3x.png │ ├── github.imageset │ │ ├── Contents.json │ │ ├── Github.png │ │ ├── Github@2x.png │ │ └── Github@3x.png │ ├── helpLogo.imageset │ │ ├── Contents.json │ │ ├── Group 2 Copy.png │ │ ├── Group 2 Copy@2x.png │ │ └── Group 2 Copy@3x.png │ ├── navBarExperiment.imageset │ │ ├── Back.png │ │ ├── Back@2x.png │ │ ├── Back@3x.png │ │ ├── BackDark.png │ │ ├── BackDark@2x.png │ │ ├── BackDark@3x.png │ │ └── Contents.json │ ├── navBarShare.imageset │ │ ├── Contents.json │ │ ├── Group 3.png │ │ ├── Group 3@2x.png │ │ ├── Group 3@3x.png │ │ ├── navBarShareDark.png │ │ ├── navBarShareDark@2x.png │ │ └── navBarShareDark@3x.png │ ├── nextCircle.imageset │ │ ├── Contents.json │ │ ├── nextCircle.png │ │ ├── nextCircle@2x.png │ │ └── nextCircle@3x.png │ ├── nextRect.imageset │ │ ├── Contents.json │ │ ├── nextRect.png │ │ ├── nextRect@2x.png │ │ └── nextRect@3x.png │ ├── nextStar.imageset │ │ ├── Contents.json │ │ ├── nextStar.png │ │ ├── nextStar@2x.png │ │ └── nextStar@3x.png │ ├── nextTriangle.imageset │ │ ├── Contents.json │ │ ├── nextTriangle.png │ │ ├── nextTriangle@2x.png │ │ └── nextTriangle@3x.png │ ├── reactivex.imageset │ │ ├── Contents.json │ │ ├── Rx_Logo_S.png │ │ ├── Rx_Logo_S@2x.png │ │ └── Rx_Logo_S@3x.png │ ├── timeLine.imageset │ │ ├── Contents.json │ │ ├── timeLine.png │ │ ├── timeLine@2x.png │ │ └── timeLine@3x.png │ ├── timelineExperiment.imageset │ │ ├── Contents.json │ │ ├── Group 3.png │ │ ├── Group 3@2x.png │ │ └── Group 3@3x.png │ └── upArrow.imageset │ │ ├── Contents.json │ │ ├── Group 3.png │ │ ├── Group 3@2x.png │ │ └── Group 3@3x.png ├── Bag.swift ├── Color.swift ├── ColoredType.swift ├── EventShape.swift ├── EventView.swift ├── Font.swift ├── HelpViewController.swift ├── Image.swift ├── Indexing.swift ├── Info.plist ├── Notifications.swift ├── Operator.swift ├── OperatorCode.swift ├── OperatorImplementation.swift ├── OperatorViewController.swift ├── OperatorsTableViewController.swift ├── OperatorsTableViewModel.swift ├── ResultSequenceView.swift ├── RxTests │ ├── Any+Equatable.swift │ ├── ColdObservable.swift │ ├── Deprecated.swift │ ├── EquatableArray.swift │ ├── Event+Equatable.swift │ ├── HotObservable.swift │ ├── Recorded.swift │ ├── RxTests.swift │ ├── Schedulers │ │ ├── TestScheduler.swift │ │ └── TestSchedulerVirtualTimeConverter.swift │ ├── Subscription.swift │ ├── TestableObservable.swift │ ├── TestableObserver.swift │ └── XCTest+Rx.swift ├── SceneView.swift ├── Section.swift ├── SequenceView.swift ├── Settings.bundle │ ├── Root.plist │ └── en.lproj │ │ └── Root.strings ├── SourceSequenceView.swift ├── en.lproj │ └── Localizable.strings └── ru.lproj │ └── Localizable.strings └── privacy-policy.md /.gitignore: -------------------------------------------------------------------------------- 1 | .SD_Store 2 | xcuserdata 3 | .DS_Store 4 | 5 | ### Xcode Patch ### 6 | *.xcodeproj/xcshareddata/ 7 | *.xcworkspace/contents.xcworkspacedata 8 | /*.gcno 9 | **/xcshareddata/WorkspaceSettings.xcsettings 10 | -------------------------------------------------------------------------------- /Assets/download.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/Assets/download.jpg -------------------------------------------------------------------------------- /Assets/icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/Assets/icon.jpg -------------------------------------------------------------------------------- /Assets/screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/Assets/screenshot.jpg -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment this line to define a global platform for your project 2 | # platform :ios, '8.0' 3 | # Uncomment this line if you're using Swift 4 | use_frameworks! 5 | 6 | target 'RxMarbles' do 7 | 8 | pod 'RxSwift', '~> 4.0' 9 | pod 'RxCocoa', '~> 4.0' 10 | pod 'Device' 11 | pod 'Fabric' 12 | pod 'Crashlytics' 13 | pod 'RazzleDazzle', :git => 'https://github.com/carlosypunto/RazzleDazzle.git', :tag => '0.2.0' 14 | 15 | end 16 | 17 | post_install do |installer| 18 | installer.pods_project.targets.each do |target| 19 | target.build_configurations.each do |configuration| 20 | configuration.build_settings['SWIFT_VERSION'] = "4.0" 21 | end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /Pods/Crashlytics/Crashlytics.framework/README: -------------------------------------------------------------------------------- 1 | We've now combined all our supported platforms into a single podspec. As a result, we moved our submit script to a new location for Cocoapods projects: ${PODS_ROOT}/Crashlytics/submit. To avoid breaking functionality that references the old location of the submit, we've placed this dummy script that calls to the correct location, while providing a helpful warning if it is invoked. This bridge for backwards compatibility will be removed in a future release, so please heed the warning! 2 | -------------------------------------------------------------------------------- /Pods/Crashlytics/Crashlytics.framework/submit: -------------------------------------------------------------------------------- 1 | if [[ -z $PODS_ROOT ]]; then 2 | echo "error: The submit binary delivered by cocoapods is in a new location, under '$"{"PODS_ROOT"}"/Crashlytics/submit'. This script was put in place for backwards compatibility, but it relies on PODS_ROOT, which does not have a value in your current setup. Please update the path to the submit binary to fix this issue." 3 | else 4 | echo "warning: The submit script is now located at '$"{"PODS_ROOT"}"/Crashlytics/submit'. To remove this warning, update your path to point to this new location." 5 | sh "${PODS_ROOT}/Crashlytics/submit" "$@" 6 | fi 7 | -------------------------------------------------------------------------------- /Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics -------------------------------------------------------------------------------- /Pods/Crashlytics/iOS/Crashlytics.framework/Headers/ANSCompatibility.h: -------------------------------------------------------------------------------- 1 | // 2 | // ANSCompatibility.h 3 | // AnswersKit 4 | // 5 | // Copyright (c) 2015 Crashlytics, Inc. All rights reserved. 6 | // 7 | 8 | #pragma once 9 | 10 | #if !__has_feature(nullability) 11 | #define nonnull 12 | #define nullable 13 | #define _Nullable 14 | #define _Nonnull 15 | #endif 16 | 17 | #ifndef NS_ASSUME_NONNULL_BEGIN 18 | #define NS_ASSUME_NONNULL_BEGIN 19 | #endif 20 | 21 | #ifndef NS_ASSUME_NONNULL_END 22 | #define NS_ASSUME_NONNULL_END 23 | #endif 24 | 25 | #if __has_feature(objc_generics) 26 | #define ANS_GENERIC_NSARRAY(type) NSArray 27 | #define ANS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary 28 | #else 29 | #define ANS_GENERIC_NSARRAY(type) NSArray 30 | #define ANS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary 31 | #endif 32 | -------------------------------------------------------------------------------- /Pods/Crashlytics/iOS/Crashlytics.framework/Headers/CLSAttributes.h: -------------------------------------------------------------------------------- 1 | // 2 | // CLSAttributes.h 3 | // Crashlytics 4 | // 5 | // Copyright (c) 2015 Crashlytics, Inc. All rights reserved. 6 | // 7 | 8 | #pragma once 9 | 10 | #define CLS_DEPRECATED(x) __attribute__ ((deprecated(x))) 11 | 12 | #if !__has_feature(nullability) 13 | #define nonnull 14 | #define nullable 15 | #define _Nullable 16 | #define _Nonnull 17 | #endif 18 | 19 | #ifndef NS_ASSUME_NONNULL_BEGIN 20 | #define NS_ASSUME_NONNULL_BEGIN 21 | #endif 22 | 23 | #ifndef NS_ASSUME_NONNULL_END 24 | #define NS_ASSUME_NONNULL_END 25 | #endif 26 | 27 | #if __has_feature(objc_generics) 28 | #define CLS_GENERIC_NSARRAY(type) NSArray 29 | #define CLS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary 30 | #else 31 | #define CLS_GENERIC_NSARRAY(type) NSArray 32 | #define CLS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary 33 | #endif 34 | -------------------------------------------------------------------------------- /Pods/Crashlytics/iOS/Crashlytics.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/Pods/Crashlytics/iOS/Crashlytics.framework/Info.plist -------------------------------------------------------------------------------- /Pods/Crashlytics/iOS/Crashlytics.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Crashlytics { 2 | header "Crashlytics.h" 3 | header "Answers.h" 4 | header "ANSCompatibility.h" 5 | header "CLSLogging.h" 6 | header "CLSReport.h" 7 | header "CLSStackFrame.h" 8 | header "CLSAttributes.h" 9 | 10 | export * 11 | 12 | link "z" 13 | link "c++" 14 | } 15 | -------------------------------------------------------------------------------- /Pods/Crashlytics/iOS/Crashlytics.framework/run: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # run 4 | # 5 | # Copyright (c) 2015 Crashlytics. All rights reserved. 6 | 7 | # Figure out where we're being called from 8 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 9 | 10 | # Quote path in case of spaces or special chars 11 | DIR="\"${DIR}" 12 | 13 | PATH_SEP="/" 14 | VALIDATE_COMMAND="uploadDSYM\" $@ validate run-script" 15 | UPLOAD_COMMAND="uploadDSYM\" $@ run-script" 16 | 17 | # Ensure params are as expected, run in sync mode to validate 18 | eval $DIR$PATH_SEP$VALIDATE_COMMAND 19 | return_code=$? 20 | 21 | if [[ $return_code != 0 ]]; then 22 | exit $return_code 23 | fi 24 | 25 | # Verification passed, upload dSYM in background to prevent Xcode from waiting 26 | # Note: Validation is performed again before upload. 27 | # Output can still be found in Console.app 28 | eval $DIR$PATH_SEP$UPLOAD_COMMAND > /dev/null 2>&1 & 29 | -------------------------------------------------------------------------------- /Pods/Crashlytics/iOS/Crashlytics.framework/submit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/Pods/Crashlytics/iOS/Crashlytics.framework/submit -------------------------------------------------------------------------------- /Pods/Crashlytics/iOS/Crashlytics.framework/uploadDSYM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/Pods/Crashlytics/iOS/Crashlytics.framework/uploadDSYM -------------------------------------------------------------------------------- /Pods/Crashlytics/submit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/Pods/Crashlytics/submit -------------------------------------------------------------------------------- /Pods/Device/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Lucas Ortis 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /Pods/Device/Source/Type.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Type.swift 3 | // Device 4 | // 5 | // Created by Stefan Jansen on 08-12-15. 6 | // Copyright © 2015 Ekhoo. All rights reserved. 7 | // 8 | 9 | public enum Type: String { 10 | #if os(iOS) 11 | case iPhone 12 | case iPad 13 | case iPod 14 | case simulator 15 | #elseif os(OSX) 16 | case iMac 17 | case macMini 18 | case macPro 19 | case macBook 20 | case macBookAir 21 | case macBookPro 22 | case xserve 23 | #endif 24 | case unknown 25 | } 26 | -------------------------------------------------------------------------------- /Pods/Fabric/Fabric.framework/README: -------------------------------------------------------------------------------- 1 | We've now combined all our supported platforms into a single podspec. As a result, we moved our run script to a new location for Cocoapods projects: ${PODS_ROOT}/Fabric/run. To avoid breaking builds that reference the old location of the run script, we've placed this dummy script that calls to the correct location, while providing a helpful warning in Xcode if it is invoked. This bridge for backwards compatibility will be removed in a future release, so please heed the warning! 2 | -------------------------------------------------------------------------------- /Pods/Fabric/Fabric.framework/run: -------------------------------------------------------------------------------- 1 | if [[ -z $PODS_ROOT ]]; then 2 | echo "error: The run binary delivered by cocoapods is in a new location, under '$"{"PODS_ROOT"}"/Fabric/run'. This script was put in place for backwards compatibility, but it relies on PODS_ROOT, which does not have a value in your current setup. Please update the path to the run binary to fix this issue." 3 | else 4 | echo "warning: The run script is now located at '$"{"PODS_ROOT"}"/Fabric/run'. To remove this warning, update your Run Script Build Phase to point to this new location." 5 | sh "${PODS_ROOT}/Fabric/run" "$@" 6 | fi 7 | -------------------------------------------------------------------------------- /Pods/Fabric/iOS/Fabric.framework/Fabric: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/Pods/Fabric/iOS/Fabric.framework/Fabric -------------------------------------------------------------------------------- /Pods/Fabric/iOS/Fabric.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/Pods/Fabric/iOS/Fabric.framework/Info.plist -------------------------------------------------------------------------------- /Pods/Fabric/iOS/Fabric.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Fabric { 2 | umbrella header "Fabric.h" 3 | 4 | export * 5 | module * { export * } 6 | } -------------------------------------------------------------------------------- /Pods/Fabric/iOS/Fabric.framework/run: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # run 4 | # 5 | # Copyright (c) 2015 Crashlytics. All rights reserved. 6 | 7 | # Figure out where we're being called from 8 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 9 | 10 | # Quote path in case of spaces or special chars 11 | DIR="\"${DIR}" 12 | 13 | PATH_SEP="/" 14 | VALIDATE_COMMAND="uploadDSYM\" $@ validate run-script" 15 | UPLOAD_COMMAND="uploadDSYM\" $@ run-script" 16 | 17 | # Ensure params are as expected, run in sync mode to validate 18 | eval $DIR$PATH_SEP$VALIDATE_COMMAND 19 | return_code=$? 20 | 21 | if [[ $return_code != 0 ]]; then 22 | exit $return_code 23 | fi 24 | 25 | # Verification passed, upload dSYM in background to prevent Xcode from waiting 26 | # Note: Validation is performed again before upload. 27 | # Output can still be found in Console.app 28 | eval $DIR$PATH_SEP$UPLOAD_COMMAND > /dev/null 2>&1 & 29 | -------------------------------------------------------------------------------- /Pods/Fabric/iOS/Fabric.framework/uploadDSYM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/Pods/Fabric/iOS/Fabric.framework/uploadDSYM -------------------------------------------------------------------------------- /Pods/Fabric/run: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # run 4 | # 5 | # Copyright (c) 2015 Crashlytics. All rights reserved. 6 | 7 | # Figure out where we're being called from 8 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 9 | 10 | # Quote path in case of spaces or special chars 11 | DIR="\"${DIR}" 12 | 13 | PATH_SEP="/" 14 | VALIDATE_COMMAND="uploadDSYM\" $@ validate run-script" 15 | UPLOAD_COMMAND="uploadDSYM\" $@ run-script" 16 | 17 | # Ensure params are as expected, run in sync mode to validate 18 | eval $DIR$PATH_SEP$VALIDATE_COMMAND 19 | return_code=$? 20 | 21 | if [[ $return_code != 0 ]]; then 22 | exit $return_code 23 | fi 24 | 25 | # Verification passed, upload dSYM in background to prevent Xcode from waiting 26 | # Note: Validation is performed again before upload. 27 | # Output can still be found in Console.app 28 | eval $DIR$PATH_SEP$UPLOAD_COMMAND > /dev/null 2>&1 & 29 | -------------------------------------------------------------------------------- /Pods/Fabric/upload-symbols: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/Pods/Fabric/upload-symbols -------------------------------------------------------------------------------- /Pods/Fabric/uploadDSYM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/Pods/Fabric/uploadDSYM -------------------------------------------------------------------------------- /Pods/Local Podspecs/RazzleDazzle.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "RazzleDazzle", 3 | "version": "0.2.0", 4 | "summary": "Simple Swift keyframe animations for scrolling intros", 5 | "homepage": "https://github.com/IFTTT/RazzleDazzle", 6 | "license": "MIT", 7 | "authors": { 8 | "Laura Skelton": "laura@ifttt.com", 9 | "Max Meyers": "max@ifttt.com", 10 | "Devin Foley": "devin@ifttt.com" 11 | }, 12 | "source": { 13 | "git": "https://github.com/IFTTT/RazzleDazzle.git", 14 | "tag": "0.2.0" 15 | }, 16 | "social_media_url": "https://twitter.com/IFTTT", 17 | "platforms": { 18 | "ios": "8.0" 19 | }, 20 | "requires_arc": true, 21 | "compiler_flags": "-fmodules", 22 | "frameworks": "UIKit", 23 | "description": "Razzle Dazzle is a Swift keyframe animation framework by IFTTT, based on Jazz Hands. Move UIViews around the screen based on UIScrollView input, KVO, or anything really. Works well with AutoLayout.", 24 | "source_files": "Source/*.{h,swift}" 25 | } 26 | -------------------------------------------------------------------------------- /Pods/RazzleDazzle/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 IFTTT Inc 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/RazzleDazzle/Source/AlphaAnimation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AlphaAnimation.swift 3 | // RazzleDazzle 4 | // 5 | // Created by Laura Skelton on 6/13/15. 6 | // Copyright (c) 2015 IFTTT. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | /** 12 | Animates the `alpha` property of a `UIView`. 13 | */ 14 | open class AlphaAnimation : Animation, Animatable { 15 | fileprivate let view : UIView 16 | 17 | public init(view: UIView) { 18 | self.view = view 19 | } 20 | 21 | open func animate(_ time: CGFloat) { 22 | if !hasKeyframes() {return} 23 | view.alpha = self[time] 24 | } 25 | 26 | open override func validateValue(_ value: CGFloat) -> Bool { 27 | return (value >= 0) && (value <= 1) 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Pods/RazzleDazzle/Source/Animatable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Animatable.swift 3 | // RazzleDazzle 4 | // 5 | // Created by Laura Skelton on 6/14/15. 6 | // Copyright (c) 2015 IFTTT. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | /** 12 | Protocol for types that can animate a view for a given time. 13 | */ 14 | public protocol Animatable { 15 | /** 16 | Animate the view for a certain point in time. 17 | 18 | - parameter time: The point in time for which to animate the view 19 | */ 20 | func animate(_ time: CGFloat) 21 | } 22 | -------------------------------------------------------------------------------- /Pods/RazzleDazzle/Source/Animator.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Animator.swift 3 | // RazzleDazzle 4 | // 5 | // Created by Laura Skelton on 6/11/15. 6 | // Copyright (c) 2015 IFTTT. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Keeps an array of all of the animations being controlled, and calls the `animate:` function on each. 13 | */ 14 | open class Animator { 15 | open var animations = [Animatable]() 16 | 17 | public init() { } 18 | 19 | open func animate(_ time: CGFloat) { 20 | for animation in animations { 21 | animation.animate(time) 22 | } 23 | } 24 | 25 | open func addAnimation(_ animation: Animatable) { 26 | animations.append(animation) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Pods/RazzleDazzle/Source/BackgroundColorAnimation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ColorAnimation.swift 3 | // RazzleDazzle 4 | // 5 | // Created by Laura Skelton on 6/13/15. 6 | // Copyright (c) 2015 IFTTT. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | /** 12 | Animates the `backgroundColor` property of a `UIView`. 13 | */ 14 | open class BackgroundColorAnimation : Animation, Animatable { 15 | fileprivate let view : UIView 16 | 17 | public init(view: UIView) { 18 | self.view = view 19 | } 20 | 21 | open func animate(_ time: CGFloat) { 22 | if !hasKeyframes() {return} 23 | view.backgroundColor = self[time] 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Pods/RazzleDazzle/Source/ConstraintConstantAnimation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ConstraintAnimation.swift 3 | // RazzleDazzle 4 | // 5 | // Created by Laura Skelton on 6/15/15. 6 | // Copyright (c) 2015 IFTTT. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | /** 12 | Animates the `constant` of an `NSLayoutConstraint` and lays out the given `superview`. 13 | */ 14 | open class ConstraintConstantAnimation : Animation, Animatable { 15 | fileprivate let superview : UIView 16 | fileprivate let constraint : NSLayoutConstraint 17 | 18 | public init(superview: UIView, constraint: NSLayoutConstraint) { 19 | self.superview = superview 20 | self.constraint = constraint 21 | } 22 | 23 | open func animate(_ time: CGFloat) { 24 | if !hasKeyframes() {return} 25 | constraint.constant = self[time] 26 | superview.layoutIfNeeded() 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Pods/RazzleDazzle/Source/CornerRadiusAnimation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CornerRadiusAnimation.swift 3 | // RazzleDazzle 4 | // 5 | // Created by Laura Skelton on 6/15/15. 6 | // Copyright (c) 2015 IFTTT. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | /** 12 | Animates the `cornerRadius` property of a `UIView's` `layer`. 13 | */ 14 | open class CornerRadiusAnimation : Animation, Animatable { 15 | fileprivate let view : UIView 16 | 17 | public init(view: UIView) { 18 | self.view = view 19 | } 20 | 21 | open func animate(_ time: CGFloat) { 22 | if !hasKeyframes() {return} 23 | view.layer.cornerRadius = self[time] 24 | } 25 | 26 | open override func validateValue(_ value: CGFloat) -> Bool { 27 | return (value >= 0) 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Pods/RazzleDazzle/Source/HideAnimation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HideAnimation.swift 3 | // RazzleDazzle 4 | // 5 | // Created by Laura Skelton on 6/27/15. 6 | // Copyright © 2015 IFTTT. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | /** 12 | Animates the `hidden` property of a `UIView`. 13 | */ 14 | open class HideAnimation : Animatable { 15 | fileprivate let filmstrip = Filmstrip() 16 | fileprivate let view : UIView 17 | 18 | public init(view: UIView, hideAt: CGFloat) { 19 | self.view = view 20 | filmstrip[hideAt] = false 21 | filmstrip[hideAt + 0.00001] = true 22 | } 23 | 24 | public init(view: UIView, showAt: CGFloat) { 25 | self.view = view 26 | filmstrip[showAt] = true 27 | filmstrip[showAt + 0.00001] = false 28 | } 29 | 30 | open func animate(_ time: CGFloat) { 31 | if filmstrip.isEmpty {return} 32 | view.isHidden = filmstrip[time] 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Pods/RazzleDazzle/Source/LabelTextColorAnimation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LabelTextColorAnimation.swift 3 | // RazzleDazzle 4 | // 5 | // Created by Laura Skelton on 6/24/15. 6 | // Copyright (c) 2015 IFTTT. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | /** 12 | Animates the `textColor` property of a `UILabel`. 13 | */ 14 | open class LabelTextColorAnimation: Animation, Animatable { 15 | fileprivate let label : UILabel 16 | 17 | public init(label : UILabel) { 18 | self.label = label 19 | } 20 | 21 | open func animate(_ time: CGFloat) { 22 | if !hasKeyframes() {return} 23 | label.textColor = self[time] 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Pods/RazzleDazzle/Source/LayerFillColorAnimation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LayerFillColorAnimation.swift 3 | // RazzleDazzle 4 | // 5 | // Created by Laura Skelton on 6/24/15. 6 | // Copyright (c) 2015 IFTTT. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | /** 12 | Animates the `fillColor` property of a `CAShapeLayer`. 13 | */ 14 | open class LayerFillColorAnimation : Animation, Animatable { 15 | fileprivate let layer : CAShapeLayer 16 | 17 | public init(layer: CAShapeLayer) { 18 | self.layer = layer 19 | } 20 | 21 | open func animate(_ time: CGFloat) { 22 | if !hasKeyframes() {return} 23 | layer.fillColor = self[time].cgColor 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Pods/RazzleDazzle/Source/LayerStrokeColorAnimation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LayerStrokeColorAnimation.swift 3 | // RazzleDazzle 4 | // 5 | // Created by Laura Skelton on 6/24/15. 6 | // Copyright (c) 2015 IFTTT. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | /** 12 | Animates the `strokeColor` property of a `CAShapeLayer`. 13 | */ 14 | open class LayerStrokeColorAnimation : Animation, Animatable { 15 | fileprivate let layer : CAShapeLayer 16 | 17 | public init(layer: CAShapeLayer) { 18 | self.layer = layer 19 | } 20 | 21 | open func animate(_ time: CGFloat) { 22 | if !hasKeyframes() {return} 23 | layer.strokeColor = self[time].cgColor 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Pods/RazzleDazzle/Source/RazzleDazzle.h: -------------------------------------------------------------------------------- 1 | // 2 | // RazzleDazzle.h 3 | // RazzleDazzle 4 | // 5 | // Created by Laura Skelton on 6/11/15. 6 | // Copyright (c) 2015 IFTTT. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for RazzleDazzle. 12 | FOUNDATION_EXPORT double RazzleDazzleVersionNumber; 13 | 14 | //! Project version string for RazzleDazzle. 15 | FOUNDATION_EXPORT const unsigned char RazzleDazzleVersionString[]; 16 | -------------------------------------------------------------------------------- /Pods/RazzleDazzle/Source/RotationAnimation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RotationAnimation.swift 3 | // RazzleDazzle 4 | // 5 | // Created by Laura Skelton on 6/13/15. 6 | // Copyright (c) 2015 IFTTT. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | /** 12 | Animates the rotation of the `transform` of a `UIView`. 13 | */ 14 | open class RotationAnimation : Animation, Animatable { 15 | fileprivate let view : UIView 16 | 17 | public init(view: UIView) { 18 | self.view = view 19 | } 20 | 21 | open func animate(_ time: CGFloat) { 22 | if !hasKeyframes() {return} 23 | let degrees = self[time] 24 | let radians = degrees * CGFloat(M_PI / -180.0) 25 | let rotationTransform = CGAffineTransform(rotationAngle: radians) 26 | view.rotationTransform = rotationTransform 27 | var newTransform = rotationTransform 28 | if let scaleTransform = view.scaleTransform { 29 | newTransform = newTransform.concatenating(scaleTransform) 30 | } 31 | if let translationTransform = view.translationTransform { 32 | newTransform = newTransform.concatenating(translationTransform) 33 | } 34 | view.transform = newTransform 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Pods/RazzleDazzle/Source/ScaleAnimation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScaleAnimation.swift 3 | // RazzleDazzle 4 | // 5 | // Created by Laura Skelton on 6/13/15. 6 | // Copyright (c) 2015 IFTTT. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | /** 12 | Animates the scale of the `transform` of a `UIView`. 13 | */ 14 | open class ScaleAnimation : Animation, Animatable { 15 | fileprivate let view : UIView 16 | 17 | public init(view: UIView) { 18 | self.view = view 19 | } 20 | 21 | open func animate(_ time: CGFloat) { 22 | if !hasKeyframes() {return} 23 | let scale = self[time] 24 | let scaleTransform = CGAffineTransform(scaleX: scale, y: scale) 25 | view.scaleTransform = scaleTransform 26 | var newTransform = scaleTransform 27 | if let rotationTransform = view.rotationTransform { 28 | newTransform = newTransform.concatenating(rotationTransform) 29 | } 30 | if let translationTransform = view.translationTransform { 31 | newTransform = newTransform.concatenating(translationTransform) 32 | } 33 | view.transform = newTransform 34 | } 35 | 36 | open override func validateValue(_ value: CGFloat) -> Bool { 37 | return (value >= 0) 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Pods/RazzleDazzle/Source/TranslationAnimation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TranslationAnimation.swift 3 | // RazzleDazzle 4 | // 5 | // Created by Laura Skelton on 6/14/15. 6 | // Copyright (c) 2015 IFTTT. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | /** 12 | Animates the translation of the `transform` of a `UIView`. 13 | */ 14 | open class TranslationAnimation : Animation, Animatable { 15 | fileprivate let view : UIView 16 | 17 | public init(view: UIView) { 18 | self.view = view 19 | } 20 | 21 | open func animate(_ time: CGFloat) { 22 | if !hasKeyframes() {return} 23 | let translation = self[time] 24 | let translationTransform = CGAffineTransform(translationX: translation.x, y: translation.y) 25 | view.translationTransform = translationTransform 26 | var newTransform = translationTransform 27 | if let scaleTransform = view.scaleTransform { 28 | newTransform = newTransform.concatenating(scaleTransform) 29 | } 30 | if let rotationTransform = view.rotationTransform { 31 | newTransform = newTransform.concatenating(rotationTransform) 32 | } 33 | view.transform = newTransform 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Pods/RxAtomic/LICENSE.md: -------------------------------------------------------------------------------- 1 | **The MIT License** 2 | **Copyright © 2015 Krunoslav Zaher** 3 | **All rights reserved.** 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /Pods/RxAtomic/RxAtomic/RxAtomic.c: -------------------------------------------------------------------------------- 1 | // 2 | // RxAtomic.c 3 | // RxAtomic 4 | // 5 | // Created by Krunoslav Zaher on 10/28/18. 6 | // Copyright © 2018 Krunoslav Zaher. All rights reserved. 7 | // 8 | -------------------------------------------------------------------------------- /Pods/RxCocoa/LICENSE.md: -------------------------------------------------------------------------------- 1 | **The MIT License** 2 | **Copyright © 2015 Krunoslav Zaher** 3 | **All rights reserved.** 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/Platform/Platform.Darwin.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Platform.Darwin.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) || os(iOS) || os(tvOS) || os(watchOS) 10 | 11 | import Darwin 12 | import class Foundation.Thread 13 | import protocol Foundation.NSCopying 14 | 15 | extension Thread { 16 | static func setThreadLocalStorageValue(_ value: T?, forKey key: NSCopying) { 17 | let currentThread = Thread.current 18 | let threadDictionary = currentThread.threadDictionary 19 | 20 | if let newValue = value { 21 | threadDictionary[key] = newValue 22 | } 23 | else { 24 | threadDictionary[key] = nil 25 | } 26 | } 27 | 28 | static func getThreadLocalStorageValueForKey(_ key: NSCopying) -> T? { 29 | let currentThread = Thread.current 30 | let threadDictionary = currentThread.threadDictionary 31 | 32 | return threadDictionary[key] as? T 33 | } 34 | } 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /Pods/RxCocoa/Platform/Platform.Linux.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Platform.Linux.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(Linux) 10 | 11 | import class Foundation.Thread 12 | 13 | extension Thread { 14 | 15 | static func setThreadLocalStorageValue(_ value: T?, forKey key: String) { 16 | let currentThread = Thread.current 17 | var threadDictionary = currentThread.threadDictionary 18 | 19 | if let newValue = value { 20 | threadDictionary[key] = newValue 21 | } 22 | else { 23 | threadDictionary[key] = nil 24 | } 25 | 26 | currentThread.threadDictionary = threadDictionary 27 | } 28 | 29 | static func getThreadLocalStorageValueForKey(_ key: String) -> T? { 30 | let currentThread = Thread.current 31 | let threadDictionary = currentThread.threadDictionary 32 | 33 | return threadDictionary[key] as? T 34 | } 35 | } 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/KeyPathBinder.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KeyPathBinder.swift 3 | // RxCocoa 4 | // 5 | // Created by Ryo Aoyama on 2/7/18. 6 | // Copyright © 2018 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | extension Reactive where Base: AnyObject { 12 | 13 | /// Bindable sink for arbitrary property using the given key path. 14 | /// Binding runs on the MainScheduler. 15 | /// 16 | /// - parameter keyPath: Key path to write to the property. 17 | public subscript(keyPath: ReferenceWritableKeyPath) -> Binder { 18 | return Binder(self.base) { base, value in 19 | base[keyPath: keyPath] = value 20 | } 21 | } 22 | 23 | /// Bindable sink for arbitrary property using the given key path. 24 | /// Binding runs on the specified scheduler. 25 | /// 26 | /// - parameter keyPath: Key path to write to the property. 27 | /// - parameter scheduler: Scheduler to run bindings on. 28 | public subscript(keyPath: ReferenceWritableKeyPath, on scheduler: ImmediateSchedulerType) -> Binder { 29 | return Binder(self.base, scheduler: scheduler) { base, value in 30 | base[keyPath: keyPath] = value 31 | } 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/NSLayoutConstraint+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSLayoutConstraint+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(Linux) 10 | 11 | #if os(macOS) 12 | import Cocoa 13 | #else 14 | import UIKit 15 | #endif 16 | 17 | import RxSwift 18 | 19 | #if os(iOS) || os(macOS) || os(tvOS) 20 | extension Reactive where Base: NSLayoutConstraint { 21 | /// Bindable sink for `constant` property. 22 | public var constant: Binder { 23 | return Binder(self.base) { constraint, constant in 24 | constraint.constant = constant 25 | } 26 | } 27 | 28 | /// Bindable sink for `active` property. 29 | @available(iOS 8, OSX 10.10, *) 30 | public var active: Binder { 31 | return Binder(self.base) { constraint, value in 32 | constraint.isActive = value 33 | } 34 | } 35 | } 36 | 37 | #endif 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Foundation/NotificationCenter+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NotificationCenter+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 5/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import class Foundation.NotificationCenter 10 | import struct Foundation.Notification 11 | 12 | import RxSwift 13 | 14 | extension Reactive where Base: NotificationCenter { 15 | /** 16 | Transforms notifications posted to notification center to observable sequence of notifications. 17 | 18 | - parameter name: Optional name used to filter notifications. 19 | - parameter object: Optional object used to filter notifications. 20 | - returns: Observable sequence of posted notifications. 21 | */ 22 | public func notification(_ name: Notification.Name?, object: AnyObject? = nil) -> Observable { 23 | return Observable.create { [weak object] observer in 24 | let nsObserver = self.base.addObserver(forName: name, object: object, queue: nil) { notification in 25 | observer.on(.next(notification)) 26 | } 27 | 28 | return Disposables.create { 29 | self.base.removeObserver(nsObserver) 30 | } 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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[]; -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 { _ -> 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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 { _ -> 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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Traits/PublishRelay.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PublishRelay.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 3/28/15. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | /// PublishRelay is a wrapper for `PublishSubject`. 12 | /// 13 | /// Unlike `PublishSubject` it can't terminate with error or completed. 14 | public final class PublishRelay: ObservableType { 15 | public typealias E = Element 16 | 17 | private let _subject: PublishSubject 18 | 19 | // Accepts `event` and emits it to subscribers 20 | public func accept(_ event: Element) { 21 | self._subject.onNext(event) 22 | } 23 | 24 | /// Initializes with internal empty subject. 25 | public init() { 26 | self._subject = PublishSubject() 27 | } 28 | 29 | /// Subscribes observer 30 | public func subscribe(_ observer: O) -> Disposable where O.E == E { 31 | return self._subject.subscribe(observer) 32 | } 33 | 34 | /// - returns: Canonical interface for push style sequence 35 | public func asObservable() -> Observable { 36 | return self._subject.asObservable() 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 { _ -> 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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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) 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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) 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxCollectionViewDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// For more information take a look at `DelegateProxyType`. 15 | open class RxCollectionViewDelegateProxy 16 | : RxScrollViewDelegateProxy 17 | , UICollectionViewDelegate 18 | , UICollectionViewDelegateFlowLayout { 19 | 20 | /// Typed parent object. 21 | public weak private(set) var collectionView: UICollectionView? 22 | 23 | /// Initializes `RxCollectionViewDelegateProxy` 24 | /// 25 | /// - parameter collectionView: Parent object for delegate proxy. 26 | public init(collectionView: UICollectionView) { 27 | self.collectionView = collectionView 28 | super.init(scrollView: collectionView) 29 | } 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxPickerViewDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Segii Shulga on 5/12/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension UIPickerView: HasDelegate { 15 | public typealias Delegate = UIPickerViewDelegate 16 | } 17 | 18 | open class RxPickerViewDelegateProxy 19 | : DelegateProxy 20 | , DelegateProxyType 21 | , UIPickerViewDelegate { 22 | 23 | /// Typed parent object. 24 | public weak private(set) var pickerView: UIPickerView? 25 | 26 | /// - parameter pickerView: Parent object for delegate proxy. 27 | public init(pickerView: ParentObject) { 28 | self.pickerView = pickerView 29 | super.init(parentObject: pickerView, delegateProxy: RxPickerViewDelegateProxy.self) 30 | } 31 | 32 | // Register known implementationss 33 | public static func registerKnownImplementations() { 34 | self.register { RxPickerViewDelegateProxy(pickerView: $0) } 35 | } 36 | } 37 | #endif 38 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchBarDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxSearchBarDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension UISearchBar: HasDelegate { 15 | public typealias Delegate = UISearchBarDelegate 16 | } 17 | 18 | /// For more information take a look at `DelegateProxyType`. 19 | open class RxSearchBarDelegateProxy 20 | : DelegateProxy 21 | , DelegateProxyType 22 | , UISearchBarDelegate { 23 | 24 | /// Typed parent object. 25 | public weak private(set) var searchBar: UISearchBar? 26 | 27 | /// - parameter searchBar: Parent object for delegate proxy. 28 | public init(searchBar: ParentObject) { 29 | self.searchBar = searchBar 30 | super.init(parentObject: searchBar, delegateProxy: RxSearchBarDelegateProxy.self) 31 | } 32 | 33 | // Register known implementations 34 | public static func registerKnownImplementations() { 35 | self.register { RxSearchBarDelegateProxy(searchBar: $0) } 36 | } 37 | } 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarControllerDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTabBarControllerDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Yusuke Kita on 2016/12/07. 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 UITabBarController: HasDelegate { 15 | public typealias Delegate = UITabBarControllerDelegate 16 | } 17 | 18 | /// For more information take a look at `DelegateProxyType`. 19 | open class RxTabBarControllerDelegateProxy 20 | : DelegateProxy 21 | , DelegateProxyType 22 | , UITabBarControllerDelegate { 23 | 24 | /// Typed parent object. 25 | public weak private(set) var tabBar: UITabBarController? 26 | 27 | /// - parameter tabBar: Parent object for delegate proxy. 28 | public init(tabBar: ParentObject) { 29 | self.tabBar = tabBar 30 | super.init(parentObject: tabBar, delegateProxy: RxTabBarControllerDelegateProxy.self) 31 | } 32 | 33 | // Register known implementations 34 | public static func registerKnownImplementations() { 35 | self.register { RxTabBarControllerDelegateProxy(tabBar: $0) } 36 | } 37 | } 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTextStorageDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Segii Shulga on 12/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension NSTextStorage: HasDelegate { 15 | public typealias Delegate = NSTextStorageDelegate 16 | } 17 | 18 | open class RxTextStorageDelegateProxy 19 | : DelegateProxy 20 | , DelegateProxyType 21 | , NSTextStorageDelegate { 22 | 23 | /// Typed parent object. 24 | public weak private(set) var textStorage: NSTextStorage? 25 | 26 | /// - parameter textStorage: Parent object for delegate proxy. 27 | public init(textStorage: NSTextStorage) { 28 | self.textStorage = textStorage 29 | super.init(parentObject: textStorage, delegateProxy: RxTextStorageDelegateProxy.self) 30 | } 31 | 32 | // Register known implementations 33 | public static func registerKnownImplementations() { 34 | self.register { RxTextStorageDelegateProxy(textStorage: $0) } 35 | } 36 | } 37 | #endif 38 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxWebViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxWebViewDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Andrew Breckenridge on 9/26/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 UIWebView: HasDelegate { 15 | public typealias Delegate = UIWebViewDelegate 16 | } 17 | 18 | open class RxWebViewDelegateProxy 19 | : DelegateProxy 20 | , DelegateProxyType 21 | , UIWebViewDelegate { 22 | 23 | /// Typed parent object. 24 | public weak private(set) var webView: UIWebView? 25 | 26 | /// - parameter webView: Parent object for delegate proxy. 27 | public init(webView: ParentObject) { 28 | self.webView = webView 29 | super.init(parentObject: webView, delegateProxy: RxWebViewDelegateProxy.self) 30 | } 31 | 32 | // Register known implementations 33 | public static func registerKnownImplementations() { 34 | self.register { RxWebViewDelegateProxy(webView: $0) } 35 | } 36 | } 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIDatePicker+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIDatePicker+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Daniel Tartaglia on 5/31/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension Reactive where Base: UIDatePicker { 15 | /// Reactive wrapper for `date` property. 16 | public var date: ControlProperty { 17 | return value 18 | } 19 | 20 | /// Reactive wrapper for `date` property. 21 | public var value: ControlProperty { 22 | return base.rx.controlPropertyWithDefaultEvents( 23 | getter: { datePicker in 24 | datePicker.date 25 | }, setter: { datePicker, value in 26 | datePicker.date = value 27 | } 28 | ) 29 | } 30 | 31 | /// Reactive wrapper for `countDownDuration` property. 32 | public var countDownDuration: ControlProperty { 33 | return base.rx.controlPropertyWithDefaultEvents( 34 | getter: { datePicker in 35 | datePicker.countDownDuration 36 | }, setter: { datePicker, value in 37 | datePicker.countDownDuration = value 38 | } 39 | ) 40 | } 41 | } 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UISwitch+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UISwitch+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Carlos García on 8/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UISwitch { 15 | 16 | /// Reactive wrapper for `isOn` property. 17 | public var isOn: ControlProperty { 18 | return value 19 | } 20 | 21 | /// Reactive wrapper for `isOn` property. 22 | /// 23 | /// ⚠️ Versions prior to iOS 10.2 were leaking `UISwitch`'s, so on those versions 24 | /// underlying observable sequence won't complete when nothing holds a strong reference 25 | /// to `UISwitch`. 26 | public var value: ControlProperty { 27 | return base.rx.controlPropertyWithDefaultEvents( 28 | getter: { uiSwitch in 29 | uiSwitch.isOn 30 | }, setter: { uiSwitch, value in 31 | uiSwitch.isOn = value 32 | } 33 | ) 34 | } 35 | 36 | } 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+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(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIView { 15 | /// Bindable sink for `hidden` property. 16 | public var isHidden: Binder { 17 | return Binder(self.base) { view, hidden in 18 | view.isHidden = hidden 19 | } 20 | } 21 | 22 | /// Bindable sink for `alpha` property. 23 | public var alpha: Binder { 24 | return Binder(self.base) { view, alpha in 25 | view.alpha = alpha 26 | } 27 | } 28 | 29 | /// Bindable sink for `isUserInteractionEnabled` property. 30 | public var isUserInteractionEnabled: Binder { 31 | return Binder(self.base) { view, userInteractionEnabled in 32 | view.isUserInteractionEnabled = userInteractionEnabled 33 | } 34 | } 35 | 36 | } 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSButton+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 5/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) 10 | 11 | import RxSwift 12 | import Cocoa 13 | 14 | extension Reactive where Base: NSButton { 15 | 16 | /// Reactive wrapper for control event. 17 | public var tap: ControlEvent { 18 | return self.controlEvent 19 | } 20 | 21 | /// Reactive wrapper for `state` property`. 22 | public var state: ControlProperty { 23 | return self.base.rx.controlProperty( 24 | getter: { control in 25 | return control.state 26 | }, setter: { (control: NSButton, state: NSControl.StateValue) in 27 | control.state = state 28 | } 29 | ) 30 | } 31 | } 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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(self.base) { imageView, image in 19 | imageView.image = image 20 | } 21 | } 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 self.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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/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 | -------------------------------------------------------------------------------- /Pods/RxSwift/LICENSE.md: -------------------------------------------------------------------------------- 1 | **The MIT License** 2 | **Copyright © 2015 Krunoslav Zaher** 3 | **All rights reserved.** 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /Pods/RxSwift/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 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | -------------------------------------------------------------------------------- /Pods/RxSwift/Platform/Platform.Darwin.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Platform.Darwin.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) || os(iOS) || os(tvOS) || os(watchOS) 10 | 11 | import Darwin 12 | import class Foundation.Thread 13 | import protocol Foundation.NSCopying 14 | 15 | extension Thread { 16 | static func setThreadLocalStorageValue(_ value: T?, forKey key: NSCopying) { 17 | let currentThread = Thread.current 18 | let threadDictionary = currentThread.threadDictionary 19 | 20 | if let newValue = value { 21 | threadDictionary[key] = newValue 22 | } 23 | else { 24 | threadDictionary[key] = nil 25 | } 26 | } 27 | 28 | static func getThreadLocalStorageValueForKey(_ key: NSCopying) -> T? { 29 | let currentThread = Thread.current 30 | let threadDictionary = currentThread.threadDictionary 31 | 32 | return threadDictionary[key] as? T 33 | } 34 | } 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /Pods/RxSwift/Platform/Platform.Linux.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Platform.Linux.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(Linux) 10 | 11 | import class Foundation.Thread 12 | 13 | extension Thread { 14 | 15 | static func setThreadLocalStorageValue(_ value: T?, forKey key: String) { 16 | let currentThread = Thread.current 17 | var threadDictionary = currentThread.threadDictionary 18 | 19 | if let newValue = value { 20 | threadDictionary[key] = newValue 21 | } 22 | else { 23 | threadDictionary[key] = nil 24 | } 25 | 26 | currentThread.threadDictionary = threadDictionary 27 | } 28 | 29 | static func getThreadLocalStorageValueForKey(_ key: String) -> T? { 30 | let currentThread = Thread.current 31 | let threadDictionary = currentThread.threadDictionary 32 | 33 | return threadDictionary[key] as? T 34 | } 35 | } 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Concurrency/Lock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Lock.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/31/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol Lock { 10 | func lock() 11 | func unlock() 12 | } 13 | 14 | // https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151214/000321.html 15 | typealias SpinLock = RecursiveLock 16 | 17 | extension RecursiveLock : Lock { 18 | @inline(__always) 19 | final func performLocked(_ action: () -> Void) { 20 | self.lock(); defer { self.unlock() } 21 | action() 22 | } 23 | 24 | @inline(__always) 25 | final func calculateLocked(_ action: () -> T) -> T { 26 | self.lock(); defer { self.unlock() } 27 | return action() 28 | } 29 | 30 | @inline(__always) 31 | final func calculateLockedOrFail(_ action: () throws -> T) throws -> T { 32 | self.lock(); defer { self.unlock() } 33 | let result = try action() 34 | return result 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | self._lock.lock() 16 | } 17 | 18 | func unlock() { 19 | self._lock.unlock() 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | self.lock(); defer { self.unlock() } 16 | self._synchronized_dispose() 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | self.lock(); defer { self.unlock() } 16 | self._synchronized_on(event) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | /// Represents a disposable resource. 10 | public protocol Disposable { 11 | /// Dispose resource. 12 | func dispose() 13 | } 14 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Disposables/BooleanDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BooleanDisposable.swift 3 | // RxSwift 4 | // 5 | // Created by Junior B. on 10/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents a disposable resource that can be checked for disposal status. 10 | public final class BooleanDisposable : Cancelable { 11 | 12 | internal static let BooleanDisposableTrue = BooleanDisposable(isDisposed: true) 13 | private var _isDisposed = false 14 | 15 | /// Initializes a new instance of the `BooleanDisposable` class 16 | public init() { 17 | } 18 | 19 | /// Initializes a new instance of the `BooleanDisposable` class with given value 20 | public init(isDisposed: Bool) { 21 | self._isDisposed = isDisposed 22 | } 23 | 24 | /// - returns: Was resource disposed. 25 | public var isDisposed: Bool { 26 | return self._isDisposed 27 | } 28 | 29 | /// Sets the status to disposed, which can be observer through the `isDisposed` property. 30 | public func dispose() { 31 | self._isDisposed = true 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | _ = Resources.incrementTotal() 14 | #endif 15 | } 16 | 17 | deinit { 18 | #if TRACE_RESOURCES 19 | _ = Resources.decrementTotal() 20 | #endif 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | self._owner = owner 15 | self._key = key 16 | } 17 | 18 | func dispose() { 19 | self._owner?.synchronizedUnsubscribe(self._key) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Extensions/Bag+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Bag+Rx.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/19/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | 10 | // MARK: forEach 11 | 12 | @inline(__always) 13 | func dispatch(_ bag: Bag<(Event) -> Void>, _ event: Event) { 14 | bag._value0?(event) 15 | 16 | if bag._onlyFastPath { 17 | return 18 | } 19 | 20 | let pairs = bag._pairs 21 | for i in 0 ..< pairs.count { 22 | pairs[i].value(event) 23 | } 24 | 25 | if let dictionary = bag._dictionary { 26 | for element in dictionary.values { 27 | element(event) 28 | } 29 | } 30 | } 31 | 32 | /// Dispatches `dispose` to all disposables contained inside bag. 33 | func disposeAll(in bag: Bag) { 34 | bag._value0?.dispose() 35 | 36 | if bag._onlyFastPath { 37 | return 38 | } 39 | 40 | let pairs = bag._pairs 41 | for i in 0 ..< pairs.count { 42 | pairs[i].value.dispose() 43 | } 44 | 45 | if let dictionary = bag._dictionary { 46 | for element in dictionary.values { 47 | element.dispose() 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 = self.endIndex 13 | while index > self.startIndex { 14 | index = self.index(before: index) 15 | if self[index] == character { 16 | return index 17 | } 18 | } 19 | 20 | return nil 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Observable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// A type-erased `ObservableType`. 10 | /// 11 | /// It represents a push style sequence. 12 | public class Observable : ObservableType { 13 | /// Type of elements in sequence. 14 | public typealias E = Element 15 | 16 | init() { 17 | #if TRACE_RESOURCES 18 | _ = Resources.incrementTotal() 19 | #endif 20 | } 21 | 22 | public func subscribe(_ observer: O) -> Disposable where O.E == E { 23 | rxAbstractMethod() 24 | } 25 | 26 | public func asObservable() -> Observable { 27 | return self 28 | } 29 | 30 | deinit { 31 | #if TRACE_RESOURCES 32 | _ = Resources.decrementTotal() 33 | #endif 34 | } 35 | 36 | // this is kind of ugly I know :( 37 | // Swift compiler reports "Not supported yet" when trying to override protocol extensions, so ¯\_(ツ)_/¯ 38 | 39 | /// Optimizations for map operator 40 | internal func composeMap(_ transform: @escaping (Element) throws -> R) -> Observable { 41 | return _map(source: self, transform: transform) 42 | } 43 | } 44 | 45 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 private 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 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Error.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Error.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 observable sequence that terminates with an `error`. 12 | 13 | - seealso: [throw operator on reactivex.io](http://reactivex.io/documentation/operators/empty-never-throw.html) 14 | 15 | - returns: The observable sequence that terminates with specified error. 16 | */ 17 | public static func error(_ error: Swift.Error) -> Observable { 18 | return ErrorProducer(error: error) 19 | } 20 | } 21 | 22 | final private class ErrorProducer: Producer { 23 | private let _error: Swift.Error 24 | 25 | init(error: Swift.Error) { 26 | self._error = error 27 | } 28 | 29 | override func subscribe(_ observer: O) -> Disposable where O.E == Element { 30 | observer.on(.error(self._error)) 31 | return Disposables.create() 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 private class NeverProducer: Producer { 24 | override func subscribe(_ observer: O) -> Disposable where O.E == Element { 25 | return Disposables.create() 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | _ = Resources.incrementTotal() 19 | #endif 20 | self._eventHandler = eventHandler 21 | } 22 | 23 | override func onCore(_ event: Event) { 24 | return self._eventHandler(event) 25 | } 26 | 27 | #if TRACE_RESOURCES 28 | deinit { 29 | _ = Resources.decrementTotal() 30 | } 31 | #endif 32 | } 33 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 load(&self._isStopped) == 0 { 18 | self.onCore(event) 19 | } 20 | case .error, .completed: 21 | if fetchOr(&self._isStopped, 1) == 0 { 22 | self.onCore(event) 23 | } 24 | } 25 | } 26 | 27 | func onCore(_ event: Event) { 28 | rxAbstractMethod() 29 | } 30 | 31 | func dispose() { 32 | fetchOr(&self._isStopped, 1) 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/RxMutableBox.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxMutableBox.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 5/22/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// 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 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | self._invocable = invocable 16 | self._state = state 17 | } 18 | 19 | func invoke() { 20 | self._invocable.invoke(self._state) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 self._disposable.isDisposed 21 | } 22 | 23 | init(action: @escaping Action, state: T) { 24 | self._action = action 25 | self._state = state 26 | } 27 | 28 | func invoke() { 29 | self._disposable.setDisposable(self._action(self._state)) 30 | } 31 | 32 | func dispose() { 33 | self._disposable.dispose() 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | -------------------------------------------------------------------------------- /Pods/RxSwift/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 | typealias IntMax = Int64 12 | public typealias RxAbstractInteger = FixedWidthInteger 13 | 14 | extension SignedInteger { 15 | func toIntMax() -> IntMax { 16 | return IntMax(self) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Crashlytics/Crashlytics.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Crashlytics 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Crashlytics 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Device/Device-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.1.2 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Device/Device-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Device : NSObject 3 | @end 4 | @implementation PodsDummy_Device 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Device/Device-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Device/Device-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double DeviceVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char DeviceVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Device/Device.modulemap: -------------------------------------------------------------------------------- 1 | framework module Device { 2 | umbrella header "Device-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Device/Device.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Device 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Device 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Device/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.1.2 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Fabric/Fabric.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Fabric 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Fabric/iOS" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Fabric 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RxMarbles/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 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RxMarbles/Pods-RxMarbles-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 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RxMarbles/Pods-RxMarbles-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_RxMarbles : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_RxMarbles 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RxMarbles/Pods-RxMarbles-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_RxMarblesVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_RxMarblesVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RxMarbles/Pods-RxMarbles.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_RxMarbles { 2 | umbrella header "Pods-RxMarbles-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RazzleDazzle/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 | 0.2.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RazzleDazzle/RazzleDazzle-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 | 0.2.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RazzleDazzle/RazzleDazzle-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RazzleDazzle : NSObject 3 | @end 4 | @implementation PodsDummy_RazzleDazzle 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RazzleDazzle/RazzleDazzle-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RazzleDazzle/RazzleDazzle-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "RazzleDazzle.h" 14 | 15 | FOUNDATION_EXPORT double RazzleDazzleVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char RazzleDazzleVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RazzleDazzle/RazzleDazzle.modulemap: -------------------------------------------------------------------------------- 1 | framework module RazzleDazzle { 2 | umbrella header "RazzleDazzle-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RazzleDazzle/RazzleDazzle.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RazzleDazzle 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RazzleDazzle 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxAtomic/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.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxAtomic/RxAtomic-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.4.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxAtomic/RxAtomic-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxAtomic : NSObject 3 | @end 4 | @implementation PodsDummy_RxAtomic 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxAtomic/RxAtomic-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxAtomic/RxAtomic-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "RxAtomic.h" 14 | 15 | FOUNDATION_EXPORT double RxAtomicVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char RxAtomicVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxAtomic/RxAtomic.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxAtomic { 2 | umbrella header "RxAtomic-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxAtomic/RxAtomic.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic 2 | DEFINES_MODULE = YES 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxAtomic 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/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.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxCocoa/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.4.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxCocoa/RxCocoa-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxCocoa : NSObject 3 | @end 4 | @implementation PodsDummy_RxCocoa 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxCocoa/RxCocoa-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxCocoa/RxCocoa-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "RxCocoaRuntime.h" 14 | #import "_RX.h" 15 | #import "_RXDelegateProxy.h" 16 | #import "_RXKVOObserver.h" 17 | #import "_RXObjCRuntime.h" 18 | #import "RxCocoa.h" 19 | 20 | FOUNDATION_EXPORT double RxCocoaVersionNumber; 21 | FOUNDATION_EXPORT const unsigned char RxCocoaVersionString[]; 22 | 23 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxCocoa/RxCocoa.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxCocoa { 2 | umbrella header "RxCocoa-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxCocoa/RxCocoa.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxCocoa 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/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.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxSwift/RxSwift-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 4.4.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxSwift/RxSwift-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxSwift : NSObject 3 | @end 4 | @implementation PodsDummy_RxSwift 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxSwift/RxSwift-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxSwift/RxSwift-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double RxSwiftVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char RxSwiftVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxSwift/RxSwift.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxSwift { 2 | umbrella header "RxSwift-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxSwift/RxSwift.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxSwift 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxSwift 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 |
3 | 4 |

5 | 6 | # RxMarbles for iOS 7 | 8 | Interactive diagrams of Rx Observables. 9 | 10 | ReactiveX is a library for composing asynchronous and event-based programs by using observable sequences. 11 | 12 | It extends the observer pattern to support sequences of data and/or events and adds operators that allow you to compose sequences together declaratively while abstracting away concerns about things like low-level threading, synchronization, thread-safety, concurrent data structures, and non-blocking I/O. 13 | 14 | ![Preview](Assets/screenshot.jpg) -------------------------------------------------------------------------------- /RxMarbles.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /RxMarbles.xcodeproj/project.xcworkspace/xcuserdata/tutubalinry.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles.xcodeproj/project.xcworkspace/xcuserdata/tutubalinry.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /RxMarbles.xcodeproj/xcuserdata/tutubalinry.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | RxMarbles.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 0AC2658E1C3D2C24009E28FD 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /RxMarbles.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /RxMarbles.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@1X.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@1X.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@1x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@1x-1.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@1x-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@1x-2.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@1x-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@1x-3.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@2x-1.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@2x-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@2x-2.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@2x-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@2x-3.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@2x-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@2x-4.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@2x-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@2x-5.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@3x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@3x-1.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@3x-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@3x-2.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@3x-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@3x-3.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/1024x1024@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/167x167.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/AppIcon.appiconset/80x80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/AppIcon.appiconset/80x80.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Colors/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Colors/bgPrimary.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "1.000", 13 | "alpha" : "1.000", 14 | "blue" : "1.000", 15 | "green" : "1.000" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "30", 31 | "alpha" : "1.000", 32 | "blue" : "30", 33 | "green" : "30" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/IntroLogo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "IntroLogo.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "IntroLogo@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "IntroLogo@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/IntroLogo.imageset/IntroLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/IntroLogo.imageset/IntroLogo.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/IntroLogo.imageset/IntroLogo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/IntroLogo.imageset/IntroLogo@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/IntroLogo.imageset/IntroLogo@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/IntroLogo.imageset/IntroLogo@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Rubbish.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Trash.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Trash@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Trash@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Rubbish.imageset/Trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Rubbish.imageset/Trash.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Rubbish.imageset/Trash@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Rubbish.imageset/Trash@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Rubbish.imageset/Trash@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Rubbish.imageset/Trash@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/evernote.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Evernote.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Evernote@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Evernote@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/evernote.imageset/Evernote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/evernote.imageset/Evernote.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/evernote.imageset/Evernote@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/evernote.imageset/Evernote@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/evernote.imageset/Evernote@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/evernote.imageset/Evernote@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/facebook.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Facebook.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Facebook@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Facebook@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/facebook.imageset/Facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/facebook.imageset/Facebook.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/facebook.imageset/Facebook@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/facebook.imageset/Facebook@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/facebook.imageset/Facebook@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/facebook.imageset/Facebook@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/hanghout.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Hanghout.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Hanghout@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Hanghout@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/hanghout.imageset/Hanghout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/hanghout.imageset/Hanghout.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/hanghout.imageset/Hanghout@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/hanghout.imageset/Hanghout@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/hanghout.imageset/Hanghout@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/hanghout.imageset/Hanghout@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/mail.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Mail.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Mail@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Mail@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/mail.imageset/Mail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/mail.imageset/Mail.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/mail.imageset/Mail@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/mail.imageset/Mail@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/mail.imageset/Mail@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/mail.imageset/Mail@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/messenger.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Messenger.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Messenger@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Messenger@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/messenger.imageset/Messenger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/messenger.imageset/Messenger.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/messenger.imageset/Messenger@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/messenger.imageset/Messenger@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/messenger.imageset/Messenger@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/messenger.imageset/Messenger@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/skype.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Skype.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Skype@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Skype@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/skype.imageset/Skype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/skype.imageset/Skype.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/skype.imageset/Skype@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/skype.imageset/Skype@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/skype.imageset/Skype@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/skype.imageset/Skype@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/slack.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Slack.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Slack@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Slack@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/slack.imageset/Slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/slack.imageset/Slack.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/slack.imageset/Slack@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/slack.imageset/Slack@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/slack.imageset/Slack@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/slack.imageset/Slack@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/trello.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Trello.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Trello@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Trello@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/trello.imageset/Trello.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/trello.imageset/Trello.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/trello.imageset/Trello@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/trello.imageset/Trello@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/trello.imageset/Trello@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/trello.imageset/Trello@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/twitter.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Twitter.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Twitter@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Twitter@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/twitter.imageset/Twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/twitter.imageset/Twitter.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/twitter.imageset/Twitter@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/twitter.imageset/Twitter@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/twitter.imageset/Twitter@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/twitter.imageset/Twitter@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/viber.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Viber.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Viber@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Viber@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/viber.imageset/Viber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/viber.imageset/Viber.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/viber.imageset/Viber@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/viber.imageset/Viber@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Share/viber.imageset/Viber@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Share/viber.imageset/Viber@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Trash.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "trash-1.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "trash-1@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "trash-1@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Trash.imageset/trash-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Trash.imageset/trash-1.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Trash.imageset/trash-1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Trash.imageset/trash-1@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/Trash.imageset/trash-1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/Trash.imageset/trash-1@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/anjlab.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Group 3.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Group 3@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Group 3@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/anjlab.imageset/Group 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/anjlab.imageset/Group 3.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/anjlab.imageset/Group 3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/anjlab.imageset/Group 3@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/anjlab.imageset/Group 3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/anjlab.imageset/Group 3@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/anjlab_ellipse1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Group 3.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Group 3@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Group 3@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/anjlab_ellipse1.imageset/Group 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/anjlab_ellipse1.imageset/Group 3.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/anjlab_ellipse1.imageset/Group 3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/anjlab_ellipse1.imageset/Group 3@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/anjlab_ellipse1.imageset/Group 3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/anjlab_ellipse1.imageset/Group 3@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/anjlab_ellipse2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Group 3.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Group 3@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Group 3@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/anjlab_ellipse2.imageset/Group 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/anjlab_ellipse2.imageset/Group 3.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/anjlab_ellipse2.imageset/Group 3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/anjlab_ellipse2.imageset/Group 3@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/anjlab_ellipse2.imageset/Group 3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/anjlab_ellipse2.imageset/Group 3@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/complete.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "complete.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "complete@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "complete@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/complete.imageset/complete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/complete.imageset/complete.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/complete.imageset/complete@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/complete.imageset/complete@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/complete.imageset/complete@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/complete.imageset/complete@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/cross.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Line + Line.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Line + Line@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Line + Line@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/cross.imageset/Line + Line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/cross.imageset/Line + Line.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/cross.imageset/Line + Line@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/cross.imageset/Line + Line@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/cross.imageset/Line + Line@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/cross.imageset/Line + Line@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/downArrow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Group 4.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Group 4@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Group 4@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/downArrow.imageset/Group 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/downArrow.imageset/Group 4.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/downArrow.imageset/Group 4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/downArrow.imageset/Group 4@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/downArrow.imageset/Group 4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/downArrow.imageset/Group 4@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/error.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "error.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "errorDark@1x.png", 11 | "appearances" : [ 12 | { 13 | "appearance" : "luminosity", 14 | "value" : "dark" 15 | } 16 | ], 17 | "scale" : "1x" 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "filename" : "error@2x.png", 22 | "scale" : "2x" 23 | }, 24 | { 25 | "idiom" : "universal", 26 | "filename" : "errorDark@2x.png", 27 | "appearances" : [ 28 | { 29 | "appearance" : "luminosity", 30 | "value" : "dark" 31 | } 32 | ], 33 | "scale" : "2x" 34 | }, 35 | { 36 | "idiom" : "universal", 37 | "filename" : "error@3x.png", 38 | "scale" : "3x" 39 | }, 40 | { 41 | "idiom" : "universal", 42 | "filename" : "errorDark@3x.png", 43 | "appearances" : [ 44 | { 45 | "appearance" : "luminosity", 46 | "value" : "dark" 47 | } 48 | ], 49 | "scale" : "3x" 50 | } 51 | ], 52 | "info" : { 53 | "version" : 1, 54 | "author" : "xcode" 55 | } 56 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/error.imageset/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/error.imageset/error.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/error.imageset/error@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/error.imageset/error@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/error.imageset/error@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/error.imageset/error@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/error.imageset/errorDark@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/error.imageset/errorDark@1x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/error.imageset/errorDark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/error.imageset/errorDark@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/error.imageset/errorDark@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/error.imageset/errorDark@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/github.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Github.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Github@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Github@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/github.imageset/Github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/github.imageset/Github.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/github.imageset/Github@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/github.imageset/Github@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/github.imageset/Github@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/github.imageset/Github@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/helpLogo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Group 2 Copy.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Group 2 Copy@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Group 2 Copy@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/helpLogo.imageset/Group 2 Copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/helpLogo.imageset/Group 2 Copy.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/helpLogo.imageset/Group 2 Copy@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/helpLogo.imageset/Group 2 Copy@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/helpLogo.imageset/Group 2 Copy@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/helpLogo.imageset/Group 2 Copy@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/navBarExperiment.imageset/Back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/navBarExperiment.imageset/Back.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/navBarExperiment.imageset/Back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/navBarExperiment.imageset/Back@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/navBarExperiment.imageset/Back@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/navBarExperiment.imageset/Back@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/navBarExperiment.imageset/BackDark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/navBarExperiment.imageset/BackDark.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/navBarExperiment.imageset/BackDark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/navBarExperiment.imageset/BackDark@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/navBarExperiment.imageset/BackDark@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/navBarExperiment.imageset/BackDark@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/navBarShare.imageset/Group 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/navBarShare.imageset/Group 3.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/navBarShare.imageset/Group 3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/navBarShare.imageset/Group 3@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/navBarShare.imageset/Group 3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/navBarShare.imageset/Group 3@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/navBarShare.imageset/navBarShareDark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/navBarShare.imageset/navBarShareDark.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/navBarShare.imageset/navBarShareDark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/navBarShare.imageset/navBarShareDark@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/navBarShare.imageset/navBarShareDark@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/navBarShare.imageset/navBarShareDark@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/nextCircle.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "nextCircle.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "nextCircle@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "nextCircle@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/nextCircle.imageset/nextCircle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/nextCircle.imageset/nextCircle.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/nextCircle.imageset/nextCircle@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/nextCircle.imageset/nextCircle@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/nextCircle.imageset/nextCircle@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/nextCircle.imageset/nextCircle@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/nextRect.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "nextRect.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "nextRect@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "nextRect@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/nextRect.imageset/nextRect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/nextRect.imageset/nextRect.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/nextRect.imageset/nextRect@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/nextRect.imageset/nextRect@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/nextRect.imageset/nextRect@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/nextRect.imageset/nextRect@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/nextStar.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "nextStar.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "nextStar@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "nextStar@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/nextStar.imageset/nextStar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/nextStar.imageset/nextStar.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/nextStar.imageset/nextStar@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/nextStar.imageset/nextStar@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/nextStar.imageset/nextStar@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/nextStar.imageset/nextStar@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/nextTriangle.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "nextTriangle.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "nextTriangle@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "nextTriangle@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/nextTriangle.imageset/nextTriangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/nextTriangle.imageset/nextTriangle.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/nextTriangle.imageset/nextTriangle@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/nextTriangle.imageset/nextTriangle@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/nextTriangle.imageset/nextTriangle@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/nextTriangle.imageset/nextTriangle@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/reactivex.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Rx_Logo_S.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Rx_Logo_S@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Rx_Logo_S@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/reactivex.imageset/Rx_Logo_S.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/reactivex.imageset/Rx_Logo_S.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/reactivex.imageset/Rx_Logo_S@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/reactivex.imageset/Rx_Logo_S@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/reactivex.imageset/Rx_Logo_S@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/reactivex.imageset/Rx_Logo_S@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/timeLine.imageset/timeLine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/timeLine.imageset/timeLine.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/timeLine.imageset/timeLine@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/timeLine.imageset/timeLine@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/timeLine.imageset/timeLine@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/timeLine.imageset/timeLine@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/timelineExperiment.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Group 3.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Group 3@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Group 3@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/timelineExperiment.imageset/Group 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/timelineExperiment.imageset/Group 3.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/timelineExperiment.imageset/Group 3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/timelineExperiment.imageset/Group 3@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/timelineExperiment.imageset/Group 3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/timelineExperiment.imageset/Group 3@3x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/upArrow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Group 3.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Group 3@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Group 3@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/upArrow.imageset/Group 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/upArrow.imageset/Group 3.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/upArrow.imageset/Group 3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/upArrow.imageset/Group 3@2x.png -------------------------------------------------------------------------------- /RxMarbles/Assets.xcassets/upArrow.imageset/Group 3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Assets.xcassets/upArrow.imageset/Group 3@3x.png -------------------------------------------------------------------------------- /RxMarbles/ColoredType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ColoredType.swift 3 | // RxMarbles 4 | // 5 | // Created by Yury Korolev on 1/22/16. 6 | // Copyright © 2016 AnjLab. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | import RxSwift 12 | 13 | struct ColoredType: Equatable { 14 | var value: String 15 | var color: UIColor 16 | var shape: EventShape 17 | } 18 | 19 | func ==(lhs: ColoredType, rhs: ColoredType) -> Bool { 20 | return lhs.value == rhs.value && lhs.shape == rhs.shape 21 | } 22 | 23 | typealias RecordedType = Recorded> 24 | 25 | // Helper functions 26 | func next(_ time: Int, _ value: String, _ color: UIColor, _ shape: EventShape) -> RecordedType { 27 | return RecordedType(time: time, value: Event.next(ColoredType(value: value, color: color, shape: shape))) 28 | } 29 | 30 | func completed(_ time: Int) -> RecordedType { 31 | return RecordedType(time: time, value: .completed) 32 | } 33 | 34 | func error(_ time: Int) -> RecordedType { 35 | return RecordedType(time: time, value: Event.error(RxError.unknown)) 36 | } 37 | -------------------------------------------------------------------------------- /RxMarbles/Font.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Font.swift 3 | // RxMarbles 4 | // 5 | // Created by Yury Korolev on 2/13/16. 6 | // Copyright © 2016 AnjLab. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | enum FontFace: String { 13 | case monoRegular = "Menlo-Regular" 14 | case monoItalic = "Menlo-Italic" 15 | case monoBold = "Menlo-Bold" 16 | case monoBoldItalic = "Menlo-BoldItalic" 17 | case malayalamSangamMN = "MalayalamSangamMN" 18 | } 19 | 20 | struct Font { 21 | static func code(_ face:FontFace, size: CGFloat) -> UIFont { 22 | return UIFont(name: face.rawValue, size: size)! 23 | } 24 | 25 | static func text(_ size: CGFloat) -> UIFont { 26 | return UIFont.systemFont(ofSize: size) 27 | } 28 | 29 | static func boldText(_ size: CGFloat) -> UIFont { 30 | return UIFont.boldSystemFont(ofSize: size) 31 | } 32 | 33 | static func ultraLightText(_ size: CGFloat) -> UIFont { 34 | return UIFont.systemFont(ofSize: size, weight: UIFont.Weight.ultraLight) 35 | } 36 | 37 | static func monospacedRegularText(_ size: CGFloat) -> UIFont { 38 | return UIFont.monospacedDigitSystemFont(ofSize: size, weight: UIFont.Weight.regular) 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /RxMarbles/Notifications.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Names.swift 3 | // RxMarbles 4 | // 5 | // Created by Roman Tutubalin on 19.02.16. 6 | // Copyright © 2016 AnjLab. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | import RxSwift 12 | import RxCocoa 13 | 14 | enum Notifications: String { 15 | case setEventView 16 | case addEvent 17 | case openOperatorDescription 18 | case hideHelpWindow 19 | 20 | func post(center: NotificationCenter = NotificationCenter.default, object: AnyObject? = nil, userInfo: [AnyHashable: AnyObject]? = nil) { 21 | center.post(name: NSNotification.Name(rawValue: rawValue), object: object, userInfo: userInfo) 22 | } 23 | 24 | func rx(center: NotificationCenter = NotificationCenter.default, object: AnyObject? = nil) -> Observable { 25 | return center.rx.notification(Notification.Name(rawValue: rawValue), object: object) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /RxMarbles/RxTests/Any+Equatable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Any+Equatable.swift 3 | // RxTest 4 | // 5 | // Created by Krunoslav Zaher on 12/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// A way to use built in XCTest methods with objects that are partially equatable. 10 | /// 11 | /// If this can be done simpler, PRs are welcome :) 12 | struct AnyEquatable 13 | : Equatable { 14 | typealias Comparer = (Target, Target) -> Bool 15 | 16 | let _target: Target 17 | let _comparer: Comparer 18 | 19 | init(target: Target, comparer: @escaping Comparer) { 20 | _target = target 21 | _comparer = comparer 22 | } 23 | } 24 | 25 | func == (lhs: AnyEquatable, rhs: AnyEquatable) -> Bool { 26 | return lhs._comparer(lhs._target, rhs._target) 27 | } 28 | 29 | extension AnyEquatable 30 | : CustomDebugStringConvertible 31 | , CustomStringConvertible { 32 | var description: String { 33 | return "\(_target)" 34 | } 35 | 36 | var debugDescription: String { 37 | return "\(_target)" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /RxMarbles/RxTests/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 | -------------------------------------------------------------------------------- /RxMarbles/RxTests/EquatableArray.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EquatableArray.swift 3 | // RxTests 4 | // 5 | // Created by Krunoslav Zaher on 10/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct EquatableArray : Equatable { 12 | let elements: [Element] 13 | init(_ elements: [Element]) { 14 | self.elements = elements 15 | } 16 | } 17 | 18 | func == (lhs: EquatableArray, rhs: EquatableArray) -> Bool { 19 | return lhs.elements == rhs.elements 20 | } 21 | -------------------------------------------------------------------------------- /RxMarbles/RxTests/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 | -------------------------------------------------------------------------------- /RxMarbles/RxTests/TestableObservable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TestableObservable.swift 3 | // RxTest 4 | // 5 | // Created by Krunoslav Zaher on 12/28/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | /// Observable sequence that records subscription lifetimes and timestamped events sent to observers. 12 | public class TestableObservable 13 | : ObservableType { 14 | public typealias E = Element 15 | /// Subscriptions recorded during observable lifetime. 16 | public internal(set) var subscriptions: [Subscription] 17 | 18 | /// List of events to replay for all subscribers. 19 | /// 20 | /// Event times represent absolute `TestScheduler` time. 21 | public internal(set) var recordedEvents: [Recorded>] 22 | 23 | /// Parent test scheduler. 24 | internal let testScheduler: TestScheduler 25 | 26 | init(testScheduler: TestScheduler, recordedEvents: [Recorded>]) { 27 | self.testScheduler = testScheduler 28 | self.recordedEvents = recordedEvents 29 | self.subscriptions = [] 30 | } 31 | 32 | public func subscribe(_ observer: O) -> Disposable where O.E == Element { 33 | fatalError("Abstract method") 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /RxMarbles/RxTests/TestableObserver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TestableObserver.swift 3 | // RxTest 4 | // 5 | // Created by Krunoslav Zaher on 2/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | /// Observer that records events together with virtual time when they were received. 12 | public final class TestableObserver 13 | : ObserverType { 14 | public typealias Element = ElementType 15 | 16 | fileprivate let _scheduler: TestScheduler 17 | 18 | /// Recorded events. 19 | public fileprivate(set) var events = [Recorded>]() 20 | 21 | init(scheduler: TestScheduler) { 22 | _scheduler = scheduler 23 | } 24 | 25 | /// Notify observer about sequence event. 26 | /// 27 | /// - parameter event: Event that occurred. 28 | public func on(_ event: Event) { 29 | events.append(Recorded(time: _scheduler.clock, value: event)) 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /RxMarbles/Section.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Section.swift 3 | // RxMarbles 4 | // 5 | // Created by Asaf Baibekov on 23/11/2019. 6 | // Copyright © 2019 AnjLab. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct Section { 12 | var name: String 13 | var rows: [Operator] 14 | } 15 | -------------------------------------------------------------------------------- /RxMarbles/Settings.bundle/Root.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | StringsTable 6 | Root 7 | PreferenceSpecifiers 8 | 9 | 10 | Type 11 | PSToggleSwitchSpecifier 12 | Title 13 | Show intro 14 | Key 15 | show_intro 16 | DefaultValue 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /RxMarbles/Settings.bundle/en.lproj/Root.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RxSwiftCommunity/RxMarbles/319a5f4bd40f77edfed51e7e0440d420570f7d45/RxMarbles/Settings.bundle/en.lproj/Root.strings -------------------------------------------------------------------------------- /privacy-policy.md: -------------------------------------------------------------------------------- 1 | The Easiest to Understand Privacy Policy 2 | 3 | RxMarbles doesn't store your data. 4 | 5 | We do you use Crashlytics to grab crashes and fix them as soon as possible. 6 | - Crashlytics [Privacy Policy until April 27, 2018](https://try.crashlytics.com/terms/privacy-policy.pdf) 7 | 8 | If we were to change this in the future, we will always allow you to opt-in. 9 | 10 | That's all there is to understand. That was easy. 11 | --------------------------------------------------------------------------------