├── .DS_Store ├── .gitignore ├── .swiftlint.yml ├── .travis.yml ├── Development_vc.faber.PokeMap.mobileprovision ├── Gemfile ├── Gemfile.lock ├── LICENSE ├── Podfile ├── Podfile.lock ├── Pods ├── Alamofire │ ├── LICENSE │ ├── README.md │ └── Source │ │ ├── Alamofire.swift │ │ ├── Download.swift │ │ ├── Error.swift │ │ ├── Manager.swift │ │ ├── MultipartFormData.swift │ │ ├── NetworkReachabilityManager.swift │ │ ├── Notifications.swift │ │ ├── ParameterEncoding.swift │ │ ├── Request.swift │ │ ├── Response.swift │ │ ├── ResponseSerialization.swift │ │ ├── Result.swift │ │ ├── ServerTrustPolicy.swift │ │ ├── Stream.swift │ │ ├── Timeline.swift │ │ ├── Upload.swift │ │ └── Validation.swift ├── Cell+Rx │ ├── LICENSE │ ├── Pod │ │ └── Classes │ │ │ ├── DisposeBagReusable.swift │ │ │ ├── NSObject+Swizzle.swift │ │ │ ├── UICollectionReusableView+Rx.swift │ │ │ ├── UITableViewCell+Rx.swift │ │ │ └── UITableViewHeaderFooterView+Rx.swift │ └── README.md ├── 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 ├── DateTools │ ├── DateTools │ │ ├── DTConstants.h │ │ ├── DTConstants.m │ │ ├── DTError.h │ │ ├── DTError.m │ │ ├── DTTimePeriod.h │ │ ├── DTTimePeriod.m │ │ ├── DTTimePeriodChain.h │ │ ├── DTTimePeriodChain.m │ │ ├── DTTimePeriodCollection.h │ │ ├── DTTimePeriodCollection.m │ │ ├── DTTimePeriodGroup.h │ │ ├── DTTimePeriodGroup.m │ │ ├── DateTools.bundle │ │ │ ├── ar.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── bg.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── ca.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── cs.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── cy.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── da.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── de.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── en.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── es.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── eu.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── fi.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── fr.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── gre.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── gu.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── he.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── hi.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── hr.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── hu.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── id.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── is.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── it.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── ja.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── ko.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── lv.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── ms.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── nb.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── nl.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── pl.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── pt-PT.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── pt.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── ro.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── ru.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── sl.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── sv.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── th.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── tr.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── uk.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── vi.lproj │ │ │ │ └── DateTools.strings │ │ │ ├── zh-Hans.lproj │ │ │ │ └── DateTools.strings │ │ │ └── zh-Hant.lproj │ │ │ │ └── DateTools.strings │ │ ├── DateTools.h │ │ ├── NSDate+DateTools.h │ │ └── NSDate+DateTools.m │ ├── LICENSE │ └── README.md ├── 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 ├── MKMapView-ZoomLevel │ ├── LICENSE │ ├── MKMapView-ZoomLevel │ │ ├── MKMapView+ZoomLevel.h │ │ └── MKMapView+ZoomLevel.m │ └── README.md ├── Manifest.lock ├── Moya-ObjectMapper │ ├── LICENSE │ ├── README.md │ └── Source │ │ ├── Response+ObjectMapper.swift │ │ └── RxSwift │ │ └── Observable+ObjectMapper.swift ├── Moya │ ├── License.md │ ├── Readme.md │ └── Source │ │ ├── Endpoint.swift │ │ ├── Error.swift │ │ ├── Image.swift │ │ ├── Moya+Alamofire.swift │ │ ├── Moya.swift │ │ ├── Plugin.swift │ │ ├── Plugins │ │ ├── CredentialsPlugin.swift │ │ ├── NetworkActivityPlugin.swift │ │ └── NetworkLoggerPlugin.swift │ │ ├── Response.swift │ │ └── RxSwift │ │ ├── Moya+RxSwift.swift │ │ └── Observable+Moya.swift ├── NSObject+Rx │ ├── LICENSE │ ├── NSObject+Rx.swift │ └── Readme.md ├── ObjectMapper │ ├── LICENSE │ ├── ObjectMapper │ │ ├── Core │ │ │ ├── FromJSON.swift │ │ │ ├── Map.swift │ │ │ ├── Mappable.swift │ │ │ ├── Mapper.swift │ │ │ ├── Operators.swift │ │ │ └── ToJSON.swift │ │ └── Transforms │ │ │ ├── CustomDateFormatTransform.swift │ │ │ ├── DateFormatterTransform.swift │ │ │ ├── DateTransform.swift │ │ │ ├── EnumTransform.swift │ │ │ ├── ISO8601DateTransform.swift │ │ │ ├── NSDecimalNumberTransform.swift │ │ │ ├── TransformOf.swift │ │ │ ├── TransformType.swift │ │ │ └── URLTransform.swift │ └── README.md ├── Permission │ ├── LICENSE │ ├── README.md │ └── Source │ │ ├── Permission.swift │ │ ├── PermissionAlert.swift │ │ ├── PermissionButton.swift │ │ ├── PermissionSet.swift │ │ ├── PermissionStatus.swift │ │ ├── PermissionType.swift │ │ ├── PermissionTypes │ │ ├── AddressBook.swift │ │ ├── Bluetooth.swift │ │ ├── Camera.swift │ │ ├── Contacts.swift │ │ ├── Events.swift │ │ ├── Location.swift │ │ ├── LocationAlways.swift │ │ ├── LocationWhenInUse.swift │ │ ├── Microphone.swift │ │ ├── Motion.swift │ │ ├── Notifications.swift │ │ ├── Photos.swift │ │ └── Reminders.swift │ │ └── Supporting Files │ │ └── Utilities.swift ├── Pods.xcodeproj │ └── project.pbxproj ├── Result │ ├── LICENSE │ ├── README.md │ └── Result │ │ ├── Result.swift │ │ └── ResultType.swift ├── RxCocoa │ ├── LICENSE.md │ ├── README.md │ └── RxCocoa │ │ ├── Common │ │ ├── CLLocationManager+Rx.swift │ │ ├── CocoaUnits │ │ │ ├── ControlEvent.swift │ │ │ ├── ControlProperty.swift │ │ │ ├── Driver │ │ │ │ ├── ControlEvent+Driver.swift │ │ │ │ ├── ControlProperty+Driver.swift │ │ │ │ ├── Driver+Operators+arity.swift │ │ │ │ ├── Driver+Operators.swift │ │ │ │ ├── Driver+Subscription.swift │ │ │ │ ├── Driver.swift │ │ │ │ ├── ObservableConvertibleType+Driver.swift │ │ │ │ └── Variable+Driver.swift │ │ │ └── UIBindingObserver.swift │ │ ├── DelegateProxy.swift │ │ ├── DelegateProxyType.swift │ │ ├── KVORepresentable+CoreGraphics.swift │ │ ├── KVORepresentable+Swift.swift │ │ ├── KVORepresentable.swift │ │ ├── Logging.swift │ │ ├── NSLayoutConstraint+Rx.swift │ │ ├── Observable+Bind.swift │ │ ├── Observables │ │ │ ├── Implementations │ │ │ │ ├── ControlTarget.swift │ │ │ │ ├── DeallocObservable.swift │ │ │ │ ├── KVOObservable.swift │ │ │ │ ├── KVOObserver.swift │ │ │ │ └── MessageSentObserver.swift │ │ │ ├── NSNotificationCenter+Rx.swift │ │ │ ├── NSObject+Rx+KVORepresentable.swift │ │ │ ├── NSObject+Rx+RawRepresentable.swift │ │ │ ├── NSObject+Rx.swift │ │ │ └── NSURLSession+Rx.swift │ │ ├── Proxies │ │ │ └── RxCLLocationManagerDelegateProxy.swift │ │ ├── Reactive.swift │ │ ├── RxCocoa.swift │ │ ├── RxTarget.swift │ │ ├── RxTextInput.swift │ │ ├── SectionedViewDataSourceType.swift │ │ ├── _RX.h │ │ ├── _RX.m │ │ ├── _RXDelegateProxy.h │ │ ├── _RXDelegateProxy.m │ │ ├── _RXKVOObserver.h │ │ ├── _RXKVOObserver.m │ │ ├── _RXObjCRuntime.h │ │ └── _RXObjCRuntime.m │ │ ├── RxCocoa.h │ │ └── iOS │ │ ├── DataSources │ │ ├── RxCollectionViewReactiveArrayDataSource.swift │ │ └── RxTableViewReactiveArrayDataSource.swift │ │ ├── Events │ │ └── ItemEvents.swift │ │ ├── NSTextStorage+Rx.swift │ │ ├── Protocols │ │ ├── RxCollectionViewDataSourceType.swift │ │ └── RxTableViewDataSourceType.swift │ │ ├── Proxies │ │ ├── RxCollectionViewDataSourceProxy.swift │ │ ├── RxCollectionViewDelegateProxy.swift │ │ ├── RxImagePickerDelegateProxy.swift │ │ ├── RxPickerViewDelegateProxy.swift │ │ ├── RxScrollViewDelegateProxy.swift │ │ ├── RxSearchBarDelegateProxy.swift │ │ ├── RxSearchControllerDelegateProxy.swift │ │ ├── RxTabBarDelegateProxy.swift │ │ ├── RxTableViewDataSourceProxy.swift │ │ ├── RxTableViewDelegateProxy.swift │ │ ├── RxTextStorageDelegateProxy.swift │ │ └── RxTextViewDelegateProxy.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 │ │ ├── UIImagePickerController+Rx.swift │ │ ├── UIImageView+Rx.swift │ │ ├── UILabel+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 │ │ ├── UITabBarItem+Rx.swift │ │ ├── UITableView+Rx.swift │ │ ├── UITextField+Rx.swift │ │ ├── UITextView+Rx.swift │ │ ├── UIView+Rx.swift │ │ └── UIViewController+Rx.swift ├── RxOptional │ ├── LICENSE │ ├── README.md │ └── Source │ │ ├── Driver+Occupiable.swift │ │ ├── Driver+Optional.swift │ │ ├── Observable+Occupiable.swift │ │ ├── Observable+Optional.swift │ │ ├── Occupiable.swift │ │ ├── OptionalType.swift │ │ └── RxOptionalError.swift ├── RxSwift │ ├── LICENSE.md │ ├── README.md │ └── RxSwift │ │ ├── AnyObserver.swift │ │ ├── Cancelable.swift │ │ ├── Concurrency │ │ ├── AsyncLock.swift │ │ ├── Lock.swift │ │ ├── LockOwnerType.swift │ │ ├── SynchronizedDisposeType.swift │ │ ├── SynchronizedOnType.swift │ │ ├── SynchronizedSubscribeType.swift │ │ └── SynchronizedUnsubscribeType.swift │ │ ├── ConnectableObservableType.swift │ │ ├── DataStructures │ │ ├── Bag.swift │ │ ├── InfiniteSequence.swift │ │ ├── PriorityQueue.swift │ │ └── Queue.swift │ │ ├── Disposable.swift │ │ ├── Disposables │ │ ├── AnonymousDisposable.swift │ │ ├── BinaryDisposable.swift │ │ ├── BooleanDisposable.swift │ │ ├── CompositeDisposable.swift │ │ ├── DisposeBag.swift │ │ ├── DisposeBase.swift │ │ ├── NAryDisposable.swift │ │ ├── NopDisposable.swift │ │ ├── RefCountDisposable.swift │ │ ├── ScheduledDisposable.swift │ │ ├── SerialDisposable.swift │ │ ├── SingleAssignmentDisposable.swift │ │ ├── StableCompositeDisposable.swift │ │ └── SubscriptionDisposable.swift │ │ ├── Errors.swift │ │ ├── Event.swift │ │ ├── Extensions │ │ └── String+Rx.swift │ │ ├── ImmediateSchedulerType.swift │ │ ├── Observable+Extensions.swift │ │ ├── Observable.swift │ │ ├── ObservableConvertibleType.swift │ │ ├── ObservableType.swift │ │ ├── Observables │ │ ├── Implementations │ │ │ ├── AddRef.swift │ │ │ ├── Amb.swift │ │ │ ├── AnonymousObservable.swift │ │ │ ├── Buffer.swift │ │ │ ├── Catch.swift │ │ │ ├── CombineLatest+CollectionType.swift │ │ │ ├── CombineLatest+arity.swift │ │ │ ├── CombineLatest.swift │ │ │ ├── Concat.swift │ │ │ ├── ConnectableObservable.swift │ │ │ ├── Debug.swift │ │ │ ├── Deferred.swift │ │ │ ├── DelaySubscription.swift │ │ │ ├── DistinctUntilChanged.swift │ │ │ ├── Do.swift │ │ │ ├── ElementAt.swift │ │ │ ├── Empty.swift │ │ │ ├── Error.swift │ │ │ ├── Filter.swift │ │ │ ├── Generate.swift │ │ │ ├── Just.swift │ │ │ ├── Map.swift │ │ │ ├── Merge.swift │ │ │ ├── Multicast.swift │ │ │ ├── Never.swift │ │ │ ├── ObserveOn.swift │ │ │ ├── ObserveOnSerialDispatchQueue.swift │ │ │ ├── Producer.swift │ │ │ ├── Range.swift │ │ │ ├── Reduce.swift │ │ │ ├── RefCount.swift │ │ │ ├── Repeat.swift │ │ │ ├── RetryWhen.swift │ │ │ ├── Sample.swift │ │ │ ├── Scan.swift │ │ │ ├── Sequence.swift │ │ │ ├── ShareReplay1.swift │ │ │ ├── ShareReplay1WhileConnected.swift │ │ │ ├── SingleAsync.swift │ │ │ ├── Sink.swift │ │ │ ├── Skip.swift │ │ │ ├── SkipUntil.swift │ │ │ ├── SkipWhile.swift │ │ │ ├── StartWith.swift │ │ │ ├── SubscribeOn.swift │ │ │ ├── Switch.swift │ │ │ ├── Take.swift │ │ │ ├── TakeLast.swift │ │ │ ├── TakeUntil.swift │ │ │ ├── TakeWhile.swift │ │ │ ├── Throttle.swift │ │ │ ├── Timeout.swift │ │ │ ├── Timer.swift │ │ │ ├── ToArray.swift │ │ │ ├── Using.swift │ │ │ ├── Window.swift │ │ │ ├── WithLatestFrom.swift │ │ │ ├── Zip+CollectionType.swift │ │ │ ├── Zip+arity.swift │ │ │ └── Zip.swift │ │ ├── Observable+Aggregate.swift │ │ ├── Observable+Binding.swift │ │ ├── Observable+Concurrency.swift │ │ ├── Observable+Creation.swift │ │ ├── Observable+Debug.swift │ │ ├── Observable+Multiple.swift │ │ ├── Observable+Single.swift │ │ ├── Observable+StandardSequenceOperators.swift │ │ └── Observable+Time.swift │ │ ├── ObserverType.swift │ │ ├── Observers │ │ ├── AnonymousObserver.swift │ │ ├── ObserverBase.swift │ │ └── TailRecursiveSink.swift │ │ ├── Platform │ │ ├── Platform.Darwin.swift │ │ └── Platform.Linux.swift │ │ ├── Rx.swift │ │ ├── RxMutableBox.swift │ │ ├── SchedulerType.swift │ │ ├── Schedulers │ │ ├── ConcurrentDispatchQueueScheduler.swift │ │ ├── ConcurrentMainScheduler.swift │ │ ├── CurrentThreadScheduler.swift │ │ ├── DispatchQueueSchedulerQOS.swift │ │ ├── HistoricalScheduler.swift │ │ ├── HistoricalSchedulerTimeConverter.swift │ │ ├── ImmediateScheduler.swift │ │ ├── Internal │ │ │ ├── AnonymousInvocable.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 │ │ ├── BehaviorSubject.swift │ │ ├── PublishSubject.swift │ │ ├── ReplaySubject.swift │ │ ├── SubjectType.swift │ │ └── Variable.swift ├── SDWebImage │ ├── LICENSE │ ├── README.md │ └── SDWebImage │ │ ├── MKAnnotationView+WebCache.h │ │ ├── MKAnnotationView+WebCache.m │ │ ├── NSData+ImageContentType.h │ │ ├── NSData+ImageContentType.m │ │ ├── SDImageCache.h │ │ ├── SDImageCache.m │ │ ├── SDWebImageCompat.h │ │ ├── SDWebImageCompat.m │ │ ├── SDWebImageDecoder.h │ │ ├── SDWebImageDecoder.m │ │ ├── SDWebImageDownloader.h │ │ ├── SDWebImageDownloader.m │ │ ├── SDWebImageDownloaderOperation.h │ │ ├── SDWebImageDownloaderOperation.m │ │ ├── SDWebImageManager.h │ │ ├── SDWebImageManager.m │ │ ├── SDWebImageOperation.h │ │ ├── SDWebImagePrefetcher.h │ │ ├── SDWebImagePrefetcher.m │ │ ├── UIButton+WebCache.h │ │ ├── UIButton+WebCache.m │ │ ├── UIImage+GIF.h │ │ ├── UIImage+GIF.m │ │ ├── UIImage+MultiFormat.h │ │ ├── UIImage+MultiFormat.m │ │ ├── UIImageView+HighlightedWebCache.h │ │ ├── UIImageView+HighlightedWebCache.m │ │ ├── UIImageView+WebCache.h │ │ ├── UIImageView+WebCache.m │ │ ├── UIView+WebCacheOperation.h │ │ └── UIView+WebCacheOperation.m └── Target Support Files │ ├── Alamofire │ ├── Alamofire-dummy.m │ ├── Alamofire-prefix.pch │ ├── Alamofire-umbrella.h │ ├── Alamofire.modulemap │ ├── Alamofire.xcconfig │ └── Info.plist │ ├── Cell+Rx │ ├── Cell+Rx-dummy.m │ ├── Cell+Rx-prefix.pch │ ├── Cell+Rx-umbrella.h │ ├── Cell+Rx.modulemap │ ├── Cell+Rx.xcconfig │ └── Info.plist │ ├── DateTools │ ├── DateTools-dummy.m │ ├── DateTools-prefix.pch │ ├── DateTools-umbrella.h │ ├── DateTools.modulemap │ ├── DateTools.xcconfig │ └── Info.plist │ ├── MKMapView-ZoomLevel │ ├── Info.plist │ ├── MKMapView-ZoomLevel-dummy.m │ ├── MKMapView-ZoomLevel-prefix.pch │ ├── MKMapView-ZoomLevel-umbrella.h │ ├── MKMapView-ZoomLevel.modulemap │ └── MKMapView-ZoomLevel.xcconfig │ ├── Moya-ObjectMapper │ ├── Info.plist │ ├── Moya-ObjectMapper-dummy.m │ ├── Moya-ObjectMapper-prefix.pch │ ├── Moya-ObjectMapper-umbrella.h │ ├── Moya-ObjectMapper.modulemap │ └── Moya-ObjectMapper.xcconfig │ ├── Moya │ ├── Info.plist │ ├── Moya-dummy.m │ ├── Moya-prefix.pch │ ├── Moya-umbrella.h │ ├── Moya.modulemap │ └── Moya.xcconfig │ ├── NSObject+Rx │ ├── Info.plist │ ├── NSObject+Rx-dummy.m │ ├── NSObject+Rx-prefix.pch │ ├── NSObject+Rx-umbrella.h │ ├── NSObject+Rx.modulemap │ └── NSObject+Rx.xcconfig │ ├── ObjectMapper │ ├── Info.plist │ ├── ObjectMapper-dummy.m │ ├── ObjectMapper-prefix.pch │ ├── ObjectMapper-umbrella.h │ ├── ObjectMapper.modulemap │ └── ObjectMapper.xcconfig │ ├── Permission │ ├── Info.plist │ ├── Permission-dummy.m │ ├── Permission-prefix.pch │ ├── Permission-umbrella.h │ ├── Permission.modulemap │ └── Permission.xcconfig │ ├── Pods-PokeMap │ ├── Info.plist │ ├── Pods-PokeMap-acknowledgements.markdown │ ├── Pods-PokeMap-acknowledgements.plist │ ├── Pods-PokeMap-dummy.m │ ├── Pods-PokeMap-frameworks.sh │ ├── Pods-PokeMap-resources.sh │ ├── Pods-PokeMap-umbrella.h │ ├── Pods-PokeMap.debug.xcconfig │ ├── Pods-PokeMap.modulemap │ └── Pods-PokeMap.release.xcconfig │ ├── Result │ ├── Info.plist │ ├── Result-dummy.m │ ├── Result-prefix.pch │ ├── Result-umbrella.h │ ├── Result.modulemap │ └── Result.xcconfig │ ├── RxCocoa │ ├── Info.plist │ ├── RxCocoa-dummy.m │ ├── RxCocoa-prefix.pch │ ├── RxCocoa-umbrella.h │ ├── RxCocoa.modulemap │ └── RxCocoa.xcconfig │ ├── RxOptional │ ├── Info.plist │ ├── RxOptional-dummy.m │ ├── RxOptional-prefix.pch │ ├── RxOptional-umbrella.h │ ├── RxOptional.modulemap │ └── RxOptional.xcconfig │ ├── RxSwift │ ├── Info.plist │ ├── RxSwift-dummy.m │ ├── RxSwift-prefix.pch │ ├── RxSwift-umbrella.h │ ├── RxSwift.modulemap │ └── RxSwift.xcconfig │ └── SDWebImage │ ├── Info.plist │ ├── SDWebImage-dummy.m │ ├── SDWebImage-prefix.pch │ ├── SDWebImage-umbrella.h │ ├── SDWebImage.modulemap │ └── SDWebImage.xcconfig ├── PokeMap.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ └── contents.xcworkspacedata └── xcuserdata │ └── ivanbruel.xcuserdatad │ └── xcschemes │ ├── PokeMap.xcscheme │ └── xcschememanagement.plist ├── PokeMap.xcworkspace └── contents.xcworkspacedata ├── PokeMap ├── AppDelegate │ └── AppDelegate.swift ├── Extensions │ ├── Array+Unique.swift │ ├── NSObject+ClassName.swift │ └── NSTimer+Rx.swift ├── Globals │ └── Globals.swift ├── Helpers │ ├── FileReader.swift │ ├── JSONHelper.swift │ ├── JSONReader.swift │ ├── LocationHelper.swift │ ├── Observable+Void.swift │ └── PokedexHelper.swift ├── Model │ ├── Pokemon.swift │ ├── ScanJob.swift │ └── Transforms │ │ └── EpochDateTransform.swift ├── Network │ ├── API.swift │ ├── Network.swift │ └── Response+PokeVision.swift ├── Protocols │ └── ReusableCell.swift ├── Resources │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ ├── Info.plist │ ├── JSON │ │ ├── Pokedex.json │ │ ├── Pokemons.json │ │ ├── RarePokemons.json │ │ └── Scan.json │ └── LocationFiles │ │ └── oeiras.gpx ├── View Controllers │ ├── Base.lproj │ │ └── Main.storyboard │ ├── MapViewController.swift │ └── WatchlistViewController.swift ├── ViewModels │ ├── Map │ │ ├── PokemonMapItemViewModel.swift │ │ └── PokemonMapViewModel.swift │ └── Watchlist │ │ ├── PokemonWatchlistItemViewModel.swift │ │ └── PokemonWatchlistViewModel.swift └── Views │ ├── Annotations │ └── PokemonAnnotation.swift │ └── Cells │ └── WatchlistTableViewCell.swift ├── PokeMapTests ├── Info.plist └── PokeMapTests.swift ├── README.md ├── Resources ├── MapScreenshot.png └── WatchlistScreenshot.png └── fastlane ├── Appfile ├── Deliverfile ├── Fastfile ├── README.md ├── Scanfile ├── Snapfile ├── SnapshotHelper.swift └── metadata ├── copyright.txt ├── en-US ├── description.txt ├── keywords.txt ├── marketing_url.txt ├── name.txt ├── privacy_url.txt ├── release_notes.txt └── support_url.txt ├── primary_category.txt ├── primary_first_sub_category.txt ├── primary_second_sub_category.txt ├── secondary_category.txt ├── secondary_first_sub_category.txt └── secondary_second_sub_category.txt /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/.DS_Store -------------------------------------------------------------------------------- /.swiftlint.yml: -------------------------------------------------------------------------------- 1 | excluded: 2 | - PokeMap/Externals 3 | - PokeMap/Resources 4 | - Pods 5 | - PokeMapTests 6 | - fastlane 7 | -------------------------------------------------------------------------------- /Development_vc.faber.PokeMap.mobileprovision: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/Development_vc.faber.PokeMap.mobileprovision -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'cocoapods' 4 | gem 'cocoapods-deintegrate' 5 | gem 'fastlane' 6 | gem 'synx' 7 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 PokeMapCommunity 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 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment this line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | target 'PokeMap' do 5 | # Comment this line if you're not using Swift and don't want to use dynamic frameworks 6 | use_frameworks! 7 | 8 | # Pods for PokeMap 9 | pod 'Moya-ObjectMapper/RxSwift' 10 | pod 'DateTools' 11 | pod 'SDWebImage/MapKit' 12 | pod 'NSObject+Rx' 13 | pod 'Permission' 14 | pod 'RxCocoa' 15 | pod 'Cell+Rx' 16 | pod 'RxOptional' 17 | pod 'MKMapView-ZoomLevel' 18 | pod 'Fabric' 19 | pod 'Crashlytics' 20 | 21 | end 22 | -------------------------------------------------------------------------------- /Pods/Alamofire/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014-2016 Alamofire Software Foundation (http://alamofire.org/) 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/Cell+Rx/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Ivan Bruel 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 | 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /Pods/Cell+Rx/Pod/Classes/NSObject+Swizzle.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSObject+Swizzle.swift 3 | // Pods 4 | // 5 | // Created by sergdort on 5/11/16. 6 | // 7 | // 8 | 9 | import Foundation 10 | import ObjectiveC 11 | 12 | extension NSObject { 13 | class func swizzleMethodForSelector(originalSelector: Selector, 14 | withMethodForSelector swizzledSelector: Selector) { 15 | let originalMethod = class_getInstanceMethod(self, originalSelector) 16 | let swizzledMethod = class_getInstanceMethod(self, swizzledSelector) 17 | 18 | let didAddMethod = class_addMethod(self, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod)) 19 | 20 | if didAddMethod { 21 | class_replaceMethod(self, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod)) 22 | } else { 23 | method_exchangeImplementations(originalMethod, swizzledMethod) 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /Pods/Cell+Rx/Pod/Classes/UICollectionReusableView+Rx.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import RxSwift 3 | import ObjectiveC 4 | 5 | public extension UICollectionReusableView { 6 | 7 | func rx_prepareForReuse() { 8 | self.rx_prepareForReuse() 9 | rx_reusableDisposeBag = DisposeBag() 10 | } 11 | 12 | public override class func initialize() { 13 | struct Static { 14 | static var token: dispatch_once_t = 0 15 | } 16 | // make sure this isn't a subclass 17 | if self !== UICollectionReusableView.self { 18 | return 19 | } 20 | dispatch_once(&Static.token) { 21 | self.swizzleMethodForSelector(#selector(self.prepareForReuse), 22 | withMethodForSelector: #selector(self.rx_prepareForReuse)) 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Pods/Cell+Rx/Pod/Classes/UITableViewCell+Rx.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import RxSwift 3 | import ObjectiveC 4 | 5 | public extension UITableViewCell { 6 | 7 | func rx_prepareForReuse() { 8 | self.rx_prepareForReuse() 9 | rx_reusableDisposeBag = DisposeBag() 10 | } 11 | 12 | public override class func initialize() { 13 | struct Static { 14 | static var token: dispatch_once_t = 0 15 | } 16 | // make sure this isn't a subclass 17 | if self !== UITableViewCell.self { 18 | return 19 | } 20 | dispatch_once(&Static.token) { 21 | self.swizzleMethodForSelector(#selector(self.prepareForReuse), 22 | withMethodForSelector: #selector(self.rx_prepareForReuse)) 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Pods/Cell+Rx/Pod/Classes/UITableViewHeaderFooterView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UITableViewHeaderFooterView+Rx.swift 3 | // Pods 4 | // 5 | // Created by sergdort on 5/11/16. 6 | // 7 | // 8 | 9 | import UIKit 10 | import ObjectiveC 11 | import RxSwift 12 | 13 | extension UITableViewHeaderFooterView { 14 | func rx_prepareForReuse() { 15 | self.rx_prepareForReuse() 16 | rx_reusableDisposeBag = DisposeBag() 17 | } 18 | 19 | public override class func initialize() { 20 | struct Static { 21 | static var token: dispatch_once_t = 0 22 | } 23 | // make sure this isn't a subclass 24 | if self !== UITableViewHeaderFooterView.self { 25 | return 26 | } 27 | dispatch_once(&Static.token) { 28 | self.swizzleMethodForSelector(#selector(self.prepareForReuse), 29 | withMethodForSelector: #selector(self.rx_prepareForReuse)) 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Pods/Cell+Rx/README.md: -------------------------------------------------------------------------------- 1 | Cell+Rx 2 | =========== 3 | 4 | **Cell+Rx** provides a similar API to [NSObject+Rx](https://github.com/RxSwiftCommunity/NSObject-Rx) but for cells who are reused along the way. 5 | 6 | I found myself creating `DisposeBag`s that were reset on the `prepareForReuse()` function which was pretty repetitive. 7 | 8 | Instead of adding a new property to every cell, use this library to add it for you, to any subclass of `UITableViewCell` or `UICollectionViewCell`. 9 | 10 | ```swift 11 | thing 12 | .bindTo(otherThing) 13 | .addDisposableTo(rx_reusableDisposeBag) 14 | ``` 15 | 16 | It'll work just like a property: when the instance is deinit'd, the `DisposeBag` gets disposed. It will also reset whenever the cell is reused by detecting `prepareForReuse()` calls. It's also a read/write property, so you can use your own, too. 17 | 18 | Installing 19 | ---------- 20 | 21 | ####CocoaPods 22 | 23 | This works with RxSwift version 2, which is still prerelease, so you've gotta be fancy with your podfile. 24 | 25 | ```ruby 26 | pod 'Cell+Rx' 27 | ``` 28 | 29 | And that'll be 👌 30 | 31 | License 32 | ------- 33 | 34 | MIT License. 35 | -------------------------------------------------------------------------------- /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/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/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/Headers/CLSStackFrame.h: -------------------------------------------------------------------------------- 1 | // 2 | // CLSStackFrame.h 3 | // Crashlytics 4 | // 5 | // Copyright 2015 Crashlytics, Inc. All rights reserved. 6 | // 7 | 8 | #import 9 | #import "CLSAttributes.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /** 14 | * 15 | * This class is used in conjunction with -[Crashlytics recordCustomExceptionName:reason:frameArray:] to 16 | * record information about non-ObjC/C++ exceptions. All information included here will be displayed 17 | * in the Crashlytics UI, and can influence crash grouping. Be particularly careful with the use of the 18 | * address property. If set, Crashlytics will attempt symbolication and could overwrite other properities 19 | * in the process. 20 | * 21 | **/ 22 | @interface CLSStackFrame : NSObject 23 | 24 | + (instancetype)stackFrame; 25 | + (instancetype)stackFrameWithAddress:(NSUInteger)address; 26 | + (instancetype)stackFrameWithSymbol:(NSString *)symbol; 27 | 28 | @property (nonatomic, copy, nullable) NSString *symbol; 29 | @property (nonatomic, copy, nullable) NSString *rawSymbol; 30 | @property (nonatomic, copy, nullable) NSString *library; 31 | @property (nonatomic, copy, nullable) NSString *fileName; 32 | @property (nonatomic, assign) uint32_t lineNumber; 33 | @property (nonatomic, assign) uint64_t offset; 34 | @property (nonatomic, assign) uint64_t address; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /Pods/Crashlytics/iOS/Crashlytics.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/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/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/Pods/Crashlytics/iOS/Crashlytics.framework/submit -------------------------------------------------------------------------------- /Pods/Crashlytics/iOS/Crashlytics.framework/uploadDSYM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/Pods/Crashlytics/iOS/Crashlytics.framework/uploadDSYM -------------------------------------------------------------------------------- /Pods/Crashlytics/submit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/Pods/Crashlytics/submit -------------------------------------------------------------------------------- /Pods/DateTools/DateTools/DateTools.bundle/ar.lproj/DateTools.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/Pods/DateTools/DateTools/DateTools.bundle/ar.lproj/DateTools.strings -------------------------------------------------------------------------------- /Pods/DateTools/DateTools/DateTools.bundle/gre.lproj/DateTools.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/Pods/DateTools/DateTools/DateTools.bundle/gre.lproj/DateTools.strings -------------------------------------------------------------------------------- /Pods/DateTools/DateTools/DateTools.bundle/hr.lproj/DateTools.strings: -------------------------------------------------------------------------------- 1 | /* No comment provided by engineer. */ 2 | "%d days ago" = "%d dana”; 3 | 4 | /* No comment provided by engineer. */ 5 | "%d hours ago" = "%d prime sati”; 6 | 7 | /* No comment provided by engineer. */ 8 | "%d minutes ago" = "%d prije minuta”; 9 | 10 | /* No comment provided by engineer. */ 11 | "%d months ago" = "%d prije nekoliko mjeseci”; 12 | 13 | /* No comment provided by engineer. */ 14 | "%d seconds ago" = "%d sekunde prije”; 15 | 16 | /* No comment provided by engineer. */ 17 | "%d weeks ago" = "%d prije nekoliko tjedana”; 18 | 19 | /* No comment provided by engineer. */ 20 | "%d years ago" = "%d prije nekoliko godina”; 21 | 22 | /* No comment provided by engineer. */ 23 | "A minute ago" = “prije minute"; 24 | 25 | /* No comment provided by engineer. */ 26 | "An hour ago" = “prije sat vremena”; 27 | 28 | /* No comment provided by engineer. */ 29 | "Just now" = “upravo sada”; 30 | 31 | /* No comment provided by engineer. */ 32 | "Last month" = “prosli mjesec”; 33 | 34 | /* No comment provided by engineer. */ 35 | "Last week" = "prosli tjedan”; 36 | 37 | /* No comment provided by engineer. */ 38 | "Last year" = "prosle godine”; 39 | 40 | /* No comment provided by engineer. */ 41 | "Yesterday" = “jucer”; 42 | 43 | /* No comment provided by engineer. */ 44 | "1 year ago" = “Prije 1 godina”; 45 | -------------------------------------------------------------------------------- /Pods/DateTools/DateTools/DateTools.bundle/lv.lproj/DateTools.strings: -------------------------------------------------------------------------------- 1 | "1 year ago" = "Pirms gada"; 2 | "1 month ago" = "Pirms mēneša"; 3 | "1 week ago" = "Pirms nedēļas"; 4 | "1 day ago" = "Pirms dienas"; 5 | "A minute ago" = "Pirms minūtes"; 6 | "An hour ago" = "Pirms stundas"; 7 | "Last month" = "Pagājušajā mēnesī"; 8 | "Last week" = "Pagājušajā nedēļā"; 9 | "Last year" = "Pagājušajā gadā"; 10 | "Just now" = "Tikko"; 11 | "Today" = "Šodien"; 12 | "Yesterday" = "Vakar"; 13 | "This morning" = "Šorīt"; 14 | "This afternoon" = "Pēcpusdienā"; 15 | "This week" = "Šonedēļ"; 16 | "This month" = "Šomēnes"; 17 | "This year" = "Šogad"; 18 | "%d seconds ago" = "Pirms %d sekundēm"; 19 | "%d minutes ago" = "Pirms %d minūtēm"; 20 | "%d hours ago" = "Pirms %d stundām"; 21 | "%d days ago" = "Pirms %d dienām"; 22 | "%d weeks ago" = "Pirms %d nedēļām"; 23 | "%d months ago" = "Pirms %d mēnešiem"; 24 | "%d years ago" = "Pirms %d gadiem"; 25 | -------------------------------------------------------------------------------- /Pods/DateTools/DateTools/DateTools.bundle/sv.lproj/DateTools.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/Pods/DateTools/DateTools/DateTools.bundle/sv.lproj/DateTools.strings -------------------------------------------------------------------------------- /Pods/DateTools/DateTools/DateTools.bundle/th.lproj/DateTools.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/Pods/DateTools/DateTools/DateTools.bundle/th.lproj/DateTools.strings -------------------------------------------------------------------------------- /Pods/DateTools/DateTools/DateTools.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2014 by Matthew York 2 | // 3 | // Permission is hereby granted, free of charge, to any 4 | // person obtaining a copy of this software and 5 | // associated documentation files (the "Software"), to 6 | // deal in the Software without restriction, including 7 | // without limitation the rights to use, copy, modify, merge, 8 | // publish, distribute, sublicense, and/or sell copies of the 9 | // 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 13 | // be included in all copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 19 | // BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 20 | // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | 23 | #import "DTConstants.h" 24 | #import "DTError.h" 25 | #import "NSDate+DateTools.h" 26 | #import "DTTimePeriod.h" 27 | #import "DTTimePeriodGroup.h" 28 | #import "DTTimePeriodCollection.h" 29 | #import "DTTimePeriodChain.h" -------------------------------------------------------------------------------- /Pods/DateTools/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Matthew York 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. -------------------------------------------------------------------------------- /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/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/Pods/Fabric/iOS/Fabric.framework/Fabric -------------------------------------------------------------------------------- /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/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/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/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/Pods/Fabric/upload-symbols -------------------------------------------------------------------------------- /Pods/Fabric/uploadDSYM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/Pods/Fabric/uploadDSYM -------------------------------------------------------------------------------- /Pods/MKMapView-ZoomLevel/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012-2013, Kjuly 2 | 3 | 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: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | 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. 8 | -------------------------------------------------------------------------------- /Pods/MKMapView-ZoomLevel/README.md: -------------------------------------------------------------------------------- 1 | MKMapView-ZoomLevel 2 | =================== 3 | 4 | MKMapView category with zoom level. 5 | 6 | Based on http://troybrant.net/blog/2010/01/set-the-zoom-level-of-an-mkmapview 7 | -------------------------------------------------------------------------------- /Pods/Moya-ObjectMapper/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Ivan Bruel 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/Moya-ObjectMapper/Source/Response+ObjectMapper.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Observable+ObjectMapper.swift 3 | // 4 | // Created by Ivan Bruel on 09/12/15. 5 | // Copyright © 2015 Ivan Bruel. All rights reserved. 6 | // 7 | 8 | import Foundation 9 | import Moya 10 | import ObjectMapper 11 | 12 | public extension Response { 13 | 14 | /// Maps data received from the signal into an object which implements the Mappable protocol. 15 | /// If the conversion fails, the signal errors. 16 | public func mapObject(type: T.Type) throws -> T { 17 | guard let object = Mapper().map(try mapJSON()) else { 18 | throw Error.JSONMapping(self) 19 | } 20 | return object 21 | } 22 | 23 | /// Maps data received from the signal into an array of objects which implement the Mappable 24 | /// protocol. 25 | /// If the conversion fails, the signal errors. 26 | public func mapArray(type: T.Type) throws -> [T] { 27 | guard let objects = Mapper().mapArray(try mapJSON()) else { 28 | throw Error.JSONMapping(self) 29 | } 30 | return objects 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Pods/Moya-ObjectMapper/Source/RxSwift/Observable+ObjectMapper.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Observable+MoyaObjectMapper.swift 3 | // 4 | // Created by Ivan Bruel on 09/12/15. 5 | // Copyright © 2015 Ivan Bruel. All rights reserved. 6 | // 7 | 8 | import Foundation 9 | import RxSwift 10 | import Moya 11 | import ObjectMapper 12 | 13 | /// Extension for processing Responses into Mappable objects through ObjectMapper 14 | public extension ObservableType where E == Response { 15 | 16 | /// Maps data received from the signal into an object 17 | /// which implements the Mappable protocol and returns the result back 18 | /// If the conversion fails, the signal errors. 19 | public func mapObject(type: T.Type) -> Observable { 20 | return flatMap { response -> Observable in 21 | return Observable.just(try response.mapObject(T)) 22 | } 23 | } 24 | 25 | /// Maps data received from the signal into an array of objects 26 | /// which implement the Mappable protocol and returns the result back 27 | /// If the conversion fails, the signal errors. 28 | public func mapArray(type: T.Type) -> Observable<[T]> { 29 | return flatMap { response -> Observable<[T]> in 30 | return Observable.just(try response.mapArray(T)) 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Pods/Moya/License.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Artsy, Ash Furrow 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 | -------------------------------------------------------------------------------- /Pods/Moya/Source/Error.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public enum Error: ErrorType { 4 | case ImageMapping(Response) 5 | case JSONMapping(Response) 6 | case StringMapping(Response) 7 | case StatusCode(Response) 8 | case Data(Response) 9 | case Underlying(NSError) 10 | } 11 | 12 | public extension Moya.Error { 13 | /// Depending on error type, returns a Response object. 14 | var response: Moya.Response? { 15 | switch self { 16 | case .ImageMapping(let response): return response 17 | case .JSONMapping(let response): return response 18 | case .StringMapping(let response): return response 19 | case .StatusCode(let response): return response 20 | case .Data(let response): return response 21 | case .Underlying: return nil 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Pods/Moya/Source/Image.swift: -------------------------------------------------------------------------------- 1 | #if os(iOS) || os(watchOS) || os(tvOS) 2 | import UIKit.UIImage 3 | public typealias ImageType = UIImage 4 | #elseif os(OSX) 5 | import AppKit.NSImage 6 | public typealias ImageType = NSImage 7 | #endif 8 | 9 | public typealias Image = ImageType 10 | -------------------------------------------------------------------------------- /Pods/Moya/Source/Plugins/CredentialsPlugin.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import Result 3 | 4 | /// Provides each request with optional NSURLCredentials. 5 | public final class CredentialsPlugin: PluginType { 6 | 7 | public typealias CredentialClosure = TargetType -> NSURLCredential? 8 | let credentialsClosure: CredentialClosure 9 | 10 | public init(credentialsClosure: CredentialClosure) { 11 | self.credentialsClosure = credentialsClosure 12 | } 13 | 14 | // MARK: Plugin 15 | 16 | public func willSendRequest(request: RequestType, target: TargetType) { 17 | if let credentials = credentialsClosure(target) { 18 | request.authenticate(usingCredential: credentials) 19 | } 20 | } 21 | 22 | public func didReceiveResponse(result: Result, target: TargetType) { 23 | 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Pods/Moya/Source/Plugins/NetworkActivityPlugin.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import Result 3 | 4 | /// Network activity change notification type. 5 | public enum NetworkActivityChangeType { 6 | case Began, Ended 7 | } 8 | 9 | /// Notify a request's network activity changes (request begins or ends). 10 | public final class NetworkActivityPlugin: PluginType { 11 | 12 | public typealias NetworkActivityClosure = (change: NetworkActivityChangeType) -> () 13 | let networkActivityClosure: NetworkActivityClosure 14 | 15 | public init(networkActivityClosure: NetworkActivityClosure) { 16 | self.networkActivityClosure = networkActivityClosure 17 | } 18 | 19 | // MARK: Plugin 20 | 21 | /// Called by the provider as soon as the request is about to start 22 | public func willSendRequest(request: RequestType, target: TargetType) { 23 | networkActivityClosure(change: .Began) 24 | } 25 | 26 | /// Called by the provider as soon as a response arrives, even the request is cancelled. 27 | public func didReceiveResponse(result: Result, target: TargetType) { 28 | networkActivityClosure(change: .Ended) 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Pods/NSObject+Rx/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Ash Furrow 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/NSObject+Rx/NSObject+Rx.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import RxSwift 3 | import ObjectiveC 4 | 5 | public extension NSObject { 6 | private struct AssociatedKeys { 7 | static var DisposeBag = "rx_disposeBag" 8 | } 9 | 10 | private func doLocked(closure: () -> Void) { 11 | objc_sync_enter(self); defer { objc_sync_exit(self) } 12 | closure() 13 | } 14 | 15 | var rx_disposeBag: DisposeBag { 16 | get { 17 | var disposeBag: DisposeBag! 18 | doLocked { 19 | let lookup = objc_getAssociatedObject(self, &AssociatedKeys.DisposeBag) as? DisposeBag 20 | if let lookup = lookup { 21 | disposeBag = lookup 22 | } else { 23 | let newDisposeBag = DisposeBag() 24 | self.rx_disposeBag = newDisposeBag 25 | disposeBag = newDisposeBag 26 | } 27 | } 28 | return disposeBag 29 | } 30 | 31 | set { 32 | doLocked { 33 | objc_setAssociatedObject(self, &AssociatedKeys.DisposeBag, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) 34 | } 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Pods/ObjectMapper/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) 2014 Hearst 3 | 4 | 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: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | 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. 9 | -------------------------------------------------------------------------------- /Pods/ObjectMapper/ObjectMapper/Transforms/NSDecimalNumberTransform.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public class NSDecimalNumberTransform: TransformType { 4 | public typealias Object = NSDecimalNumber 5 | public typealias JSON = String 6 | 7 | public init() {} 8 | 9 | public func transformFromJSON(value: AnyObject?) -> NSDecimalNumber? { 10 | if let string = value as? String { 11 | return NSDecimalNumber(string: string) 12 | } 13 | if let double = value as? Double { 14 | return NSDecimalNumber(double: double) 15 | } 16 | return nil 17 | } 18 | 19 | public func transformToJSON(value: NSDecimalNumber?) -> String? { 20 | guard let value = value else { return nil } 21 | return value.description 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Pods/Permission/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015-2016 Damien (http://delba.io) 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 all 11 | 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 THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/Permission/Source/PermissionStatus.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PermissionStatus.swift 3 | // 4 | // Copyright (c) 2015-2016 Damien (http://delba.io) 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in all 14 | // copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | // SOFTWARE. 23 | // 24 | 25 | public enum PermissionStatus { 26 | case Authorized 27 | case Denied 28 | case Disabled 29 | case NotDetermined 30 | } -------------------------------------------------------------------------------- /Pods/Result/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Rob Rix 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. -------------------------------------------------------------------------------- /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/RxCocoa/Common/CocoaUnits/Driver/ControlEvent+Driver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ControlEvent+Driver.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 9/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | extension ControlEvent { 15 | /** 16 | Converts `ControlEvent` to `Driver` unit. 17 | 18 | `ControlEvent` already can't fail, so no special case needs to be handled. 19 | */ 20 | @warn_unused_result(message="http://git.io/rxs.uo") 21 | public func asDriver() -> Driver { 22 | return self.asDriver { (error) -> Driver in 23 | #if DEBUG 24 | rxFatalError("Somehow driver received error from a source that shouldn't fail.") 25 | #else 26 | return Driver.empty() 27 | #endif 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/CocoaUnits/Driver/ControlProperty+Driver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ControlProperty+Driver.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 9/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | extension ControlProperty { 15 | /** 16 | Converts `ControlProperty` to `Driver` unit. 17 | 18 | `ControlProperty` already can't fail, so no special case needs to be handled. 19 | */ 20 | @warn_unused_result(message="http://git.io/rxs.uo") 21 | public func asDriver() -> Driver { 22 | return self.asDriver { (error) -> Driver in 23 | #if DEBUG 24 | rxFatalError("Somehow driver received error from a source that shouldn't fail.") 25 | #else 26 | return Driver.empty() 27 | #endif 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/CocoaUnits/Driver/Variable+Driver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Variable+Driver.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 12/28/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | extension Variable { 15 | /** 16 | Converts `Variable` to `Driver` unit. 17 | 18 | - returns: Driving observable sequence. 19 | */ 20 | @warn_unused_result(message="http://git.io/rxs.uo") 21 | public func asDriver() -> Driver { 22 | let source = self.asObservable() 23 | .observeOn(driverObserveOnScheduler) 24 | return Driver(source) 25 | } 26 | } -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/KVORepresentable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KVORepresentable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 11/14/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Type that is KVO representable (KVO mechanism can be used to observe it). 13 | */ 14 | public protocol KVORepresentable { 15 | /** 16 | Associated KVO type. 17 | */ 18 | associatedtype KVOType 19 | 20 | /** 21 | Constructs `Self` using KVO value. 22 | */ 23 | init?(KVOValue: KVOType) 24 | } 25 | 26 | extension KVORepresentable { 27 | /** 28 | Initializes `KVORepresentable` with optional value. 29 | */ 30 | init?(KVOValue: KVOType?) { 31 | guard let KVOValue = KVOValue else { 32 | return nil 33 | } 34 | 35 | self.init(KVOValue: KVOValue) 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/Logging.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Logging.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 4/3/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Simple logging settings for RxCocoa library. 13 | */ 14 | public struct Logging { 15 | public typealias LogURLRequest = (NSURLRequest) -> Bool 16 | 17 | /** 18 | Log URL requests to standard output in curl format. 19 | */ 20 | public static var URLRequests: LogURLRequest = { _ in 21 | #if DEBUG 22 | return true 23 | #else 24 | return false 25 | #endif 26 | } 27 | } -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/NSLayoutConstraint+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSLayoutConstraint+Rx.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 12/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | #if os(OSX) 12 | import Cocoa 13 | #else 14 | import UIKit 15 | #endif 16 | 17 | #if !RX_NO_MODULE 18 | import RxSwift 19 | #endif 20 | 21 | #if os(iOS) || os(OSX) || os(tvOS) 22 | extension NSLayoutConstraint { 23 | /** 24 | Bindable sink for `constant` property. 25 | */ 26 | public var rx_constant: AnyObserver { 27 | return UIBindingObserver(UIElement: self) { constraint, constant in 28 | constraint.constant = constant 29 | }.asObserver() 30 | } 31 | 32 | /** 33 | Bindable sink for `active` property. 34 | */ 35 | @available(iOS 8, OSX 10.10, *) 36 | public var rx_active: AnyObserver { 37 | return UIBindingObserver(UIElement: self) { constraint, value in 38 | constraint.active = value 39 | }.asObserver() 40 | } 41 | } 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/Observables/Implementations/DeallocObservable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DeallocObservable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 12/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | class DeallocObservable { 15 | let _subject = ReplaySubject.create(bufferSize: 1) 16 | 17 | init() { 18 | } 19 | 20 | deinit { 21 | _subject.on(.Next(())) 22 | _subject.on(.Completed) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/Observables/Implementations/KVOObserver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KVOObserver.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | protocol KVOObservableProtocol { 15 | var target: AnyObject { get } 16 | var keyPath: String { get } 17 | var retainTarget: Bool { get } 18 | var options: NSKeyValueObservingOptions { get } 19 | } 20 | 21 | class KVOObserver : _RXKVOObserver 22 | , Disposable { 23 | typealias Callback = (AnyObject?) -> Void 24 | 25 | var retainSelf: KVOObserver? = nil 26 | 27 | init(parent: KVOObservableProtocol, callback: Callback) { 28 | #if TRACE_RESOURCES 29 | OSAtomicIncrement32(&resourceCount) 30 | #endif 31 | 32 | super.init(target: parent.target, retainTarget: parent.retainTarget, keyPath: parent.keyPath, options: parent.options, callback: callback) 33 | self.retainSelf = self 34 | } 35 | 36 | override func dispose() { 37 | super.dispose() 38 | self.retainSelf = nil 39 | } 40 | 41 | deinit { 42 | #if TRACE_RESOURCES 43 | OSAtomicDecrement32(&resourceCount) 44 | #endif 45 | } 46 | } -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/Observables/NSNotificationCenter+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSNotificationCenter+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 5/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | extension NSNotificationCenter { 15 | /** 16 | Transforms notifications posted to notification center to observable sequence of notifications. 17 | 18 | - parameter name: Filter notifications by name. 19 | - parameter object: Optional object used to filter notifications. 20 | - returns: Observable sequence of posted notifications. 21 | */ 22 | @warn_unused_result(message="http://git.io/rxs.uo") 23 | public func rx_notification(name: String?, object: AnyObject? = nil) -> Observable { 24 | return Observable.create { [weak object] observer in 25 | let nsObserver = self.addObserverForName(name, object: object, queue: nil) { notification in 26 | observer.on(.Next(notification)) 27 | } 28 | 29 | return AnonymousDisposable { 30 | self.removeObserver(nsObserver) 31 | } 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/Proxies/RxCLLocationManagerDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxCLLocationManagerDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Carlos García on 8/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import CoreLocation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | class RxCLLocationManagerDelegateProxy : DelegateProxy 15 | , CLLocationManagerDelegate 16 | , DelegateProxyType { 17 | 18 | class func currentDelegateFor(object: AnyObject) -> AnyObject? { 19 | let locationManager: CLLocationManager = castOrFatalError(object) 20 | return locationManager.delegate 21 | } 22 | 23 | class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { 24 | let locationManager: CLLocationManager = castOrFatalError(object) 25 | locationManager.delegate = castOptionalOrFatalError(delegate) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/Reactive.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Reactive.swift 3 | // Rx 4 | // 5 | // Created by Yury Korolev on 5/2/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /** 10 | We can use `Reactive` protocol as customization point for constrained protocol extensions. 11 | 12 | General pattern would be: 13 | 14 | 15 | // 1. Conform SomeType to Reactive protocol 16 | extension SomeType: Reactive {} 17 | 18 | // 2. Extend Reactive protocol with constrain on Self 19 | // Read as: Reactive Extension where Self is a SomeType 20 | extension Reactive where Self: SomeType { 21 | // 3. Put any specific reactive extension for SomeType here 22 | } 23 | 24 | 25 | With this approach we can have more specialized methods and properties using 26 | `Self` and not just specialized on common base type. 27 | 28 | See UIGestureRecognizer+Rx.swift as an example 29 | */ 30 | 31 | public protocol Reactive { 32 | 33 | } 34 | -------------------------------------------------------------------------------- /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 Foundation 10 | #if !RX_NO_MODULE 11 | import RxSwift 12 | #endif 13 | 14 | class RxTarget : NSObject 15 | , Disposable { 16 | 17 | private var retainSelf: RxTarget? 18 | 19 | override init() { 20 | super.init() 21 | self.retainSelf = self 22 | 23 | #if TRACE_RESOURCES 24 | OSAtomicIncrement32(&resourceCount) 25 | #endif 26 | 27 | #if DEBUG 28 | MainScheduler.ensureExecutingOnScheduler() 29 | #endif 30 | } 31 | 32 | func dispose() { 33 | #if DEBUG 34 | MainScheduler.ensureExecutingOnScheduler() 35 | #endif 36 | self.retainSelf = nil 37 | } 38 | 39 | #if TRACE_RESOURCES 40 | deinit { 41 | OSAtomicDecrement32(&resourceCount) 42 | } 43 | #endif 44 | } -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/RxTextInput.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTextInput.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 5/12/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | #if os(iOS) || os(tvOS) 12 | import UIKit 13 | 14 | /** 15 | Represents text input with reactive extensions. 16 | */ 17 | public protocol RxTextInput : UITextInput { 18 | 19 | /** 20 | Reactive wrapper for `text` property. 21 | */ 22 | var rx_text: ControlProperty { get } 23 | } 24 | #endif 25 | 26 | #if os(OSX) 27 | import Cocoa 28 | 29 | /** 30 | Represents text input with reactive extensions. 31 | */ 32 | public protocol RxTextInput : NSTextInput { 33 | 34 | /** 35 | Reactive wrapper for `text` property. 36 | */ 37 | var rx_text: ControlProperty { get } 38 | } 39 | #endif -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/SectionedViewDataSourceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SectionedViewDataSourceType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 1/10/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Data source with access to underlying sectioned model. 13 | */ 14 | public protocol SectionedViewDataSourceType { 15 | /** 16 | Returns model at index path. 17 | 18 | In case data source doesn't contain any sections when this method is being called, `RxCocoaError.ItemsNotYetBound(object: self)` is thrown. 19 | 20 | - parameter indexPath: Model index path 21 | - returns: Model at index path. 22 | */ 23 | func modelAtIndexPath(indexPath: NSIndexPath) throws -> Any 24 | } -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/_RX.m: -------------------------------------------------------------------------------- 1 | // 2 | // _RX.m 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import "_RX.h" 10 | 11 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/_RXDelegateProxy.h: -------------------------------------------------------------------------------- 1 | // 2 | // _RXDelegateProxy.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface _RXDelegateProxy : NSObject 12 | 13 | @property (nonatomic, weak, readonly) id _forwardToDelegate; 14 | 15 | -(void)_setForwardToDelegate:(id)forwardToDelegate retainDelegate:(BOOL)retainDelegate; 16 | 17 | -(BOOL)hasWiredImplementationForSelector:(SEL)selector; 18 | 19 | -(void)interceptedSelector:(SEL)selector withArguments:(NSArray*)arguments; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/_RXKVOObserver.h: -------------------------------------------------------------------------------- 1 | // 2 | // _RXKVOObserver.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/11/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /** 12 | ################################################################################ 13 | This file is part of RX private API 14 | ################################################################################ 15 | */ 16 | 17 | typedef void (^KVOCallback)(id); 18 | 19 | // Exists because if written in Swift, reading unowned is disabled during dealloc process 20 | @interface _RXKVOObserver : NSObject 21 | 22 | -(instancetype)initWithTarget:(id)target 23 | retainTarget:(BOOL)retainTarget 24 | keyPath:(NSString*)keyPath 25 | options:(NSKeyValueObservingOptions)options 26 | callback:(KVOCallback)callback; 27 | 28 | -(void)dispose; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /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/iOS/Events/ItemEvents.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ItemEvents.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/20/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | #if os(iOS) || os(tvOS) 13 | public typealias ItemMovedEvent = (sourceIndex: NSIndexPath, destinationIndex: NSIndexPath) 14 | public typealias WillDisplayCellEvent = (cell: UITableViewCell, indexPath: NSIndexPath) 15 | public typealias DidEndDisplayingCellEvent = (cell: UITableViewCell, indexPath: NSIndexPath) 16 | #endif -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/NSTextStorage+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSTextStorage+Rx.swift 3 | // Rx 4 | // 5 | // Created by Segii Shulga on 12/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | import Foundation 11 | 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | extension NSTextStorage { 18 | 19 | /** 20 | Reactive wrapper for `delegate`. 21 | 22 | For more information take a look at `DelegateProxyType` protocol documentation. 23 | */ 24 | public var rx_delegate:DelegateProxy { 25 | return RxTextStorageDelegateProxy.proxyForObject(self) 26 | } 27 | 28 | /** 29 | Reactive wrapper for `delegate` message. 30 | */ 31 | public var rx_didProcessEditingRangeChangeInLength: Observable<(editedMask:NSTextStorageEditActions, editedRange:NSRange, delta:Int)> { 32 | return rx_delegate 33 | .observe(#selector(NSTextStorageDelegate.textStorage(_:didProcessEditing:range:changeInLength:))) 34 | .map { a in 35 | let editedMask = NSTextStorageEditActions(rawValue: try castOrThrow(UInt.self, a[1]) ) 36 | let editedRange = try castOrThrow(NSValue.self, a[2]).rangeValue 37 | let delta = try castOrThrow(Int.self, a[3]) 38 | 39 | return (editedMask, editedRange, delta) 40 | } 41 | } 42 | } 43 | #endif 44 | -------------------------------------------------------------------------------- /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 Foundation 12 | import UIKit 13 | #if !RX_NO_MODULE 14 | import RxSwift 15 | #endif 16 | 17 | /** 18 | Marks data source as `UICollectionView` reactive data source enabling it to be used with one of the `bindTo` methods. 19 | */ 20 | public protocol RxCollectionViewDataSourceType /*: UICollectionViewDataSource*/ { 21 | 22 | /** 23 | Type of elements that can be bound to collection view. 24 | */ 25 | associatedtype Element 26 | 27 | /** 28 | New observable sequence event observed. 29 | 30 | - parameter collectionView: Bound collection view. 31 | - parameter observedEvent: Event 32 | */ 33 | func collectionView(collectionView: UICollectionView, observedEvent: Event) -> Void 34 | } 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /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 Foundation 12 | import UIKit 13 | #if !RX_NO_MODULE 14 | import RxSwift 15 | #endif 16 | 17 | /** 18 | Marks data source as `UITableView` reactive data source enabling it to be used with one of the `bindTo` methods. 19 | */ 20 | public protocol RxTableViewDataSourceType /*: UITableViewDataSource*/ { 21 | 22 | /** 23 | Type of elements that can be bound to table view. 24 | */ 25 | associatedtype Element 26 | 27 | /** 28 | New observable sequence event observed. 29 | 30 | - parameter tableView: Bound table view. 31 | - parameter observedEvent: Event 32 | */ 33 | func tableView(tableView: UITableView, observedEvent: Event) -> Void 34 | } 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /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 Foundation 12 | import UIKit 13 | #if !RX_NO_MODULE 14 | import RxSwift 15 | #endif 16 | 17 | /** 18 | For more information take a look at `DelegateProxyType`. 19 | */ 20 | public class RxCollectionViewDelegateProxy 21 | : RxScrollViewDelegateProxy 22 | , UICollectionViewDelegate 23 | , UICollectionViewDelegateFlowLayout { 24 | 25 | /** 26 | Typed parent object. 27 | */ 28 | public weak private(set) var collectionView: UICollectionView? 29 | 30 | /** 31 | Initializes `RxCollectionViewDelegateProxy` 32 | 33 | - parameter parentObject: Parent object for delegate proxy. 34 | */ 35 | public required init(parentObject: AnyObject) { 36 | self.collectionView = (parentObject as! UICollectionView) 37 | super.init(parentObject: parentObject) 38 | } 39 | } 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxImagePickerDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxImagePickerDelegateProxy.swift 3 | // Rx 4 | // 5 | // Created by Segii Shulga on 1/4/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | public class RxImagePickerDelegateProxy 18 | : DelegateProxy 19 | , DelegateProxyType 20 | , UIImagePickerControllerDelegate 21 | , UINavigationControllerDelegate { 22 | 23 | /** 24 | For more information take a look at `DelegateProxyType`. 25 | */ 26 | public class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { 27 | let imagePickerController: UIImagePickerController = castOrFatalError(object) 28 | imagePickerController.delegate = castOptionalOrFatalError(delegate) 29 | } 30 | 31 | /** 32 | For more information take a look at `DelegateProxyType`. 33 | */ 34 | public class func currentDelegateFor(object: AnyObject) -> AnyObject? { 35 | let imagePickerController: UIImagePickerController = castOrFatalError(object) 36 | return imagePickerController.delegate 37 | } 38 | 39 | } 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxPickerViewDelegateProxy.swift 3 | // Rx 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 Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | public class RxPickerViewDelegateProxy 18 | : DelegateProxy 19 | , DelegateProxyType 20 | , UIPickerViewDelegate { 21 | 22 | /** 23 | For more information take a look at `DelegateProxyType`. 24 | */ 25 | public class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { 26 | let pickerView: UIPickerView = castOrFatalError(object) 27 | pickerView.delegate = castOptionalOrFatalError(delegate) 28 | } 29 | 30 | /** 31 | For more information take a look at `DelegateProxyType`. 32 | */ 33 | public class func currentDelegateFor(object: AnyObject) -> AnyObject? { 34 | let pickerView: UIPickerView = castOrFatalError(object) 35 | return pickerView.delegate 36 | } 37 | } 38 | #endif 39 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxSearchControllerDelegateProxy.swift 3 | // Rx 4 | // 5 | // Created by Segii Shulga on 3/17/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | /** 18 | For more information take a look at `DelegateProxyType`. 19 | */ 20 | @available(iOS 8.0, *) 21 | public class RxSearchControllerDelegateProxy 22 | : DelegateProxy 23 | , DelegateProxyType 24 | , UISearchControllerDelegate { 25 | 26 | /** 27 | For more information take a look at `DelegateProxyType`. 28 | */ 29 | public class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { 30 | let searchController: UISearchController = castOrFatalError(object) 31 | searchController.delegate = castOptionalOrFatalError(delegate) 32 | } 33 | 34 | /** 35 | For more information take a look at `DelegateProxyType`. 36 | */ 37 | public class func currentDelegateFor(object: AnyObject) -> AnyObject? { 38 | let searchController: UISearchController = castOrFatalError(object) 39 | return searchController.delegate 40 | } 41 | 42 | } 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /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 Foundation 12 | import UIKit 13 | #if !RX_NO_MODULE 14 | import RxSwift 15 | #endif 16 | 17 | /** 18 | For more information take a look at `DelegateProxyType`. 19 | */ 20 | public class RxTableViewDelegateProxy 21 | : RxScrollViewDelegateProxy 22 | , UITableViewDelegate { 23 | 24 | 25 | /** 26 | Typed parent object. 27 | */ 28 | public weak private(set) var tableView: UITableView? 29 | 30 | /** 31 | Initializes `RxTableViewDelegateProxy` 32 | 33 | - parameter parentObject: Parent object for delegate proxy. 34 | */ 35 | public required init(parentObject: AnyObject) { 36 | self.tableView = (parentObject as! UITableView) 37 | super.init(parentObject: parentObject) 38 | } 39 | } 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTextStorageDelegateProxy.swift 3 | // Rx 4 | // 5 | // Created by Segii Shulga on 12/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | public class RxTextStorageDelegateProxy 18 | : DelegateProxy 19 | , DelegateProxyType 20 | , NSTextStorageDelegate { 21 | 22 | 23 | /** 24 | For more information take a look at `DelegateProxyType`. 25 | */ 26 | public class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { 27 | let textStorage: NSTextStorage = castOrFatalError(object) 28 | textStorage.delegate = castOptionalOrFatalError(delegate) 29 | } 30 | 31 | /** 32 | For more information take a look at `DelegateProxyType`. 33 | */ 34 | public class func currentDelegateFor(object: AnyObject) -> AnyObject? { 35 | let textStorage: NSTextStorage = castOrFatalError(object) 36 | return textStorage.delegate 37 | } 38 | 39 | 40 | } 41 | #endif 42 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIActivityIndicatorView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIActivityIndicatorView+Rx.swift 3 | // Rx 4 | // 5 | // Created by Ivan Persidskiy on 02/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | import UIKit 11 | 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | extension UIActivityIndicatorView { 17 | 18 | /** 19 | Bindable sink for `startAnimating()`, `stopAnimating()` methods. 20 | */ 21 | public var rx_animating: AnyObserver { 22 | return UIBindingObserver(UIElement: self) { activityIndicator, active in 23 | if active { 24 | self.startAnimating() 25 | } else { 26 | self.stopAnimating() 27 | } 28 | }.asObserver() 29 | } 30 | 31 | } 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIAlertAction+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIAlertAction+Rx.swift 3 | // Rx 4 | // 5 | // Created by Andrew Breckenridge on 5/7/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | #if os(iOS) || os(tvOS) 12 | 13 | import Foundation 14 | import UIKit 15 | 16 | #if !RX_NO_MODULE 17 | import RxSwift 18 | #endif 19 | 20 | extension UIAlertAction { 21 | 22 | /** 23 | Bindable sink for `enabled` property. 24 | */ 25 | public var rx_enabled: AnyObserver { 26 | return UIBindingObserver(UIElement: self) { alertAction, value in 27 | alertAction.enabled = value 28 | }.asObserver() 29 | } 30 | 31 | } 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIApplication+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIApplication+Rx.swift 3 | // RxExample 4 | // 5 | // Created by Mads Bøgeskov on 18/01/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | #if os(iOS) 12 | import UIKit 13 | 14 | #if !RX_NO_MODULE 15 | import RxSwift 16 | #endif 17 | 18 | extension UIApplication { 19 | 20 | /** 21 | Bindable sink for `networkActivityIndicatorVisible`. 22 | */ 23 | public var rx_networkActivityIndicatorVisible: AnyObserver { 24 | return UIBindingObserver(UIElement: self) { application, active in 25 | application.networkActivityIndicatorVisible = active 26 | }.asObserver() 27 | } 28 | } 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /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 Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | extension UIDatePicker { 18 | 19 | /** 20 | Reactive wrapper for `date` property. 21 | */ 22 | public var rx_date: ControlProperty { 23 | return UIControl.rx_value( 24 | self, 25 | getter: { datePicker in 26 | datePicker.date 27 | }, setter: { datePicker, value in 28 | datePicker.date = value 29 | } 30 | ) 31 | } 32 | 33 | } 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /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 Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | extension UILabel { 18 | 19 | /** 20 | Bindable sink for `text` property. 21 | */ 22 | public var rx_text: AnyObserver { 23 | return UIBindingObserver(UIElement: self) { label, text in 24 | label.text = text 25 | }.asObserver() 26 | } 27 | 28 | /** 29 | Bindable sink for `attributedText` property. 30 | */ 31 | public var rx_attributedText: AnyObserver { 32 | return UIBindingObserver(UIElement: self) { label, text in 33 | label.attributedText = text 34 | }.asObserver() 35 | } 36 | 37 | } 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UINavigationItem+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UINavigationItem+Rx.swift 3 | // Rx 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 Foundation 12 | import UIKit 13 | #if !RX_NO_MODULE 14 | import RxSwift 15 | #endif 16 | 17 | extension UINavigationItem { 18 | /** 19 | Bindable sink for `title` property. 20 | */ 21 | public var rx_title: AnyObserver { 22 | return UIBindingObserver(UIElement: self) { navigationItem, text in 23 | navigationItem.title = text 24 | }.asObserver() 25 | } 26 | 27 | } 28 | 29 | #endif -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIPageControl+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIPageControl+Rx.swift 3 | // Rx 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 Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | extension UIPageControl { 18 | 19 | /** 20 | Bindable sink for `currentPage` property. 21 | */ 22 | public var rx_currentPage: AnyObserver { 23 | return UIBindingObserver(UIElement: self) { controller, page in 24 | controller.currentPage = page 25 | }.asObserver() 26 | } 27 | } 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIPickerView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIPickerView+Rx.swift 3 | // Rx 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 Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | extension UIPickerView { 18 | /** 19 | Reactive wrapper for `delegate`. 20 | For more information take a look at `DelegateProxyType` protocol documentation. 21 | */ 22 | public var rx_delegate: DelegateProxy { 23 | return RxPickerViewDelegateProxy.proxyForObject(self) 24 | } 25 | 26 | public var rx_itemSelected: ControlEvent<(row: Int, component: Int)> { 27 | let source = rx_delegate 28 | .observe(#selector(UIPickerViewDelegate.pickerView(_:didSelectRow:inComponent:))) 29 | .map { 30 | return (try castOrThrow(Int.self, $0[1]), try castOrThrow(Int.self, $0[2])) 31 | } 32 | return ControlEvent(events: source) 33 | } 34 | } 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIProgressView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIProgressView+Rx.swift 3 | // Rx 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 Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | extension UIProgressView { 18 | 19 | /** 20 | Bindable sink for `progress` property 21 | */ 22 | public var rx_progress: AnyObserver { 23 | return UIBindingObserver(UIElement: self) { progressView, progress in 24 | progressView.progress = progress 25 | }.asObserver() 26 | } 27 | 28 | } 29 | 30 | #endif -------------------------------------------------------------------------------- /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 | import UIKit 11 | 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | extension UIRefreshControl { 17 | 18 | /** 19 | Bindable sink for `beginRefreshing()`, `endRefreshing()` methods. 20 | */ 21 | public var rx_refreshing: AnyObserver { 22 | return UIBindingObserver(UIElement: self) { refreshControl, refresh in 23 | if refresh { 24 | refreshControl.beginRefreshing() 25 | } else { 26 | refreshControl.endRefreshing() 27 | } 28 | }.asObserver() 29 | } 30 | 31 | } 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UISegmentedControl+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UISegmentedControl+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Carlos García on 8/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | 17 | extension UISegmentedControl { 18 | 19 | /** 20 | Reactive wrapper for `selectedSegmentIndex` property. 21 | */ 22 | public var rx_value: ControlProperty { 23 | return UIControl.rx_value( 24 | self, 25 | getter: { segmentedControl in 26 | segmentedControl.selectedSegmentIndex 27 | }, setter: { segmentedControl, value in 28 | segmentedControl.selectedSegmentIndex = value 29 | } 30 | ) 31 | } 32 | 33 | } 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /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 Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | extension UISlider { 18 | 19 | /** 20 | Reactive wrapper for `value` property. 21 | */ 22 | public var rx_value: ControlProperty { 23 | return UIControl.rx_value( 24 | self, 25 | getter: { slider in 26 | slider.value 27 | }, setter: { slider, value in 28 | slider.value = value 29 | } 30 | ) 31 | } 32 | 33 | } 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /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 Foundation 12 | import UIKit 13 | #if !RX_NO_MODULE 14 | import RxSwift 15 | #endif 16 | 17 | extension UIStepper { 18 | 19 | /** 20 | Reactive wrapper for `value` property. 21 | */ 22 | public var rx_value: ControlProperty { 23 | return UIControl.rx_value( 24 | self, 25 | getter: { stepper in 26 | stepper.value 27 | }, setter: { stepper, value in 28 | stepper.value = value 29 | } 30 | ) 31 | } 32 | 33 | } 34 | 35 | #endif 36 | 37 | -------------------------------------------------------------------------------- /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 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | 17 | extension UISwitch { 18 | 19 | /** 20 | Reactive wrapper for `on` property. 21 | */ 22 | public var rx_value: ControlProperty { 23 | return UIControl.rx_value( 24 | self, 25 | getter: { uiSwitch in 26 | uiSwitch.on 27 | }, setter: { uiSwitch, value in 28 | uiSwitch.on = value 29 | } 30 | ) 31 | } 32 | 33 | } 34 | 35 | #endif 36 | 37 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UITabBarItem+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UITabBarItem+Rx.swift 3 | // Rx 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 Foundation 12 | import UIKit 13 | #if !RX_NO_MODULE 14 | import RxSwift 15 | #endif 16 | 17 | extension UITabBarItem { 18 | 19 | /** 20 | Bindable sink for `badgeValue` property. 21 | */ 22 | public var rx_badgeValue: AnyObserver { 23 | return UIBindingObserver(UIElement: self) { tabBarItem, badgeValue in 24 | tabBarItem.badgeValue = badgeValue 25 | }.asObserver() 26 | } 27 | 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UITextField+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UITextField+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 2/21/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import Foundation 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | import UIKit 16 | 17 | extension UITextField : RxTextInput { 18 | 19 | /** 20 | Reactive wrapper for `text` property. 21 | */ 22 | public var rx_text: ControlProperty { 23 | return UIControl.rx_value( 24 | self, 25 | getter: { textField in 26 | textField.text ?? "" 27 | }, setter: { textField, value in 28 | // This check is important because setting text value always clears control state 29 | // including marked text selection which is imporant for proper input 30 | // when IME input method is used. 31 | if textField.text != value { 32 | textField.text = value 33 | } 34 | } 35 | ) 36 | } 37 | 38 | } 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+Rx.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 12/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import Foundation 12 | import UIKit 13 | #if !RX_NO_MODULE 14 | import RxSwift 15 | #endif 16 | 17 | extension UIView { 18 | /** 19 | Bindable sink for `hidden` property. 20 | */ 21 | public var rx_hidden: AnyObserver { 22 | return UIBindingObserver(UIElement: self) { view, hidden in 23 | view.hidden = hidden 24 | }.asObserver() 25 | } 26 | 27 | /** 28 | Bindable sink for `alpha` property. 29 | */ 30 | public var rx_alpha: AnyObserver { 31 | return UIBindingObserver(UIElement: self) { view, alpha in 32 | view.alpha = alpha 33 | }.asObserver() 34 | } 35 | } 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIViewController+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+Rx.swift 3 | // Rx 4 | // 5 | // Created by Kyle Fuller on 27/05/2016. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | #if os(iOS) 12 | import UIKit 13 | 14 | #if !RX_NO_MODULE 15 | import RxSwift 16 | #endif 17 | 18 | extension UIViewController { 19 | 20 | /** 21 | Bindable sink for `title`. 22 | */ 23 | public var rx_title: AnyObserver { 24 | return UIBindingObserver(UIElement: self) { viewController, title in 25 | viewController.title = title 26 | }.asObserver() 27 | } 28 | } 29 | #endif -------------------------------------------------------------------------------- /Pods/RxOptional/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 Thane Gill 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/RxOptional/Source/Driver+Occupiable.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import RxCocoa 3 | 4 | public extension Driver where Element: Occupiable { 5 | /** 6 | Filter out empty occupibales. 7 | 8 | - returns: Driver of only non-empty occupiables. 9 | */ 10 | @warn_unused_result(message="http://git.io/rxs.uo") 11 | public func filterEmpty() -> Driver { 12 | return self.flatMap { element -> Driver in 13 | guard element.isNotEmpty else { 14 | return Driver.empty() 15 | } 16 | return Driver.just(element) 17 | } 18 | } 19 | 20 | /** 21 | When empty uses handler to call another Driver otherwise passes elemets. 22 | 23 | - parameter handler: Empty handler function, producing another Driver. 24 | 25 | - returns: Driver containing the source sequence's elements, 26 | followed by the elements produced by the handler's resulting observable 27 | sequence when element was empty. 28 | */ 29 | @warn_unused_result(message="http://git.io/rxs.uo") 30 | public func catchOnEmpty(handler: () -> Driver) -> Driver { 31 | return self.flatMap { element -> Driver in 32 | guard element.isNotEmpty else { 33 | return handler() 34 | } 35 | return Driver.just(element) 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Pods/RxOptional/Source/Occupiable.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | // Originially from here: https://github.com/artsy/eidolon/blob/f95c0a5bf1e90358320529529d6bf431ada04c3f/Kiosk/App/SwiftExtensions.swift#L23-L40 4 | // Credit to Artsy and @ashfurrow 5 | 6 | // Anything that can hold a value (strings, arrays, etc) 7 | public protocol Occupiable { 8 | var isEmpty: Bool { get } 9 | var isNotEmpty: Bool { get } 10 | } 11 | 12 | public extension Occupiable { 13 | public var isNotEmpty: Bool { 14 | return !isEmpty 15 | } 16 | } 17 | 18 | extension String: Occupiable { } 19 | // I can't think of a way to combine these collection types. Suggestions welcome. 20 | extension Array: Occupiable { } 21 | extension Dictionary: Occupiable { } 22 | extension Set: Occupiable { } 23 | -------------------------------------------------------------------------------- /Pods/RxOptional/Source/OptionalType.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | // Originially from here: https://github.com/artsy/eidolon/blob/24e36a69bbafb4ef6dbe4d98b575ceb4e1d8345f/Kiosk/Observable%2BOperators.swift#L30-L40 4 | // Credit to Artsy and @ashfurrow 5 | 6 | public protocol OptionalType { 7 | typealias Wrapped 8 | var value: Wrapped? { get } 9 | } 10 | 11 | extension Optional: OptionalType { 12 | /// Cast `Optional` to `Wrapped?` 13 | public var value: Wrapped? { 14 | return self 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Pods/RxOptional/Source/RxOptionalError.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public enum RxOptionalError: ErrorType, CustomStringConvertible { 4 | case FoundNilWhileUnwrappingOptional(Any.Type) 5 | case EmptyOccupiable(Any.Type) 6 | 7 | public var description: String { 8 | switch self { 9 | case .FoundNilWhileUnwrappingOptional(let type): 10 | return "Found nil while trying to unwrap type <\(String(type))>" 11 | case .EmptyOccupiable(let type): 12 | return "Empty occupiable of type <\(String(type))>" 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /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/RxSwift/Cancelable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Cancelable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 3/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Represents disposable resource with state tracking. 13 | */ 14 | public protocol Cancelable : Disposable { 15 | /** 16 | - returns: Was resource disposed. 17 | */ 18 | var disposed: Bool { get } 19 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Concurrency/LockOwnerType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LockOwnerType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol LockOwnerType : class, Lock { 12 | var _lock: NSRecursiveLock { get } 13 | } 14 | 15 | extension LockOwnerType { 16 | func lock() { 17 | _lock.lock() 18 | } 19 | 20 | func unlock() { 21 | _lock.unlock() 22 | } 23 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedDisposeType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol SynchronizedDisposeType : class, Disposable, Lock { 12 | func _synchronized_dispose() 13 | } 14 | 15 | extension SynchronizedDisposeType { 16 | func synchronizedDispose() { 17 | lock(); defer { unlock() } 18 | _synchronized_dispose() 19 | } 20 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedOnType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol SynchronizedOnType : class, ObserverType, Lock { 12 | func _synchronized_on(event: Event) 13 | } 14 | 15 | extension SynchronizedOnType { 16 | func synchronizedOn(event: Event) { 17 | lock(); defer { unlock() } 18 | _synchronized_on(event) 19 | } 20 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Concurrency/SynchronizedSubscribeType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedSubscribeType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol SynchronizedSubscribeType : class, ObservableType, Lock { 12 | func _synchronized_subscribe(observer: O) -> Disposable 13 | } 14 | 15 | extension SynchronizedSubscribeType { 16 | func synchronizedSubscribe(observer: O) -> Disposable { 17 | lock(); defer { unlock() } 18 | return _synchronized_subscribe(observer) 19 | } 20 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedUnsubscribeType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol SynchronizedUnsubscribeType : class { 12 | associatedtype DisposeKey 13 | 14 | func synchronizedUnsubscribe(disposeKey: DisposeKey) 15 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/ConnectableObservableType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ConnectableObservableType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 3/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Represents an observable sequence wrapper that can be connected and disconnected from its underlying observable sequence. 13 | */ 14 | public protocol ConnectableObservableType : ObservableType { 15 | /** 16 | Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. 17 | 18 | - returns: Disposable used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. 19 | */ 20 | func connect() -> Disposable 21 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/DataStructures/InfiniteSequence.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InfiniteSequence.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 6/13/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Sequence that repeats `repeatedValue` infinite number of times. 13 | */ 14 | struct InfiniteSequence : SequenceType { 15 | typealias Element = E 16 | typealias Generator = AnyGenerator 17 | 18 | private let _repeatedValue: E 19 | 20 | init(repeatedValue: E) { 21 | _repeatedValue = repeatedValue 22 | } 23 | 24 | func generate() -> Generator { 25 | let repeatedValue = _repeatedValue 26 | return AnyGenerator { 27 | return repeatedValue 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Disposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Disposable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Respresents a disposable resource. 12 | public protocol Disposable { 13 | /// Dispose resource. 14 | func dispose() 15 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Disposables/BooleanDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BooleanDisposable.swift 3 | // Rx 4 | // 5 | // Created by Junior B. on 10/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Represents a disposable resource that can be checked for disposal status. 13 | */ 14 | public class BooleanDisposable : Disposable, Cancelable { 15 | 16 | internal static let BooleanDisposableTrue = BooleanDisposable(disposed: true) 17 | private var _disposed = false 18 | 19 | /** 20 | Initializes a new instance of the `BooleanDisposable` class 21 | */ 22 | public init() { 23 | } 24 | 25 | /** 26 | Initializes a new instance of the `BooleanDisposable` class with given value 27 | */ 28 | public init(disposed: Bool) { 29 | self._disposed = disposed 30 | } 31 | 32 | /** 33 | - returns: Was resource disposed. 34 | */ 35 | public var disposed: Bool { 36 | return _disposed 37 | } 38 | 39 | /** 40 | Sets the status to disposed, which can be observer through the `disposed` property. 41 | */ 42 | public func dispose() { 43 | _disposed = true 44 | } 45 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Disposables/DisposeBase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DisposeBase.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 4/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Base class for all disposables. 13 | */ 14 | public class DisposeBase { 15 | init() { 16 | #if TRACE_RESOURCES 17 | AtomicIncrement(&resourceCount) 18 | #endif 19 | } 20 | 21 | deinit { 22 | #if TRACE_RESOURCES 23 | AtomicDecrement(&resourceCount) 24 | #endif 25 | } 26 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Disposables/NAryDisposable.swift: -------------------------------------------------------------------------------- 1 | // This file is autogenerated. Take a look at `Preprocessor` target in RxSwift project 2 | // 3 | // NAryDisposable.swift 4 | // RxSwift 5 | // 6 | // Created by Krunoslav Zaher on 8/20/15. 7 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 8 | // 9 | 10 | import Foundation 11 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Disposables/NopDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NopDisposable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Represents a disposable that does nothing on disposal. 13 | 14 | Nop = No Operation 15 | */ 16 | public struct NopDisposable : Disposable { 17 | 18 | /** 19 | Singleton instance of `NopDisposable`. 20 | */ 21 | public static let instance: Disposable = NopDisposable() 22 | 23 | init() { 24 | 25 | } 26 | 27 | /** 28 | Does nothing. 29 | */ 30 | public func dispose() { 31 | } 32 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Disposables/StableCompositeDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // StableCompositeDisposable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 6/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public final class StableCompositeDisposable { 12 | public static func create(disposable1: Disposable, _ disposable2: Disposable) -> Disposable { 13 | return BinaryDisposable(disposable1, disposable2) 14 | } 15 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SubscriptionDisposable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct SubscriptionDisposable : Disposable { 12 | private let _key: T.DisposeKey 13 | private weak var _owner: T? 14 | 15 | init(owner: T, key: T.DisposeKey) { 16 | _owner = owner 17 | _key = key 18 | } 19 | 20 | func dispose() { 21 | _owner?.synchronizedUnsubscribe(_key) 22 | } 23 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Extensions/String+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // String+Rx.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 12/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension String { 12 | /** 13 | This is needed because on Linux Swift doesn't have `rangeOfString(..., options: .BackwardsSearch)` 14 | */ 15 | func lastIndexOf(character: Character) -> Index? { 16 | var index = endIndex 17 | while index > startIndex { 18 | index = index.predecessor() 19 | if self[index] == character { 20 | return index 21 | } 22 | } 23 | 24 | return nil 25 | } 26 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Observable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | A type-erased `ObservableType`. 13 | 14 | It represents a push style sequence. 15 | */ 16 | public class Observable : ObservableType { 17 | /** 18 | Type of elements in sequence. 19 | */ 20 | public typealias E = Element 21 | 22 | init() { 23 | #if TRACE_RESOURCES 24 | OSAtomicIncrement32(&resourceCount) 25 | #endif 26 | } 27 | 28 | public func subscribe(observer: O) -> Disposable { 29 | abstractMethod() 30 | } 31 | 32 | public func asObservable() -> Observable { 33 | return self 34 | } 35 | 36 | deinit { 37 | #if TRACE_RESOURCES 38 | AtomicDecrement(&resourceCount) 39 | #endif 40 | } 41 | 42 | // this is kind of ugly I know :( 43 | // Swift compiler reports "Not supported yet" when trying to override protocol extensions, so ¯\_(ツ)_/¯ 44 | 45 | /** 46 | Optimizations for map operator 47 | */ 48 | internal func composeMap(selector: Element throws -> R) -> Observable { 49 | return Map(source: self, selector: selector) 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/ObservableConvertibleType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObservableConvertibleType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 9/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Type that can be converted to observable sequence (`Observer`). 13 | */ 14 | public protocol ObservableConvertibleType { 15 | /** 16 | Type of elements in sequence. 17 | */ 18 | associatedtype E 19 | 20 | /** 21 | Converts `self` to `Observable` sequence. 22 | 23 | - returns: Observable sequence that represents `self`. 24 | */ 25 | func asObservable() -> Observable 26 | } 27 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Implementations/AddRef.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AddRef.swift 3 | // Rx 4 | // 5 | // Created by Junior B. on 30/10/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class AddRefSink : Sink, ObserverType { 12 | typealias Element = O.E 13 | 14 | override init(observer: O) { 15 | super.init(observer: observer) 16 | } 17 | 18 | func on(event: Event) { 19 | switch event { 20 | case .Next(_): 21 | forwardOn(event) 22 | case .Completed, .Error(_): 23 | forwardOn(event) 24 | dispose() 25 | } 26 | } 27 | } 28 | 29 | class AddRef : Producer { 30 | typealias EventHandler = Event throws -> Void 31 | 32 | private let _source: Observable 33 | private let _refCount: RefCountDisposable 34 | 35 | init(source: Observable, refCount: RefCountDisposable) { 36 | _source = source 37 | _refCount = refCount 38 | } 39 | 40 | override func run(observer: O) -> Disposable { 41 | let releaseDisposable = _refCount.retain() 42 | let sink = AddRefSink(observer: observer) 43 | sink.disposable = StableCompositeDisposable.create(releaseDisposable, _source.subscribeSafe(sink)) 44 | 45 | return sink 46 | } 47 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Implementations/Empty.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Empty.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Empty : Producer { 12 | override func subscribe(observer: O) -> Disposable { 13 | observer.on(.Completed) 14 | return NopDisposable.instance 15 | } 16 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Implementations/Error.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Error.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Error : Producer { 12 | private let _error: ErrorType 13 | 14 | init(error: ErrorType) { 15 | _error = error 16 | } 17 | 18 | override func subscribe(observer: O) -> Disposable { 19 | observer.on(.Error(_error)) 20 | return NopDisposable.instance 21 | } 22 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Implementations/Never.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Never.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Never : Producer { 12 | override func subscribe(observer: O) -> Disposable { 13 | return NopDisposable.instance 14 | } 15 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Implementations/Producer.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Producer.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/20/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Producer : Observable { 12 | override init() { 13 | super.init() 14 | } 15 | 16 | override func subscribe(observer: O) -> Disposable { 17 | if !CurrentThreadScheduler.isScheduleRequired { 18 | return run(observer) 19 | } 20 | else { 21 | return CurrentThreadScheduler.instance.schedule(()) { _ in 22 | return self.run(observer) 23 | } 24 | } 25 | } 26 | 27 | func run(observer: O) -> Disposable { 28 | abstractMethod() 29 | } 30 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Implementations/Repeat.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Repeat.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 9/13/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class RepeatElement : Producer { 12 | private let _element: Element 13 | private let _scheduler: ImmediateSchedulerType 14 | 15 | init(element: Element, scheduler: ImmediateSchedulerType) { 16 | _element = element 17 | _scheduler = scheduler 18 | } 19 | 20 | override func run(observer: O) -> Disposable { 21 | let sink = RepeatElementSink(parent: self, observer: observer) 22 | sink.disposable = sink.run() 23 | 24 | return sink 25 | } 26 | } 27 | 28 | class RepeatElementSink : Sink { 29 | typealias Parent = RepeatElement 30 | 31 | private let _parent: Parent 32 | 33 | init(parent: Parent, observer: O) { 34 | _parent = parent 35 | super.init(observer: observer) 36 | } 37 | 38 | func run() -> Disposable { 39 | return _parent._scheduler.scheduleRecursive(_parent._element) { e, recurse in 40 | self.forwardOn(.Next(e)) 41 | recurse(e) 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Implementations/Sink.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Sink.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Sink : SingleAssignmentDisposable { 12 | private let _observer: O 13 | 14 | init(observer: O) { 15 | #if TRACE_RESOURCES 16 | AtomicIncrement(&resourceCount) 17 | #endif 18 | _observer = observer 19 | } 20 | 21 | final func forwardOn(event: Event) { 22 | if disposed { 23 | return 24 | } 25 | _observer.on(event) 26 | } 27 | 28 | final func forwarder() -> SinkForward { 29 | return SinkForward(forward: self) 30 | } 31 | 32 | deinit { 33 | #if TRACE_RESOURCES 34 | AtomicDecrement(&resourceCount) 35 | #endif 36 | } 37 | } 38 | 39 | class SinkForward: ObserverType { 40 | typealias E = O.E 41 | 42 | private let _forward: Sink 43 | 44 | init(forward: Sink) { 45 | _forward = forward 46 | } 47 | 48 | func on(event: Event) { 49 | switch event { 50 | case .Next: 51 | _forward._observer.on(event) 52 | case .Error, .Completed: 53 | _forward._observer.on(event) 54 | _forward.dispose() 55 | } 56 | } 57 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Implementations/StartWith.swift: -------------------------------------------------------------------------------- 1 | // 2 | // StartWith.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 4/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class StartWith: Producer { 12 | let elements: [Element] 13 | let source: Observable 14 | 15 | init(source: Observable, elements: [Element]) { 16 | self.source = source 17 | self.elements = elements 18 | super.init() 19 | } 20 | 21 | override func run(observer: O) -> Disposable { 22 | for e in elements { 23 | observer.on(.Next(e)) 24 | } 25 | 26 | return source.subscribe(observer) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Observable+Debug.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Observable+Debug.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 5/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // MARK: debug 12 | 13 | extension ObservableType { 14 | 15 | /** 16 | Prints received events for all observers on standard output. 17 | 18 | - seealso: [do operator on reactivex.io](http://reactivex.io/documentation/operators/do.html) 19 | 20 | - parameter identifier: Identifier that is printed together with event description to standard output. 21 | - returns: An observable sequence whose events are printed to standard output. 22 | */ 23 | @warn_unused_result(message="http://git.io/rxs.uo") 24 | public func debug(identifier: String? = nil, file: String = #file, line: UInt = #line, function: String = #function) 25 | -> Observable { 26 | return Debug(source: self.asObservable(), identifier: identifier, file: file, line: line, function: function) 27 | } 28 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observers/AnonymousObserver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnonymousObserver.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class AnonymousObserver : ObserverBase { 12 | typealias Element = ElementType 13 | 14 | typealias EventHandler = Event -> Void 15 | 16 | private let _eventHandler : EventHandler 17 | 18 | init(_ eventHandler: EventHandler) { 19 | #if TRACE_RESOURCES 20 | AtomicIncrement(&resourceCount) 21 | #endif 22 | _eventHandler = eventHandler 23 | } 24 | 25 | override func onCore(event: Event) { 26 | return _eventHandler(event) 27 | } 28 | 29 | #if TRACE_RESOURCES 30 | deinit { 31 | AtomicDecrement(&resourceCount) 32 | } 33 | #endif 34 | } 35 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observers/ObserverBase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObserverBase.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class ObserverBase : Disposable, ObserverType { 12 | typealias E = ElementType 13 | 14 | private var _isStopped: AtomicInt = 0 15 | 16 | func on(event: Event) { 17 | switch event { 18 | case .Next: 19 | if _isStopped == 0 { 20 | onCore(event) 21 | } 22 | case .Error, .Completed: 23 | 24 | if !AtomicCompareAndSwap(0, 1, &_isStopped) { 25 | return 26 | } 27 | 28 | onCore(event) 29 | } 30 | } 31 | 32 | func onCore(event: Event) { 33 | abstractMethod() 34 | } 35 | 36 | func dispose() { 37 | _isStopped = 1 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Rx.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 2/14/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | #if TRACE_RESOURCES 12 | /// Counts internal Rx resource allocations (Observables, Observers, Disposables, etc.). This provides a simple way to detect leaks during development. 13 | public var resourceCount: AtomicInt = 0 14 | #endif 15 | 16 | /// Swift does not implement abstract methods. This method is used as a runtime check to ensure that methods which intended to be abstract (i.e., they should be implemented in subclasses) are not called directly on the superclass. 17 | @noreturn func abstractMethod() -> Void { 18 | rxFatalError("Abstract method") 19 | } 20 | 21 | @noreturn func rxFatalError(lastMessage: String) { 22 | // The temptation to comment this line is great, but please don't, it's for your own good. The choice is yours. 23 | fatalError(lastMessage) 24 | } 25 | 26 | func incrementChecked(inout i: Int) throws -> Int { 27 | if i == Int.max { 28 | throw RxError.Overflow 29 | } 30 | let result = i 31 | i += 1 32 | return result 33 | } 34 | 35 | func decrementChecked(inout i: Int) throws -> Int { 36 | if i == Int.min { 37 | throw RxError.Overflow 38 | } 39 | let result = i 40 | i -= 1 41 | return result 42 | } 43 | -------------------------------------------------------------------------------- /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 | import Foundation 10 | 11 | /** 12 | Creates mutable reference wrapper for any type. 13 | */ 14 | class RxMutableBox : CustomDebugStringConvertible { 15 | /** 16 | Wrapped value 17 | */ 18 | var value : T 19 | 20 | /** 21 | Creates reference wrapper for `value`. 22 | 23 | - parameter value: Value to wrap. 24 | */ 25 | init (_ value: T) { 26 | self.value = value 27 | } 28 | } 29 | 30 | extension RxMutableBox { 31 | /** 32 | - returns: Box description. 33 | */ 34 | var debugDescription: String { 35 | return "MutatingBox(\(self.value))" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HistoricalScheduler.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 12/27/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Provides a virtual time scheduler that uses `NSDate` for absolute time and `NSTimeInterval` for relative time. 13 | */ 14 | public class HistoricalScheduler : VirtualTimeScheduler { 15 | 16 | /** 17 | Creates a new historical scheduler with initial clock value. 18 | 19 | - parameter initialClock: Initial value for virtual clock. 20 | */ 21 | public init(initialClock: RxTime = NSDate(timeIntervalSince1970: 0)) { 22 | super.init(initialClock: initialClock, converter: HistoricalSchedulerTimeConverter()) 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Schedulers/ImmediateScheduler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ImmediateScheduler.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 10/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Represents an object that schedules units of work to run immediately on the current thread. 13 | */ 14 | private class ImmediateScheduler : ImmediateSchedulerType { 15 | 16 | private let _asyncLock = AsyncLock() 17 | 18 | /** 19 | Schedules an action to be executed immediatelly. 20 | 21 | In case `schedule` is called recursively from inside of `action` callback, scheduled `action` will be enqueued 22 | and executed after current `action`. (`AsyncLock` behavior) 23 | 24 | - parameter state: State passed to the action to be executed. 25 | - parameter action: Action to be executed. 26 | - returns: The disposable object used to cancel the scheduled action (best effort). 27 | */ 28 | func schedule(state: StateType, action: (StateType) -> Disposable) -> Disposable { 29 | let disposable = SingleAssignmentDisposable() 30 | _asyncLock.invoke(AnonymousInvocable { 31 | if disposable.disposed { 32 | return 33 | } 34 | disposable.disposable = action(state) 35 | }) 36 | 37 | return disposable 38 | } 39 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Schedulers/Internal/AnonymousInvocable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnonymousInvocable.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct AnonymousInvocable : InvocableType { 12 | private let _action: () -> () 13 | 14 | init(_ action: () -> ()) { 15 | _action = action 16 | } 17 | 18 | func invoke() { 19 | _action() 20 | } 21 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InvocableScheduledItem.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct InvocableScheduledItem : InvocableType { 12 | 13 | let _invocable: I 14 | let _state: I.Value 15 | 16 | init(invocable: I, state: I.Value) { 17 | _invocable = invocable 18 | _state = state 19 | } 20 | 21 | func invoke() { 22 | _invocable.invoke(_state) 23 | } 24 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InvocableType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol InvocableType { 12 | func invoke() 13 | } 14 | 15 | protocol InvocableWithValueType { 16 | associatedtype Value 17 | 18 | func invoke(value: Value) 19 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScheduledItem.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 9/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct ScheduledItem 12 | : ScheduledItemType 13 | , InvocableType { 14 | typealias Action = T -> Disposable 15 | 16 | private let _action: Action 17 | private let _state: T 18 | 19 | private let _disposable = SingleAssignmentDisposable() 20 | 21 | var disposed: Bool { 22 | return _disposable.disposed 23 | } 24 | 25 | init(action: Action, state: T) { 26 | _action = action 27 | _state = state 28 | } 29 | 30 | func invoke() { 31 | _disposable.disposable = _action(_state) 32 | } 33 | 34 | func dispose() { 35 | _disposable.dispose() 36 | } 37 | } -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItemType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScheduledItemType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol ScheduledItemType 12 | : Cancelable 13 | , InvocableType { 14 | func invoke() 15 | } 16 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Subjects/SubjectType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SubjectType.swift 3 | // Rx 4 | // 5 | // Created by Krunoslav Zaher on 3/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Represents an object that is both an observable sequence as well as an observer. 13 | */ 14 | public protocol SubjectType : ObservableType { 15 | /** 16 | The type of the observer that represents this subject. 17 | 18 | Usually this type is type of subject itself, but it doesn't have to be. 19 | */ 20 | associatedtype SubjectObserverType : ObserverType 21 | 22 | /** 23 | Returns observer interface for subject. 24 | 25 | - returns: Observer interface for subject. 26 | */ 27 | func asObserver() -> SubjectObserverType 28 | 29 | } -------------------------------------------------------------------------------- /Pods/SDWebImage/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 Olivier Poitrey rs@dailymotion.com 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 furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | 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 | 21 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/NSData+ImageContentType.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Fabrice Aneche on 06/01/14. 3 | // Copyright (c) 2014 Dailymotion. All rights reserved. 4 | // 5 | 6 | #import 7 | 8 | @interface NSData (ImageContentType) 9 | 10 | /** 11 | * Compute the content type for an image data 12 | * 13 | * @param data the input data 14 | * 15 | * @return the content type as string (i.e. image/jpeg, image/gif) 16 | */ 17 | + (NSString *)sd_contentTypeForImageData:(NSData *)data; 18 | 19 | @end 20 | 21 | 22 | @interface NSData (ImageContentTypeDeprecated) 23 | 24 | + (NSString *)contentTypeForImageData:(NSData *)data __deprecated_msg("Use `sd_contentTypeForImageData:`"); 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/NSData+ImageContentType.m: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Fabrice Aneche on 06/01/14. 3 | // Copyright (c) 2014 Dailymotion. All rights reserved. 4 | // 5 | 6 | #import "NSData+ImageContentType.h" 7 | 8 | 9 | @implementation NSData (ImageContentType) 10 | 11 | + (NSString *)sd_contentTypeForImageData:(NSData *)data { 12 | uint8_t c; 13 | [data getBytes:&c length:1]; 14 | switch (c) { 15 | case 0xFF: 16 | return @"image/jpeg"; 17 | case 0x89: 18 | return @"image/png"; 19 | case 0x47: 20 | return @"image/gif"; 21 | case 0x49: 22 | case 0x4D: 23 | return @"image/tiff"; 24 | case 0x52: 25 | // R as RIFF for WEBP 26 | if ([data length] < 12) { 27 | return nil; 28 | } 29 | 30 | NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding]; 31 | if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) { 32 | return @"image/webp"; 33 | } 34 | 35 | return nil; 36 | } 37 | return nil; 38 | } 39 | 40 | @end 41 | 42 | 43 | @implementation NSData (ImageContentTypeDeprecated) 44 | 45 | + (NSString *)contentTypeForImageData:(NSData *)data { 46 | return [self sd_contentTypeForImageData:data]; 47 | } 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * Created by james on 9/28/11. 6 | * 7 | * For the full copyright and license information, please view the LICENSE 8 | * file that was distributed with this source code. 9 | */ 10 | 11 | #import 12 | #import "SDWebImageCompat.h" 13 | 14 | @interface UIImage (ForceDecode) 15 | 16 | + (UIImage *)decodedImageWithImage:(UIImage *)image; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/SDWebImageOperation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | 11 | @protocol SDWebImageOperation 12 | 13 | - (void)cancel; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+GIF.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+GIF.h 3 | // LBGIFImage 4 | // 5 | // Created by Laurin Brandner on 06.01.12. 6 | // Copyright (c) 2012 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (GIF) 12 | 13 | + (UIImage *)sd_animatedGIFNamed:(NSString *)name; 14 | 15 | + (UIImage *)sd_animatedGIFWithData:(NSData *)data; 16 | 17 | - (UIImage *)sd_animatedImageByScalingAndCroppingToSize:(CGSize)size; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIImage+MultiFormat.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+MultiFormat.h 3 | // SDWebImage 4 | // 5 | // Created by Olivier Poitrey on 07/06/13. 6 | // Copyright (c) 2013 Dailymotion. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (MultiFormat) 12 | 13 | + (UIImage *)sd_imageWithData:(NSData *)data; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/SDWebImage/SDWebImage/UIView+WebCacheOperation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | #import "SDWebImageManager.h" 11 | 12 | @interface UIView (WebCacheOperation) 13 | 14 | /** 15 | * Set the image load operation (storage in a UIView based dictionary) 16 | * 17 | * @param operation the operation 18 | * @param key key for storing the operation 19 | */ 20 | - (void)sd_setImageLoadOperation:(id)operation forKey:(NSString *)key; 21 | 22 | /** 23 | * Cancel all operations for the current UIView and key 24 | * 25 | * @param key key for identifying the operations 26 | */ 27 | - (void)sd_cancelImageLoadOperationWithKey:(NSString *)key; 28 | 29 | /** 30 | * Just remove the operations corresponding to the current UIView and key without cancelling them 31 | * 32 | * @param key key for identifying the operations 33 | */ 34 | - (void)sd_removeImageLoadOperationWithKey:(NSString *)key; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Alamofire : NSObject 3 | @end 4 | @implementation PodsDummy_Alamofire 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double AlamofireVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char AlamofireVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire.modulemap: -------------------------------------------------------------------------------- 1 | framework module Alamofire { 2 | umbrella header "Alamofire-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Alamofire 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Crashlytics" "${PODS_ROOT}/Headers/Public/Fabric" 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 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/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.4.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Cell+Rx/Cell+Rx-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Cell_Rx : NSObject 3 | @end 4 | @implementation PodsDummy_Cell_Rx 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Cell+Rx/Cell+Rx-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Cell+Rx/Cell+Rx-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double Cell_RxVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char Cell_RxVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Cell+Rx/Cell+Rx.modulemap: -------------------------------------------------------------------------------- 1 | framework module Cell_Rx { 2 | umbrella header "Cell+Rx-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Cell+Rx/Cell+Rx.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Cell+Rx 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/RxSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Crashlytics" "${PODS_ROOT}/Headers/Public/Fabric" 5 | OTHER_LDFLAGS = -framework "UIKit" 6 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 7 | PODS_BUILD_DIR = $BUILD_DIR 8 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Cell+Rx/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.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/DateTools/DateTools-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_DateTools : NSObject 3 | @end 4 | @implementation PodsDummy_DateTools 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/DateTools/DateTools-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/DateTools/DateTools-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "DateTools.h" 4 | #import "DTConstants.h" 5 | #import "DTError.h" 6 | #import "DTTimePeriod.h" 7 | #import "DTTimePeriodChain.h" 8 | #import "DTTimePeriodCollection.h" 9 | #import "DTTimePeriodGroup.h" 10 | #import "NSDate+DateTools.h" 11 | 12 | FOUNDATION_EXPORT double DateToolsVersionNumber; 13 | FOUNDATION_EXPORT const unsigned char DateToolsVersionString[]; 14 | 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/DateTools/DateTools.modulemap: -------------------------------------------------------------------------------- 1 | framework module DateTools { 2 | umbrella header "DateTools-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/DateTools/DateTools.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/DateTools 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Crashlytics" "${PODS_ROOT}/Headers/Public/Fabric" 4 | PODS_BUILD_DIR = $BUILD_DIR 5 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/DateTools/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.7.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MKMapView-ZoomLevel/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.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MKMapView-ZoomLevel/MKMapView-ZoomLevel-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MKMapView_ZoomLevel : NSObject 3 | @end 4 | @implementation PodsDummy_MKMapView_ZoomLevel 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MKMapView-ZoomLevel/MKMapView-ZoomLevel-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MKMapView-ZoomLevel/MKMapView-ZoomLevel-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "MKMapView+ZoomLevel.h" 4 | 5 | FOUNDATION_EXPORT double MKMapView_ZoomLevelVersionNumber; 6 | FOUNDATION_EXPORT const unsigned char MKMapView_ZoomLevelVersionString[]; 7 | 8 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MKMapView-ZoomLevel/MKMapView-ZoomLevel.modulemap: -------------------------------------------------------------------------------- 1 | framework module MKMapView_ZoomLevel { 2 | umbrella header "MKMapView-ZoomLevel-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MKMapView-ZoomLevel/MKMapView-ZoomLevel.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/MKMapView-ZoomLevel 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Crashlytics" "${PODS_ROOT}/Headers/Public/Fabric" 4 | OTHER_LDFLAGS = -framework "CoreLocation" -framework "MapKit" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Moya-ObjectMapper/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.3.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Moya-ObjectMapper/Moya-ObjectMapper-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Moya_ObjectMapper : NSObject 3 | @end 4 | @implementation PodsDummy_Moya_ObjectMapper 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Moya-ObjectMapper/Moya-ObjectMapper-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Moya-ObjectMapper/Moya-ObjectMapper-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double Moya_ObjectMapperVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char Moya_ObjectMapperVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Moya-ObjectMapper/Moya-ObjectMapper.modulemap: -------------------------------------------------------------------------------- 1 | framework module Moya_ObjectMapper { 2 | umbrella header "Moya-ObjectMapper-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Moya-ObjectMapper/Moya-ObjectMapper.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Moya-ObjectMapper 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Alamofire" "$PODS_CONFIGURATION_BUILD_DIR/Moya" "$PODS_CONFIGURATION_BUILD_DIR/ObjectMapper" "$PODS_CONFIGURATION_BUILD_DIR/Result" "$PODS_CONFIGURATION_BUILD_DIR/RxSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Crashlytics" "${PODS_ROOT}/Headers/Public/Fabric" 5 | OTHER_LDFLAGS = -framework "Foundation" 6 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 7 | PODS_BUILD_DIR = $BUILD_DIR 8 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Moya/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 | 7.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Moya/Moya-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Moya : NSObject 3 | @end 4 | @implementation PodsDummy_Moya 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Moya/Moya-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Moya/Moya-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double MoyaVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char MoyaVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Moya/Moya.modulemap: -------------------------------------------------------------------------------- 1 | framework module Moya { 2 | umbrella header "Moya-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Moya/Moya.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Moya 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Alamofire" "$PODS_CONFIGURATION_BUILD_DIR/Result" "$PODS_CONFIGURATION_BUILD_DIR/RxSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Crashlytics" "${PODS_ROOT}/Headers/Public/Fabric" 5 | OTHER_LDFLAGS = -framework "Foundation" 6 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 7 | PODS_BUILD_DIR = $BUILD_DIR 8 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/NSObject+Rx/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.2.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/NSObject+Rx/NSObject+Rx-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_NSObject_Rx : NSObject 3 | @end 4 | @implementation PodsDummy_NSObject_Rx 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/NSObject+Rx/NSObject+Rx-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/NSObject+Rx/NSObject+Rx-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double NSObject_RxVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char NSObject_RxVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/NSObject+Rx/NSObject+Rx.modulemap: -------------------------------------------------------------------------------- 1 | framework module NSObject_Rx { 2 | umbrella header "NSObject+Rx-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/NSObject+Rx/NSObject+Rx.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/NSObject+Rx 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/RxSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Crashlytics" "${PODS_ROOT}/Headers/Public/Fabric" 5 | OTHER_LDFLAGS = -framework "Foundation" 6 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 7 | PODS_BUILD_DIR = $BUILD_DIR 8 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ObjectMapper/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.3.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ObjectMapper/ObjectMapper-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_ObjectMapper : NSObject 3 | @end 4 | @implementation PodsDummy_ObjectMapper 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ObjectMapper/ObjectMapper-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ObjectMapper/ObjectMapper-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double ObjectMapperVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char ObjectMapperVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ObjectMapper/ObjectMapper.modulemap: -------------------------------------------------------------------------------- 1 | framework module ObjectMapper { 2 | umbrella header "ObjectMapper-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/ObjectMapper/ObjectMapper.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/ObjectMapper 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Crashlytics" "${PODS_ROOT}/Headers/Public/Fabric" 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 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Permission/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.5.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Permission/Permission-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Permission : NSObject 3 | @end 4 | @implementation PodsDummy_Permission 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Permission/Permission-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Permission/Permission-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double PermissionVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char PermissionVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Permission/Permission.modulemap: -------------------------------------------------------------------------------- 1 | framework module Permission { 2 | umbrella header "Permission-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Permission/Permission.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Permission 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Crashlytics" "${PODS_ROOT}/Headers/Public/Fabric" 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 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-PokeMap/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-PokeMap/Pods-PokeMap-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_PokeMap : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_PokeMap 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-PokeMap/Pods-PokeMap-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double Pods_PokeMapVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char Pods_PokeMapVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-PokeMap/Pods-PokeMap.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_PokeMap { 2 | umbrella header "Pods-PokeMap-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Result/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 2.1.3 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Result/Result-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Result : NSObject 3 | @end 4 | @implementation PodsDummy_Result 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Result/Result-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Result/Result-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double ResultVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char ResultVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Result/Result.modulemap: -------------------------------------------------------------------------------- 1 | framework module Result { 2 | umbrella header "Result-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Result/Result.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Result 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Crashlytics" "${PODS_ROOT}/Headers/Public/Fabric" 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 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | SWIFT_VERSION = 2.3 11 | -------------------------------------------------------------------------------- /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 | 2.6.0 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 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxCocoa/RxCocoa-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "RxCocoa.h" 4 | #import "_RX.h" 5 | #import "_RXDelegateProxy.h" 6 | #import "_RXKVOObserver.h" 7 | #import "_RXObjCRuntime.h" 8 | 9 | FOUNDATION_EXPORT double RxCocoaVersionNumber; 10 | FOUNDATION_EXPORT const unsigned char RxCocoaVersionString[]; 11 | 12 | -------------------------------------------------------------------------------- /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/RxSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Crashlytics" "${PODS_ROOT}/Headers/Public/Fabric" 5 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 6 | PODS_BUILD_DIR = $BUILD_DIR 7 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxOptional/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 2.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxOptional/RxOptional-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxOptional : NSObject 3 | @end 4 | @implementation PodsDummy_RxOptional 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxOptional/RxOptional-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxOptional/RxOptional-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double RxOptionalVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char RxOptionalVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxOptional/RxOptional.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxOptional { 2 | umbrella header "RxOptional-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxOptional/RxOptional.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/RxOptional 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/RxCocoa" "$PODS_CONFIGURATION_BUILD_DIR/RxSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Crashlytics" "${PODS_ROOT}/Headers/Public/Fabric" 5 | OTHER_LDFLAGS = -framework "Foundation" 6 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 7 | PODS_BUILD_DIR = $BUILD_DIR 8 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | -------------------------------------------------------------------------------- /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 | 2.6.0 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 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxSwift/RxSwift-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double RxSwiftVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char RxSwiftVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /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 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Crashlytics" "${PODS_ROOT}/Headers/Public/Fabric" 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 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/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.8.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SDWebImage : NSObject 3 | @end 4 | @implementation PodsDummy_SDWebImage 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "NSData+ImageContentType.h" 4 | #import "SDImageCache.h" 5 | #import "SDWebImageCompat.h" 6 | #import "SDWebImageDecoder.h" 7 | #import "SDWebImageDownloader.h" 8 | #import "SDWebImageDownloaderOperation.h" 9 | #import "SDWebImageManager.h" 10 | #import "SDWebImageOperation.h" 11 | #import "SDWebImagePrefetcher.h" 12 | #import "UIButton+WebCache.h" 13 | #import "UIImage+GIF.h" 14 | #import "UIImage+MultiFormat.h" 15 | #import "UIImageView+HighlightedWebCache.h" 16 | #import "UIImageView+WebCache.h" 17 | #import "UIView+WebCacheOperation.h" 18 | #import "MKAnnotationView+WebCache.h" 19 | 20 | FOUNDATION_EXPORT double SDWebImageVersionNumber; 21 | FOUNDATION_EXPORT const unsigned char SDWebImageVersionString[]; 22 | 23 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage.modulemap: -------------------------------------------------------------------------------- 1 | framework module SDWebImage { 2 | umbrella header "SDWebImage-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SDWebImage/SDWebImage.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/SDWebImage 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Crashlytics" "${PODS_ROOT}/Headers/Public/Fabric" 4 | OTHER_LDFLAGS = -framework "ImageIO" -framework "MapKit" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /PokeMap.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /PokeMap.xcodeproj/xcuserdata/ivanbruel.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | PokeMap.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 30CE0DF01D3FB8C700E150AA 16 | 17 | primary 18 | 19 | 20 | 30F661211D41386E0035150B 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /PokeMap.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /PokeMap/AppDelegate/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 20/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import Fabric 11 | import Crashlytics 12 | 13 | @UIApplicationMain 14 | class AppDelegate: UIResponder, UIApplicationDelegate { 15 | 16 | var window: UIWindow? 17 | 18 | func application(application: UIApplication, 19 | didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 20 | Fabric.with([Crashlytics.self]) 21 | UIApplication.sharedApplication() 22 | .setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum) 23 | application 24 | .registerUserNotificationSettings(UIUserNotificationSettings(forTypes: 25 | [.Alert, .Badge, .Sound], categories: nil)) 26 | return true 27 | } 28 | 29 | func applicationWillResignActive(application: UIApplication) { 30 | LocationHelper.sharedInstance.start() 31 | } 32 | 33 | func applicationDidEnterBackground(application: UIApplication) { 34 | 35 | } 36 | 37 | func applicationWillEnterForeground(application: UIApplication) { 38 | LocationHelper.sharedInstance.stop() 39 | } 40 | 41 | func applicationDidBecomeActive(application: UIApplication) { 42 | } 43 | 44 | func applicationWillTerminate(application: UIApplication) { 45 | } 46 | 47 | 48 | } 49 | -------------------------------------------------------------------------------- /PokeMap/Extensions/Array+Unique.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Array+Unique.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 20/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension Array where Element: Equatable { 12 | 13 | func arrayByAppendingContentsOf(elements: Array) -> Array { 14 | return self + elements 15 | } 16 | 17 | /// Returns only the unique elements out of an array 18 | var unique: [Element] { 19 | var uniqueValues: [Element] = [] 20 | forEach { item in 21 | if !uniqueValues.contains(item) { 22 | uniqueValues += [item] 23 | } 24 | } 25 | return uniqueValues 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /PokeMap/Extensions/NSObject+ClassName.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSObject+ClassName.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 20/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension NSObject { 12 | 13 | /// Returns the className for the Class, removing the 'Reddit.' prefix. 14 | static var className: String { 15 | return NSStringFromClass(self).componentsSeparatedByString(".").last ?? NSStringFromClass(self) 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /PokeMap/Globals/Globals.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Globals.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 20/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import ObjectMapper 11 | 12 | // MARK: Generic 13 | class Globals { 14 | 15 | private static let userDefaults = NSUserDefaults.standardUserDefaults() 16 | 17 | } 18 | 19 | 20 | // MARK: User Defaults 21 | extension Globals { 22 | 23 | static var watchlist: [String] { 24 | get { 25 | return userDefaults.stringArrayForKey("watchlist") ?? [] 26 | } 27 | set { 28 | userDefaults.setObject(newValue, forKey: "watchlist") 29 | userDefaults.synchronize() 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /PokeMap/Helpers/FileReader.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FileReader.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 20/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class FileReader { 12 | 13 | class func readFileData(filename: String, fileExtension: String) -> NSData { 14 | if let path = NSBundle(forClass: self).pathForResource(filename, ofType: fileExtension) { 15 | do { 16 | let data = try NSData(contentsOfURL: NSURL(fileURLWithPath: path), 17 | options: NSDataReadingOptions.DataReadingMappedIfSafe) 18 | return data 19 | } catch let error as NSError { 20 | print(error.localizedDescription) 21 | } 22 | } else { 23 | print("Could not find file: \(filename).\(fileExtension)") 24 | } 25 | return NSData() 26 | } 27 | 28 | class func readFileString(filename: String, fileExtension: String) -> String { 29 | return String(data: readFileData(filename, fileExtension: fileExtension), 30 | encoding: NSUTF8StringEncoding) ?? "" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /PokeMap/Helpers/JSONHelper.swift: -------------------------------------------------------------------------------- 1 | // 2 | // JSONHelper.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 20/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class JSONHelper { 12 | 13 | class func flatJSON(json: [String: AnyObject?]?) -> [String: AnyObject]? { 14 | guard let json = json else { 15 | return nil 16 | } 17 | return json.flatMap({ (pair) -> (String, AnyObject)? in 18 | guard let value = pair.1 else { 19 | return nil 20 | } 21 | return (pair.0, value) 22 | }).reduce([:], combine: { (dict, pair) -> [String: AnyObject] in 23 | var dict = dict 24 | dict[pair.0] = pair.1 25 | return dict 26 | }) 27 | } 28 | 29 | class func containsKeys(json: [String: AnyObject]?, keys: [String]) -> Bool { 30 | guard keys.count > 0 else { 31 | return true 32 | } 33 | 34 | guard let json = json else { 35 | return false 36 | } 37 | 38 | return keys.reduce(true) { $0.0 && json.keys.contains($0.1) } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /PokeMap/Helpers/JSONReader.swift: -------------------------------------------------------------------------------- 1 | // 2 | // JSONReader.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 20/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import ObjectMapper 11 | 12 | class JSONReader { 13 | 14 | class func readFromJSON(filename: String) -> T? { 15 | return Mapper().map(JSONReader.readJSONString(filename)) 16 | } 17 | 18 | class func readJSONString(filename: String) -> String? { 19 | return String(data: readJSONData(filename), encoding: NSUTF8StringEncoding) 20 | } 21 | 22 | class func readJSONData(filename: String) -> NSData { 23 | return FileReader.readFileData(filename, fileExtension: "json") 24 | } 25 | 26 | class func readJSONDictionary(filename: String) -> [String: String] { 27 | do { 28 | return try NSJSONSerialization.JSONObjectWithData(readJSONData(filename), 29 | options: []) as? [String: String] ?? [:] 30 | } catch let error as NSError { 31 | print(error) 32 | return [:] 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /PokeMap/Helpers/Observable+Void.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Observable+Void.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 20/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | func void(_: T) -> Void { 12 | return Void() 13 | } 14 | -------------------------------------------------------------------------------- /PokeMap/Helpers/PokedexHelper.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PokedexHelper.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 20/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class PokedexHelper { 12 | 13 | private let pokemonHash: [String: String] 14 | 15 | static let sharedInstance = PokedexHelper() 16 | 17 | init() { 18 | pokemonHash = JSONReader.readJSONDictionary("Pokedex") 19 | } 20 | 21 | func allPokemons(maxNumber: Int) -> [String: String] { 22 | var pokemons = [String: String]() 23 | for number in 1...maxNumber { 24 | let id = "\(number)" 25 | pokemons[id] = nameFromId(id) 26 | } 27 | return pokemons 28 | } 29 | 30 | func nameFromId(pokemonId: String) -> String { 31 | return pokemonHash[pokemonId] ?? "Missigno" 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /PokeMap/Model/ScanJob.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Job.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 21/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import ObjectMapper 11 | 12 | struct ScanJob: Mappable { 13 | 14 | var status: String! 15 | var jobId: String! 16 | 17 | // MARK: JSON 18 | init?(_ map: Map) { 19 | let keys = ["status", "jobId"] 20 | guard JSONHelper.containsKeys(map.JSONDictionary, keys: keys) else { 21 | print(map.JSONDictionary) 22 | return nil 23 | } 24 | } 25 | 26 | mutating func mapping(map: Map) { 27 | status <- map["status"] 28 | jobId <- map["jobId"] 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /PokeMap/Model/Transforms/EpochDateTransform.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EpochDateTransform.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 20/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import ObjectMapper 11 | 12 | class EpochDateTransform: TransformType { 13 | typealias Object = NSDate 14 | typealias JSON = Int 15 | 16 | init() {} 17 | 18 | func transformFromJSON(value: AnyObject?) -> Object? { 19 | guard let value = value as? Int else { 20 | return nil 21 | } 22 | return NSDate(timeIntervalSince1970: Double(value)) 23 | } 24 | 25 | func transformToJSON(value: Object?) -> JSON? { 26 | return value.flatMap { Int($0.timeIntervalSince1970) } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /PokeMap/Network/Network.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Network.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 20/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import Moya 11 | import RxSwift 12 | 13 | class Network { 14 | 15 | private static var provider = RxMoyaProvider(endpointClosure: { 16 | target -> Endpoint in 17 | return Endpoint(URL: target.url, 18 | sampleResponseClosure: { .NetworkResponse(200, target.sampleData) }, 19 | method: target.method, 20 | parameters: target.parameters, 21 | parameterEncoding: target.parameterEncoding, 22 | httpHeaderFields: target.headers) 23 | }, plugins: [ 24 | NetworkLoggerPlugin(cURL: true) 25 | ]) 26 | } 27 | 28 | // MARK: Public Methods 29 | extension Network { 30 | 31 | static func request(target: API) -> Observable { 32 | return provider.request(target) 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /PokeMap/Resources/JSON/RarePokemons.json: -------------------------------------------------------------------------------- 1 | {"rare": ["2", "3", "5", "6", "8", "9", "12", "15", "18", "20", "22", "24", "25", "26", "28", "30", "31", "33", "34", "36", "38", "40", "44", "45", "47", "49", "51", "53", "55", "57", "59", "62", "64", "65", "67", "68", "71", "73", "76", "78", "80", "82", "83", "85", "87", "3"]} 2 | -------------------------------------------------------------------------------- /PokeMap/Resources/JSON/Scan.json: -------------------------------------------------------------------------------- 1 | {"status":"success","jobId":"29327db392cf4e317d652111a4dcb216"} -------------------------------------------------------------------------------- /PokeMap/Resources/LocationFiles/oeiras.gpx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | coords0 6 | 7 | 8 | 9 | 10 | coords01 11 | 12 | 13 | 14 | 15 | coords012 16 | 17 | 18 | 19 | 20 | coords0123 21 | 22 | 23 | 24 | 25 | coords01234 26 | 27 | 28 | 29 | 30 | coords012345 31 | 32 | 33 | 34 | 35 | coords0123456 36 | 37 | 38 | 39 | 40 | coords01234567 41 | 42 | 43 | 44 | 45 | coords012345678 46 | 47 | 48 | 49 | 50 | coords0123456789 51 | 52 | 53 | -------------------------------------------------------------------------------- /PokeMap/ViewModels/Map/PokemonMapViewModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PokemonMapViewModel.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 20/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import Moya 11 | import ObjectMapper 12 | import RxSwift 13 | import Moya_ObjectMapper 14 | 15 | class PokemonMapViewModel { 16 | 17 | private let pokemons: Variable<[Pokemon]> = Variable([]) 18 | 19 | var viewModels: Observable<[PokemonMapItemViewModel]> { 20 | return Observable.combineLatest(pokemons.asObservable(), NSTimer.rx_timer) { ($0, $1) } 21 | .map { (pokemons, _) in 22 | pokemons.filter { !$0.expired && $0.isAlive } 23 | .map { PokemonMapItemViewModel(pokemon: $0) } 24 | } 25 | } 26 | 27 | func loadPokemons(latitude: Double, longitude: Double, jobId: String?) -> Observable { 28 | return Network.request(API.Pokemons(latitude: latitude, longitude: longitude, jobId: jobId)) 29 | .mapArray(Pokemon.self, key: "pokemon") 30 | .doOnNext { [weak self] pokemons in 31 | guard let `self` = self else { return } 32 | let allPokemons = (pokemons + self.pokemons.value).unique 33 | self.pokemons.value = allPokemons 34 | }.map(void) 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /PokeMap/ViewModels/Watchlist/PokemonWatchlistItemViewModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PokemonWatchlistItemViewModel.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 20/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | 12 | class PokemonWatchlistItemViewModel { 13 | 14 | let identifier: String 15 | let text: String 16 | var watched: Variable 17 | 18 | 19 | var imageURL: NSURL { 20 | return NSURL(string: "https://ugc.pokevision.com/images/pokemon/\(identifier).png")! 21 | } 22 | 23 | init(identifier: String, name: String) { 24 | self.identifier = identifier 25 | self.text = "\(identifier) - \(name)" 26 | self.watched = Variable(Globals.watchlist.contains(identifier)) 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /PokeMap/ViewModels/Watchlist/PokemonWatchlistViewModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PokemonWatchlistViewModel.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 20/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | 12 | class PokemonWatchlistViewModel { 13 | 14 | private let _viewModels: Variable<[PokemonWatchlistItemViewModel]> 15 | 16 | var viewModels: Observable<[PokemonWatchlistItemViewModel]> { 17 | return _viewModels.asObservable() 18 | } 19 | 20 | init() { 21 | let allPokemons = PokedexHelper.sharedInstance.allPokemons(151) 22 | .map { PokemonWatchlistItemViewModel(identifier: $0.0, name: $0.1) } 23 | 24 | _viewModels = Variable(allPokemons.sort { (lhs, rhs) -> Bool in 25 | return Int(lhs.identifier) < Int(rhs.identifier) 26 | }) 27 | } 28 | 29 | func watch(index: Int) { 30 | let viewModel = _viewModels.value[index] 31 | var watchlist = Globals.watchlist 32 | watchlist.append(viewModel.identifier) 33 | Globals.watchlist = watchlist 34 | viewModel.watched.value = true 35 | } 36 | 37 | func unwatch(index: Int) { 38 | let viewModel = _viewModels.value[index] 39 | if let index = Globals.watchlist.indexOf(viewModel.identifier) { 40 | Globals.watchlist.removeAtIndex(index) 41 | } 42 | viewModel.watched.value = false 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /PokeMap/Views/Annotations/PokemonAnnotation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PokemonAnnotation.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 20/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import MapKit 11 | import SDWebImage 12 | 13 | class PokemonAnnotation: NSObject, MKAnnotation { 14 | 15 | let coordinate: CLLocationCoordinate2D 16 | let identifier: String 17 | let title: String? 18 | var subtitle: String? 19 | let expiration: NSDate 20 | let imageURL: NSURL 21 | 22 | init(coordinate: CLLocationCoordinate2D, identifier: String, title: String, expiration: NSDate, 23 | imageURL: NSURL) { 24 | self.coordinate = coordinate 25 | self.identifier = identifier 26 | self.title = title 27 | self.subtitle = nil 28 | self.expiration = expiration 29 | self.imageURL = imageURL 30 | } 31 | 32 | var expired: Bool { 33 | return expiration.compare(NSDate()) != .OrderedDescending 34 | } 35 | 36 | var annotationView: MKAnnotationView { 37 | let annotationView = MKAnnotationView(annotation: self, reuseIdentifier: "PokemonAnnotation") 38 | annotationView.enabled = true 39 | annotationView.canShowCallout = true 40 | annotationView.sd_setImageWithURL(imageURL) 41 | return annotationView 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /PokeMap/Views/Cells/WatchlistTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // WatchlistTableViewCell.swift 3 | // PokeMap 4 | // 5 | // Created by Ivan Bruel on 20/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import SDWebImage 11 | import Cell_Rx 12 | 13 | class WatchlistTableViewCell: UITableViewCell, ReusableCell { 14 | 15 | @IBOutlet private weak var pokemonImageView: UIImageView! 16 | @IBOutlet private weak var nameLabel: UILabel! 17 | 18 | var viewModel: PokemonWatchlistItemViewModel? { 19 | didSet { 20 | if let viewModel = viewModel { 21 | pokemonImageView.sd_setImageWithURL(viewModel.imageURL) 22 | nameLabel.text = viewModel.text 23 | viewModel.watched.asObservable() 24 | .subscribeNext { [weak self] watched in 25 | self?.accessoryType = watched ? .Checkmark : .None 26 | }.addDisposableTo(rx_reusableDisposeBag) 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /PokeMapTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /PokeMapTests/PokeMapTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PokeMapTests.swift 3 | // PokeMapTests 4 | // 5 | // Created by Ivan Bruel on 21/07/16. 6 | // Copyright © 2016 Faber Ventures. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class PokeMapTests: XCTestCase { 12 | 13 | override func setUp() { 14 | super.setUp() 15 | } 16 | 17 | override func tearDown() { 18 | super.tearDown() 19 | } 20 | 21 | func testExample() { 22 | // This is an example of a functional test case. 23 | // Use XCTAssert and related functions to verify your tests produce the correct results. 24 | } 25 | 26 | func testPerformanceExample() { 27 | // This is an example of a performance test case. 28 | self.measureBlock { 29 | // Put the code you want to measure the time of here. 30 | } 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Resources/MapScreenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/Resources/MapScreenshot.png -------------------------------------------------------------------------------- /Resources/WatchlistScreenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/Resources/WatchlistScreenshot.png -------------------------------------------------------------------------------- /fastlane/Appfile: -------------------------------------------------------------------------------- 1 | app_identifier "vc.faber.PokeMap" # The bundle identifier of your app 2 | apple_id ENV["POKEMAP_APPLE_ID"] # Your Apple email address 3 | 4 | # You can uncomment any of the lines below and add your own 5 | # team selection in case you're in multiple teams 6 | team_name ENV["POKEMAP_TEAM_NAME"] 7 | team_id ENV["POKEMAP_TEAM_ID"] 8 | 9 | 10 | # you can even provide different app identifiers, Apple IDs and team names per lane: 11 | # https://github.com/KrauseFx/fastlane/blob/master/docs/Appfile.md 12 | -------------------------------------------------------------------------------- /fastlane/Deliverfile: -------------------------------------------------------------------------------- 1 | ###################### More Options ###################### 2 | # If you want to have even more control, check out the documentation 3 | # https://github.com/KrauseFx/deliver/blob/master/Deliverfile.md 4 | 5 | 6 | ###################### Automatically generated ###################### 7 | # Feel free to remove the following line if you use fastlane (which you should) 8 | 9 | app_identifier "vc.faber.PokeMap" # The bundle identifier of your app 10 | username ENV["POKEMAP_APPLE_ID"] # your Apple ID user 11 | -------------------------------------------------------------------------------- /fastlane/README.md: -------------------------------------------------------------------------------- 1 | fastlane documentation 2 | ================ 3 | # Installation 4 | ``` 5 | sudo gem install fastlane 6 | ``` 7 | # Available Actions 8 | ## iOS 9 | ### ios test 10 | ``` 11 | fastlane ios test 12 | ``` 13 | Runs all the unit tests 14 | ### ios fabric 15 | ``` 16 | fastlane ios fabric 17 | ``` 18 | Submit a new Beta Build to Fabric 19 | 20 | This will also make sure the profile is up to date 21 | ### ios itc 22 | ``` 23 | fastlane ios itc 24 | ``` 25 | Submit a new Beta Build to Apple TestFlight 26 | 27 | This will also make sure the profile is up to date 28 | 29 | ---- 30 | 31 | This README.md is auto-generated and will be re-generated every time to run [fastlane](https://fastlane.tools). 32 | More information about fastlane can be found on [https://fastlane.tools](https://fastlane.tools). 33 | The documentation of fastlane can be found on [GitHub](https://github.com/fastlane/fastlane/tree/master/fastlane). -------------------------------------------------------------------------------- /fastlane/Scanfile: -------------------------------------------------------------------------------- 1 | scheme "Reddit" 2 | clean true 3 | output_types "html" 4 | -------------------------------------------------------------------------------- /fastlane/Snapfile: -------------------------------------------------------------------------------- 1 | # Uncomment the lines below you want to change by removing the # in the beginning 2 | 3 | # A list of devices you want to take the screenshots from 4 | # devices([ 5 | # "iPhone 6", 6 | # "iPhone 6 Plus", 7 | # "iPhone 5", 8 | # "iPhone 4s", 9 | # "iPad Retina" 10 | # ]) 11 | 12 | languages([ 13 | "en-US" 14 | ]) 15 | 16 | # The name of the scheme which contains the UI Tests 17 | # scheme "SchemeName" 18 | 19 | # Where should the resulting screenshots be stored? 20 | # output_directory "./screenshots" 21 | 22 | # clear_previous_screenshots # remove the '#' to clear all previously generated screenshots before creating new ones 23 | 24 | # Choose which project/workspace to use 25 | # project "./Project.xcodeproj" 26 | # workspace "./Project.xcworkspace" 27 | 28 | # For more information about all available options run 29 | # snapshot --help 30 | -------------------------------------------------------------------------------- /fastlane/metadata/copyright.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/fastlane/metadata/copyright.txt -------------------------------------------------------------------------------- /fastlane/metadata/en-US/description.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/fastlane/metadata/en-US/description.txt -------------------------------------------------------------------------------- /fastlane/metadata/en-US/keywords.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/fastlane/metadata/en-US/keywords.txt -------------------------------------------------------------------------------- /fastlane/metadata/en-US/marketing_url.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/fastlane/metadata/en-US/marketing_url.txt -------------------------------------------------------------------------------- /fastlane/metadata/en-US/name.txt: -------------------------------------------------------------------------------- 1 | Chic by Choice -------------------------------------------------------------------------------- /fastlane/metadata/en-US/privacy_url.txt: -------------------------------------------------------------------------------- 1 | http://chic-by-choice.com/en/privacy -------------------------------------------------------------------------------- /fastlane/metadata/en-US/release_notes.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/fastlane/metadata/en-US/release_notes.txt -------------------------------------------------------------------------------- /fastlane/metadata/en-US/support_url.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/fastlane/metadata/en-US/support_url.txt -------------------------------------------------------------------------------- /fastlane/metadata/primary_category.txt: -------------------------------------------------------------------------------- 1 | MZGenre.Lifestyle -------------------------------------------------------------------------------- /fastlane/metadata/primary_first_sub_category.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/fastlane/metadata/primary_first_sub_category.txt -------------------------------------------------------------------------------- /fastlane/metadata/primary_second_sub_category.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/fastlane/metadata/primary_second_sub_category.txt -------------------------------------------------------------------------------- /fastlane/metadata/secondary_category.txt: -------------------------------------------------------------------------------- 1 | MZGenre.Apps.Shopping -------------------------------------------------------------------------------- /fastlane/metadata/secondary_first_sub_category.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/fastlane/metadata/secondary_first_sub_category.txt -------------------------------------------------------------------------------- /fastlane/metadata/secondary_second_sub_category.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PokeMapCommunity/PokeMap-iOS/458a2da4ee700377ad53d7f3f5986fa29ceabbea/fastlane/metadata/secondary_second_sub_category.txt --------------------------------------------------------------------------------