diff --git a/Rx.xcodeproj/project.pbxproj b/Rx.xcodeproj/project.pbxproj index 49ac4c00..a0536ce7 100644 --- a/Rx.xcodeproj/project.pbxproj +++ b/Rx.xcodeproj/project.pbxproj @@ -1129,6 +1129,9 @@ D2EBEB431BB9B6DE003A27DC /* SubjectType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CC11B8A72BE0088E94D /* SubjectType.swift */; }; D2EBEB441BB9B6DE003A27DC /* Variable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093CC21B8A72BE0088E94D /* Variable.swift */; }; D2EBEB8A1BB9B9EE003A27DC /* ObservableConvertibleType+Blocking.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093F581B8A73A20088E94D /* ObservableConvertibleType+Blocking.swift */; }; + D2F461021CD7AC1F00527B4D /* Reactive.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2F461001CD7ABE400527B4D /* Reactive.swift */; }; + D2F461031CD7AC2000527B4D /* Reactive.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2F461001CD7ABE400527B4D /* Reactive.swift */; }; + D2F461041CD7AC2100527B4D /* Reactive.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2F461001CD7ABE400527B4D /* Reactive.swift */; }; D2FC15B31BCB95E5007361FF /* SkipWhile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D22B6D251BC8504A00BCE0AB /* SkipWhile.swift */; }; D2FC15B41BCB95E7007361FF /* SkipWhile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D22B6D251BC8504A00BCE0AB /* SkipWhile.swift */; }; D2FC15B51BCB95E8007361FF /* SkipWhile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D22B6D251BC8504A00BCE0AB /* SkipWhile.swift */; }; @@ -1690,6 +1693,7 @@ D285BAC31BC0231000B3F602 /* SkipUntil.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SkipUntil.swift; sourceTree = ""; }; D2EA280C1BB9B5A200880ED3 /* RxSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D2EBEB811BB9B99D003A27DC /* RxBlocking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxBlocking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D2F461001CD7ABE400527B4D /* Reactive.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Reactive.swift; sourceTree = ""; }; F31F35AF1BB4FED800961002 /* UIStepper+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIStepper+Rx.swift"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -2087,6 +2091,7 @@ C8DB968C1BF7595D0084BD53 /* KVORepresentable+Swift.swift */, C8BCD3F31C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift */, C8D132431C42D15E00B59FFF /* SectionedViewDataSourceType.swift */, + D2F461001CD7ABE400527B4D /* Reactive.swift */, ); path = Common; sourceTree = ""; @@ -3294,6 +3299,7 @@ C80D338F1B91EF9E0014629D /* Observable+Bind.swift in Sources */, C88254311B8A752B00B02D69 /* UISegmentedControl+Rx.swift in Sources */, C8093EED1B8A732E0088E94D /* KVOObservable.swift in Sources */, + D2F461021CD7AC1F00527B4D /* Reactive.swift in Sources */, AAE623761C82475700FC7801 /* UIProgressView+Rx.swift in Sources */, C8DB968D1BF7595D0084BD53 /* KVORepresentable+Swift.swift in Sources */, C80DDEB11BCE8CA3006A1832 /* Driver+Operators+arity.swift in Sources */, @@ -3360,6 +3366,7 @@ C8DB96841BF754C80084BD53 /* NSObject+Rx+KVORepresentable.swift in Sources */, C8C4B4C31C17727000828BD5 /* MessageSentObserver.swift in Sources */, C849EF8C1C3195950048AC4A /* Variable+Driver.swift in Sources */, + D2F461031CD7AC2000527B4D /* Reactive.swift in Sources */, C8093F461B8A732E0088E94D /* NSButton+Rx.swift in Sources */, C80DDEA01BCE69BA006A1832 /* Driver+Subscription.swift in Sources */, C8093ED61B8A732E0088E94D /* _RXDelegateProxy.m in Sources */, @@ -4288,6 +4295,7 @@ C80DDEA11BCE69BA006A1832 /* Driver+Subscription.swift in Sources */, D2138C891BB9BEBE00339B5C /* DelegateProxyType.swift in Sources */, C811C89F1C24D80100A2DDD4 /* DeallocObservable.swift in Sources */, + D2F461041CD7AC2100527B4D /* Reactive.swift in Sources */, C8BCD3EF1C14B5FB005F1280 /* UIView+Rx.swift in Sources */, D2138C921BB9BED600339B5C /* KVOObserver.swift in Sources */, D2138C831BB9BEBE00339B5C /* _RXKVOObserver.m in Sources */, diff --git a/RxCocoa/Common/Reactive.swift b/RxCocoa/Common/Reactive.swift new file mode 100644 index 00000000..56bc5846 --- /dev/null +++ b/RxCocoa/Common/Reactive.swift @@ -0,0 +1,11 @@ +// +// Reactive.swift +// Rx +// +// Created by Yury Korolev on 5/2/16. +// Copyright © 2016 Krunoslav Zaher. All rights reserved. +// + +public protocol Reactive { + +} diff --git a/RxCocoa/iOS/UIGestureRecognizer+Rx.swift b/RxCocoa/iOS/UIGestureRecognizer+Rx.swift index ef1bba52..fae5e6f5 100644 --- a/RxCocoa/iOS/UIGestureRecognizer+Rx.swift +++ b/RxCocoa/iOS/UIGestureRecognizer+Rx.swift @@ -51,15 +51,9 @@ class GestureTarget: RxTarget { } } -public protocol Rx { - -} +extension UIGestureRecognizer: Reactive { } -extension UIGestureRecognizer: Rx { - -} - -extension Rx where Self: UIGestureRecognizer { +extension Reactive where Self: UIGestureRecognizer { /** Reactive wrapper for gesture recognizer events. diff --git a/RxExample/RxExample.xcodeproj/project.pbxproj b/RxExample/RxExample.xcodeproj/project.pbxproj index be29b700..d9df842f 100644 --- a/RxExample/RxExample.xcodeproj/project.pbxproj +++ b/RxExample/RxExample.xcodeproj/project.pbxproj @@ -440,6 +440,7 @@ CBEE77541BD8C7B700AD584C /* ToArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBEE77531BD8C7B700AD584C /* ToArray.swift */; }; D2245A191BD5654C00E7146F /* WithLatestFrom.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2245A0B1BD564A700E7146F /* WithLatestFrom.swift */; }; D2AF91981BD3D95900A008C1 /* Using.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2AF91881BD2C51900A008C1 /* Using.swift */; }; + D2F4611B1CD7AC9000527B4D /* Reactive.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2F461051CD7AC4D00527B4D /* Reactive.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -960,6 +961,7 @@ CBEE77531BD8C7B700AD584C /* ToArray.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ToArray.swift; sourceTree = ""; }; D2245A0B1BD564A700E7146F /* WithLatestFrom.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WithLatestFrom.swift; sourceTree = ""; }; D2AF91881BD2C51900A008C1 /* Using.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Using.swift; sourceTree = ""; }; + D2F461051CD7AC4D00527B4D /* Reactive.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Reactive.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -1626,6 +1628,7 @@ C8CC3E6B1C95CB5300ABA17E /* Common */ = { isa = PBXGroup; children = ( + D2F461051CD7AC4D00527B4D /* Reactive.swift */, C8CC3E6C1C95CB5300ABA17E /* _RX.h */, C8CC3E6D1C95CB5300ABA17E /* _RX.m */, C8CC3E6E1C95CB5300ABA17E /* _RXDelegateProxy.h */, @@ -2416,6 +2419,7 @@ C8CC3F0C1C95CB5300ABA17E /* UICollectionView+Rx.swift in Sources */, C8297E561B6CF905000589EA /* WikipediaPage.swift in Sources */, C8297E571B6CF905000589EA /* Randomizer.swift in Sources */, + D2F4611B1CD7AC9000527B4D /* Reactive.swift in Sources */, C89464C31BC6C2B00055219D /* Concat.swift in Sources */, C89464F41BC6C2B00055219D /* ObservableType.swift in Sources */, C89464CE1BC6C2B00055219D /* Generate.swift in Sources */,