Merge branch 'develop' of github.com:ReactiveX/RxSwift into feature/retryWhen
This commit is contained in:
commit
567fa9d508
|
|
@ -21,6 +21,8 @@ Operators are stateless by default.
|
|||
* [`never`](http://reactivex.io/documentation/operators/empty-never-throw.html)
|
||||
* [`returnElement` / `just`](http://reactivex.io/documentation/operators/just.html)
|
||||
* [`returnElements`](http://reactivex.io/documentation/operators/from.html)
|
||||
* [`range`](http://reactivex.io/documentation/operators/range.html)
|
||||
* [`repeatElement`](http://reactivex.io/documentation/operators/repeat.html)
|
||||
* [`timer`](http://reactivex.io/documentation/operators/timer.html)
|
||||
|
||||
#### Transforming Observables
|
||||
|
|
@ -32,10 +34,12 @@ Operators are stateless by default.
|
|||
#### Filtering Observables
|
||||
* [`debounce` / `throttle`](http://reactivex.io/documentation/operators/debounce.html)
|
||||
* [`distinctUntilChanged`](http://reactivex.io/documentation/operators/distinct.html)
|
||||
* [`elementAt`](http://reactivex.io/documentation/operators/elementat.html)
|
||||
* [`filter` / `where`](http://reactivex.io/documentation/operators/filter.html)
|
||||
* [`sample`](http://reactivex.io/documentation/operators/sample.html)
|
||||
* [`skip`](http://reactivex.io/documentation/operators/skip.html)
|
||||
* [`take`](http://reactivex.io/documentation/operators/take.html)
|
||||
* [`takeLast`](http://reactivex.io/documentation/operators/takelast.html)
|
||||
|
||||
#### Combining Observables
|
||||
|
||||
|
|
@ -57,11 +61,13 @@ Operators are stateless by default.
|
|||
* [`observeOn` / `observeSingleOn`](http://reactivex.io/documentation/operators/observeon.html)
|
||||
* [`subscribe`](http://reactivex.io/documentation/operators/subscribe.html)
|
||||
* [`subscribeOn`](http://reactivex.io/documentation/operators/subscribeon.html)
|
||||
* [`using`](http://reactivex.io/documentation/operators/using.html)
|
||||
* debug
|
||||
|
||||
#### Conditional and Boolean Operators
|
||||
* [`amb`](http://reactivex.io/documentation/operators/amb.html)
|
||||
* [`skipWhile`](http://reactivex.io/documentation/operators/skipwhile.html)
|
||||
* [`skipUntil`](http://reactivex.io/documentation/operators/skipuntil.html)
|
||||
* [`takeUntil`](http://reactivex.io/documentation/operators/takeuntil.html)
|
||||
* [`takeWhile`](http://reactivex.io/documentation/operators/takewhile.html)
|
||||
|
||||
|
|
@ -69,6 +75,7 @@ Operators are stateless by default.
|
|||
|
||||
* [`concat`](http://reactivex.io/documentation/operators/concat.html)
|
||||
* [`reduce` / `aggregate`](http://reactivex.io/documentation/operators/reduce.html)
|
||||
* [`toArray`](http://reactivex.io/documentation/operators/to.html)
|
||||
|
||||
#### Connectable Observable Operators
|
||||
|
||||
|
|
@ -434,6 +441,6 @@ extension NSTextField {
|
|||
public var rx_delegate: DelegateProxy {}
|
||||
|
||||
public var rx_text: ControlProperty<String> {}
|
||||
|
||||
|
||||
}
|
||||
```
|
||||
|
|
|
|||
|
|
@ -304,7 +304,7 @@ Let's create a function which creates a sequence that returns one element upon s
|
|||
func myJust<E>(element: E) -> Observable<E> {
|
||||
return create { observer in
|
||||
observer.on(.Next(element))
|
||||
obsever.on(.Completed)
|
||||
observer.on(.Completed)
|
||||
return NopDisposable.instance
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ example("combineLatest 1") {
|
|||
let intOb1 = PublishSubject<String>()
|
||||
let intOb2 = PublishSubject<Int>()
|
||||
|
||||
combineLatest(intOb1, intOb2) {
|
||||
_ = combineLatest(intOb1, intOb2) {
|
||||
"\($0) \($1)"
|
||||
}
|
||||
.subscribe {
|
||||
|
|
@ -68,7 +68,7 @@ example("combineLatest 2") {
|
|||
let intOb1 = just(2)
|
||||
let intOb2 = sequenceOf(0, 1, 2, 3, 4)
|
||||
|
||||
combineLatest(intOb1, intOb2) {
|
||||
_ = combineLatest(intOb1, intOb2) {
|
||||
$0 * $1
|
||||
}
|
||||
.subscribe {
|
||||
|
|
@ -85,7 +85,7 @@ example("combineLatest 3") {
|
|||
let intOb2 = sequenceOf(0, 1, 2, 3)
|
||||
let intOb3 = sequenceOf(0, 1, 2, 3, 4)
|
||||
|
||||
combineLatest(intOb1, intOb2, intOb3) {
|
||||
_ = combineLatest(intOb1, intOb2, intOb3) {
|
||||
($0 + $1) * $2
|
||||
}
|
||||
.subscribe {
|
||||
|
|
@ -108,7 +108,7 @@ example("zip 1") {
|
|||
let intOb1 = PublishSubject<String>()
|
||||
let intOb2 = PublishSubject<Int>()
|
||||
|
||||
zip(intOb1, intOb2) {
|
||||
_ = zip(intOb1, intOb2) {
|
||||
"\($0) \($1)"
|
||||
}
|
||||
.subscribe {
|
||||
|
|
@ -132,7 +132,7 @@ example("zip 2") {
|
|||
|
||||
let intOb2 = sequenceOf(0, 1, 2, 3, 4)
|
||||
|
||||
zip(intOb1, intOb2) {
|
||||
_ = zip(intOb1, intOb2) {
|
||||
$0 * $1
|
||||
}
|
||||
.subscribe {
|
||||
|
|
@ -146,7 +146,7 @@ example("zip 3") {
|
|||
let intOb2 = sequenceOf(0, 1, 2, 3)
|
||||
let intOb3 = sequenceOf(0, 1, 2, 3, 4)
|
||||
|
||||
zip(intOb1, intOb2, intOb3) {
|
||||
_ = zip(intOb1, intOb2, intOb3) {
|
||||
($0 + $1) * $2
|
||||
}
|
||||
.subscribe {
|
||||
|
|
@ -170,7 +170,7 @@ example("merge 1") {
|
|||
let subject1 = PublishSubject<Int>()
|
||||
let subject2 = PublishSubject<Int>()
|
||||
|
||||
sequenceOf(subject1, subject2)
|
||||
_ = sequenceOf(subject1, subject2)
|
||||
.merge()
|
||||
.subscribeNext { int in
|
||||
print(int)
|
||||
|
|
@ -190,7 +190,7 @@ example("merge 2") {
|
|||
let subject1 = PublishSubject<Int>()
|
||||
let subject2 = PublishSubject<Int>()
|
||||
|
||||
sequenceOf(subject1, subject2)
|
||||
_ = sequenceOf(subject1, subject2)
|
||||
.merge(maxConcurrent: 2)
|
||||
.subscribe {
|
||||
print($0)
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ example("takeUntil") {
|
|||
let originalSequence = PublishSubject<Int>()
|
||||
let whenThisSendsNextWorldStops = PublishSubject<Int>()
|
||||
|
||||
originalSequence
|
||||
_ = originalSequence
|
||||
.takeUntil(whenThisSendsNextWorldStops)
|
||||
.subscribe {
|
||||
print($0)
|
||||
|
|
@ -53,7 +53,7 @@ example("takeWhile") {
|
|||
|
||||
let sequence = PublishSubject<Int>()
|
||||
|
||||
sequence
|
||||
_ = sequence
|
||||
.takeWhile { int in
|
||||
int < 4
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
//: [<< Previous](@previous) - [Index](Index)
|
||||
|
||||
import RxSwift
|
||||
import XCPlayground
|
||||
|
||||
/*:
|
||||
## Connectable Observable Operators
|
||||
|
|
@ -15,13 +14,13 @@ func sampleWithoutConnectableOperators() {
|
|||
|
||||
let int1 = interval(1, MainScheduler.sharedInstance)
|
||||
|
||||
int1
|
||||
_ = int1
|
||||
.subscribe {
|
||||
print("first subscription \($0)")
|
||||
}
|
||||
|
||||
delay(5) {
|
||||
int1
|
||||
_ = int1
|
||||
.subscribe {
|
||||
print("second subscription \($0)")
|
||||
}
|
||||
|
|
@ -44,7 +43,7 @@ func sampleWithMulticast() {
|
|||
|
||||
let subject1 = PublishSubject<Int64>()
|
||||
|
||||
subject1
|
||||
_ = subject1
|
||||
.subscribe {
|
||||
print("Subject \($0)")
|
||||
}
|
||||
|
|
@ -52,7 +51,7 @@ func sampleWithMulticast() {
|
|||
let int1 = interval(1, MainScheduler.sharedInstance)
|
||||
.multicast(subject1)
|
||||
|
||||
int1
|
||||
_ = int1
|
||||
.subscribe {
|
||||
print("first subscription \($0)")
|
||||
}
|
||||
|
|
@ -62,14 +61,14 @@ func sampleWithMulticast() {
|
|||
}
|
||||
|
||||
delay(4) {
|
||||
int1
|
||||
_ = int1
|
||||
.subscribe {
|
||||
print("second subscription \($0)")
|
||||
}
|
||||
}
|
||||
|
||||
delay(6) {
|
||||
int1
|
||||
_ = int1
|
||||
.subscribe {
|
||||
print("third subscription \($0)")
|
||||
}
|
||||
|
|
@ -95,7 +94,7 @@ func sampleWithReplayBuffer0() {
|
|||
let int1 = interval(1, MainScheduler.sharedInstance)
|
||||
.replay(0)
|
||||
|
||||
int1
|
||||
_ = int1
|
||||
.subscribe {
|
||||
print("first subscription \($0)")
|
||||
}
|
||||
|
|
@ -105,14 +104,14 @@ func sampleWithReplayBuffer0() {
|
|||
}
|
||||
|
||||
delay(4) {
|
||||
int1
|
||||
_ = int1
|
||||
.subscribe {
|
||||
print("second subscription \($0)")
|
||||
}
|
||||
}
|
||||
|
||||
delay(6) {
|
||||
int1
|
||||
_ = int1
|
||||
.subscribe {
|
||||
print("third subscription \($0)")
|
||||
}
|
||||
|
|
@ -130,7 +129,7 @@ func sampleWithReplayBuffer2() {
|
|||
let int1 = interval(1, MainScheduler.sharedInstance)
|
||||
.replay(2)
|
||||
|
||||
int1
|
||||
_ = int1
|
||||
.subscribe {
|
||||
print("first subscription \($0)")
|
||||
}
|
||||
|
|
@ -140,14 +139,14 @@ func sampleWithReplayBuffer2() {
|
|||
}
|
||||
|
||||
delay(4) {
|
||||
int1
|
||||
_ = int1
|
||||
.subscribe {
|
||||
print("second subscription \($0)")
|
||||
}
|
||||
}
|
||||
|
||||
delay(6) {
|
||||
int1
|
||||
_ = int1
|
||||
.subscribe {
|
||||
print("third subscription \($0)")
|
||||
}
|
||||
|
|
@ -173,7 +172,7 @@ func sampleWithPublish() {
|
|||
let int1 = interval(1, MainScheduler.sharedInstance)
|
||||
.publish()
|
||||
|
||||
int1
|
||||
_ = int1
|
||||
.subscribe {
|
||||
print("first subscription \($0)")
|
||||
}
|
||||
|
|
@ -183,14 +182,14 @@ func sampleWithPublish() {
|
|||
}
|
||||
|
||||
delay(4) {
|
||||
int1
|
||||
_ = int1
|
||||
.subscribe {
|
||||
print("second subscription \($0)")
|
||||
}
|
||||
}
|
||||
|
||||
delay(6) {
|
||||
int1
|
||||
_ = int1
|
||||
.subscribe {
|
||||
print("third subscription \($0)")
|
||||
}
|
||||
|
|
@ -200,6 +199,6 @@ func sampleWithPublish() {
|
|||
|
||||
// sampleWithPublish()
|
||||
|
||||
XCPSetExecutionShouldContinueIndefinitely(true)
|
||||
playgroundShouldContinueIndefinitely()
|
||||
|
||||
//: [Index](Index)
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ example("catchError 1") {
|
|||
let sequenceThatFails = PublishSubject<Int>()
|
||||
let recoverySequence = sequenceOf(100, 200, 300, 400)
|
||||
|
||||
sequenceThatFails
|
||||
_ = sequenceThatFails
|
||||
.catchError { error in
|
||||
return recoverySequence
|
||||
}
|
||||
|
|
@ -40,7 +40,7 @@ example("catchError 1") {
|
|||
example("catchError 2") {
|
||||
let sequenceThatFails = PublishSubject<Int>()
|
||||
|
||||
sequenceThatFails
|
||||
_ = sequenceThatFails
|
||||
.catchErrorJustReturn(100)
|
||||
.subscribe {
|
||||
print($0)
|
||||
|
|
@ -83,7 +83,7 @@ example("retry") {
|
|||
return NopDisposable.instance
|
||||
}
|
||||
|
||||
funnyLookingSequence
|
||||
_ = funnyLookingSequence
|
||||
.retry()
|
||||
.subscribe {
|
||||
print($0)
|
||||
|
|
|
|||
|
|
@ -149,12 +149,12 @@ example("deferred") {
|
|||
}
|
||||
}
|
||||
|
||||
deferredSequence
|
||||
_ = deferredSequence
|
||||
.subscribe { event in
|
||||
print(event)
|
||||
}
|
||||
|
||||
deferredSequence
|
||||
_ = deferredSequence
|
||||
.subscribe { event in
|
||||
print(event)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ This function will perform a function on each element in the sequence until it i
|
|||
|
||||
*/
|
||||
example("reduce") {
|
||||
sequenceOf(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
|
||||
_ = sequenceOf(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
|
||||
.reduce(0, +)
|
||||
.subscribe {
|
||||
print($0)
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ A toolbox of useful Operators for working with Observables.
|
|||
example("subscribe") {
|
||||
let sequenceOfInts = PublishSubject<Int>()
|
||||
|
||||
sequenceOfInts
|
||||
_ = sequenceOfInts
|
||||
.subscribe {
|
||||
print($0)
|
||||
}
|
||||
|
|
@ -40,7 +40,7 @@ There are several variants of the `subscribe` operator.
|
|||
example("subscribeNext") {
|
||||
let sequenceOfInts = PublishSubject<Int>()
|
||||
|
||||
sequenceOfInts
|
||||
_ = sequenceOfInts
|
||||
.subscribeNext {
|
||||
print($0)
|
||||
}
|
||||
|
|
@ -58,7 +58,7 @@ example("subscribeNext") {
|
|||
example("subscribeCompleted") {
|
||||
let sequenceOfInts = PublishSubject<Int>()
|
||||
|
||||
sequenceOfInts
|
||||
_ = sequenceOfInts
|
||||
.subscribeCompleted {
|
||||
print("It's completed")
|
||||
}
|
||||
|
|
@ -76,7 +76,7 @@ example("subscribeCompleted") {
|
|||
example("subscribeError") {
|
||||
let sequenceOfInts = PublishSubject<Int>()
|
||||
|
||||
sequenceOfInts
|
||||
_ = sequenceOfInts
|
||||
.subscribeError { error in
|
||||
print(error)
|
||||
}
|
||||
|
|
@ -98,7 +98,7 @@ register an action to take upon a variety of Observable lifecycle events
|
|||
example("doOn") {
|
||||
let sequenceOfInts = PublishSubject<Int>()
|
||||
|
||||
sequenceOfInts
|
||||
_ = sequenceOfInts
|
||||
.doOn {
|
||||
print("Intercepted event \($0)")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ A Subject is a sort of bridge or proxy that is available in some implementations
|
|||
*/
|
||||
|
||||
func writeSequenceToConsole<O: ObservableType>(name: String, sequence: O) {
|
||||
sequence
|
||||
_ = sequence
|
||||
.subscribe { e in
|
||||
print("Subscription: \(name), event: \(e)")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ Transform the items emitted by an Observable by applying a function to each item
|
|||
example("map") {
|
||||
let originalSequence = sequenceOf(Character("A"), Character("B"), Character("C"))
|
||||
|
||||
originalSequence
|
||||
_ = originalSequence
|
||||
.map { char in
|
||||
char.hashValue
|
||||
}
|
||||
|
|
@ -43,7 +43,7 @@ example("flatMap") {
|
|||
|
||||
let sequenceString = sequenceOf("A", "B", "C", "D", "E", "F", "--")
|
||||
|
||||
sequenceInt
|
||||
_ = sequenceInt
|
||||
.flatMap { int in
|
||||
sequenceString
|
||||
}
|
||||
|
|
@ -65,7 +65,7 @@ Apply a function to each item emitted by an Observable, sequentially, and emit e
|
|||
example("scan") {
|
||||
let sequenceToSum = sequenceOf(0, 1, 2, 3, 4, 5)
|
||||
|
||||
sequenceToSum
|
||||
_ = sequenceToSum
|
||||
.scan(0) { acum, elem in
|
||||
acum + elem
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,4 +13,19 @@ public func delay(delay:Double, closure:()->()) {
|
|||
Int64(delay * Double(NSEC_PER_SEC))
|
||||
),
|
||||
dispatch_get_main_queue(), closure)
|
||||
}
|
||||
}
|
||||
|
||||
#if NOT_IN_PLAYGROUND
|
||||
|
||||
public func playgroundShouldContinueIndefinitely() {
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
import XCPlayground
|
||||
|
||||
public func playgroundShouldContinueIndefinitely() {
|
||||
XCPSetExecutionShouldContinueIndefinitely(true)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -7,6 +7,10 @@
|
|||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
B1B7C3BD1BDD39DB0076934E /* TakeLast.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1B7C3BC1BDD39DB0076934E /* TakeLast.swift */; };
|
||||
B1B7C3BE1BDD39DB0076934E /* TakeLast.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1B7C3BC1BDD39DB0076934E /* TakeLast.swift */; };
|
||||
B1B7C3BF1BDD39DB0076934E /* TakeLast.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1B7C3BC1BDD39DB0076934E /* TakeLast.swift */; };
|
||||
B1B7C3C01BDD39DB0076934E /* TakeLast.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1B7C3BC1BDD39DB0076934E /* TakeLast.swift */; };
|
||||
C8093CC51B8A72BE0088E94D /* Cancelable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C491B8A72BE0088E94D /* Cancelable.swift */; };
|
||||
C8093CC61B8A72BE0088E94D /* Cancelable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C491B8A72BE0088E94D /* Cancelable.swift */; };
|
||||
C8093CC71B8A72BE0088E94D /* AsyncLock.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8093C4B1B8A72BE0088E94D /* AsyncLock.swift */; };
|
||||
|
|
@ -786,6 +790,7 @@
|
|||
|
||||
/* Begin PBXFileReference section */
|
||||
A111CE961B91C97C00D0DCEE /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
B1B7C3BC1BDD39DB0076934E /* TakeLast.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TakeLast.swift; sourceTree = "<group>"; };
|
||||
C809396D1B8A71760088E94D /* RxCocoa.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxCocoa.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
C80939E71B8A71840088E94D /* RxCocoa.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxCocoa.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
C8093BC71B8A71F00088E94D /* RxBlocking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RxBlocking.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
|
|
@ -1221,6 +1226,7 @@
|
|||
C8093C8B1B8A72BE0088E94D /* SubscribeOn.swift */,
|
||||
C8093C8C1B8A72BE0088E94D /* Switch.swift */,
|
||||
C8093C8D1B8A72BE0088E94D /* Take.swift */,
|
||||
B1B7C3BC1BDD39DB0076934E /* TakeLast.swift */,
|
||||
C8093C8E1B8A72BE0088E94D /* TakeUntil.swift */,
|
||||
C8093C8F1B8A72BE0088E94D /* TakeWhile.swift */,
|
||||
C8093C901B8A72BE0088E94D /* Throttle.swift */,
|
||||
|
|
@ -1836,7 +1842,7 @@
|
|||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastSwiftUpdateCheck = 0700;
|
||||
LastUpgradeCheck = 0700;
|
||||
LastUpgradeCheck = 0710;
|
||||
ORGANIZATIONNAME = "Krunoslav Zaher";
|
||||
TargetAttributes = {
|
||||
C8A56AD61AD7424700B4673B = {
|
||||
|
|
@ -2145,6 +2151,7 @@
|
|||
C8093D1A1B8A72BE0088E94D /* DistinctUntilChanged.swift in Sources */,
|
||||
C8093D561B8A72BE0088E94D /* Observable+Binding.swift in Sources */,
|
||||
C8093D7A1B8A72BE0088E94D /* TailRecursiveSink.swift in Sources */,
|
||||
B1B7C3BE1BDD39DB0076934E /* TakeLast.swift in Sources */,
|
||||
C8093CC81B8A72BE0088E94D /* AsyncLock.swift in Sources */,
|
||||
C8093CD81B8A72BE0088E94D /* BinaryDisposable.swift in Sources */,
|
||||
C89CDB371BCB0DD7002063D9 /* ShareReplay1.swift in Sources */,
|
||||
|
|
@ -2267,6 +2274,7 @@
|
|||
C8093D191B8A72BE0088E94D /* DistinctUntilChanged.swift in Sources */,
|
||||
C8093D551B8A72BE0088E94D /* Observable+Binding.swift in Sources */,
|
||||
C8093D791B8A72BE0088E94D /* TailRecursiveSink.swift in Sources */,
|
||||
B1B7C3BD1BDD39DB0076934E /* TakeLast.swift in Sources */,
|
||||
C8093CC71B8A72BE0088E94D /* AsyncLock.swift in Sources */,
|
||||
C8093CD71B8A72BE0088E94D /* BinaryDisposable.swift in Sources */,
|
||||
C89CDB361BCB0DD7002063D9 /* ShareReplay1.swift in Sources */,
|
||||
|
|
@ -2389,6 +2397,7 @@
|
|||
C8F0BFB21BBBFB8B001B112F /* DistinctUntilChanged.swift in Sources */,
|
||||
C8F0BFB31BBBFB8B001B112F /* Observable+Binding.swift in Sources */,
|
||||
C8F0BFB41BBBFB8B001B112F /* TailRecursiveSink.swift in Sources */,
|
||||
B1B7C3C01BDD39DB0076934E /* TakeLast.swift in Sources */,
|
||||
C8F0BFB51BBBFB8B001B112F /* AsyncLock.swift in Sources */,
|
||||
C8F0BFB61BBBFB8B001B112F /* BinaryDisposable.swift in Sources */,
|
||||
C89CDB391BCB0DD7002063D9 /* ShareReplay1.swift in Sources */,
|
||||
|
|
@ -2661,6 +2670,7 @@
|
|||
D2EBEB3A1BB9B6D8003A27DC /* MainScheduler.swift in Sources */,
|
||||
D2EBEB101BB9B6C1003A27DC /* Just.swift in Sources */,
|
||||
D2EBEB181BB9B6C1003A27DC /* Range.swift in Sources */,
|
||||
B1B7C3BF1BDD39DB0076934E /* TakeLast.swift in Sources */,
|
||||
D2EBEAE21BB9B697003A27DC /* Observable.swift in Sources */,
|
||||
D2EBEB091BB9B6C1003A27DC /* DistinctUntilChanged.swift in Sources */,
|
||||
D2EBEB2A1BB9B6C5003A27DC /* Zip+CollectionType.swift in Sources */,
|
||||
|
|
@ -2805,6 +2815,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxCocoa/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxCocoa;
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -2821,6 +2832,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxCocoa/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxCocoa;
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -2837,6 +2849,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxCocoa/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxCocoa;
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -2855,6 +2868,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxCocoa/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxCocoa;
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -2873,6 +2887,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxCocoa/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxCocoa;
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -2891,6 +2906,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxCocoa/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxCocoa;
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -2907,6 +2923,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxBlocking/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxBlocking;
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -2923,6 +2940,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxBlocking/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxBlocking;
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -2939,6 +2957,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxBlocking/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxBlocking;
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -2957,6 +2976,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxBlocking/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxBlocking;
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -2975,6 +2995,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxBlocking/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxBlocking;
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -2993,6 +3014,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxBlocking/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxBlocking;
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3003,6 +3025,7 @@
|
|||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
|
|
@ -3056,6 +3079,7 @@
|
|||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxSwift;
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3074,6 +3098,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxSwift/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxSwift;
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3092,6 +3117,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxSwift/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxSwift;
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3110,6 +3136,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxSwift/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxSwift;
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3120,6 +3147,7 @@
|
|||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
|
|
@ -3173,6 +3201,7 @@
|
|||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
|
|
@ -3224,6 +3253,7 @@
|
|||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxSwift;
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3241,6 +3271,7 @@
|
|||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxSwift;
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3258,6 +3289,7 @@
|
|||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxSwift;
|
||||
SDKROOT = watchos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3276,6 +3308,7 @@
|
|||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxSwift;
|
||||
SDKROOT = watchos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3294,6 +3327,7 @@
|
|||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxSwift;
|
||||
SDKROOT = watchos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3312,6 +3346,7 @@
|
|||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxCocoa;
|
||||
SDKROOT = watchos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3330,6 +3365,7 @@
|
|||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxCocoa;
|
||||
SDKROOT = watchos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3348,6 +3384,7 @@
|
|||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxCocoa;
|
||||
SDKROOT = watchos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3366,6 +3403,7 @@
|
|||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxBlocking;
|
||||
SDKROOT = watchos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3384,6 +3422,7 @@
|
|||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxBlocking;
|
||||
SDKROOT = watchos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3402,6 +3441,7 @@
|
|||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxBlocking;
|
||||
SDKROOT = watchos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3423,6 +3463,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxCocoa/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxCocoa;
|
||||
SDKROOT = appletvos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3441,6 +3482,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxCocoa/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxCocoa;
|
||||
SDKROOT = appletvos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3459,6 +3501,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxCocoa/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxCocoa;
|
||||
SDKROOT = appletvos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3482,7 +3525,7 @@
|
|||
INFOPLIST_FILE = RxSwift/Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxSwift;
|
||||
SDKROOT = appletvos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3501,7 +3544,7 @@
|
|||
INFOPLIST_FILE = RxSwift/Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxSwift;
|
||||
SDKROOT = appletvos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3520,7 +3563,7 @@
|
|||
INFOPLIST_FILE = RxSwift/Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxSwift;
|
||||
SDKROOT = appletvos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3539,6 +3582,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxBlocking/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxBlocking;
|
||||
SDKROOT = appletvos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3557,6 +3601,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxBlocking/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxBlocking;
|
||||
SDKROOT = appletvos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
@ -3575,6 +3620,7 @@
|
|||
INFOPLIST_FILE = "$(SRCROOT)/RxBlocking/Info.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = RxBlocking;
|
||||
SDKROOT = appletvos;
|
||||
SKIP_INSTALL = YES;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
07E300071B14995F00F00100 /* TableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07E300061B14995F00F00100 /* TableViewController.swift */; };
|
||||
07E300091B149A2A00F00100 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07E300081B149A2A00F00100 /* User.swift */; };
|
||||
07E3C2331B03605B0010338D /* Dependencies.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07E3C2321B03605B0010338D /* Dependencies.swift */; };
|
||||
B1B7C3D01BE006870076934E /* TakeLast.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1B7C3CF1BE006870076934E /* TakeLast.swift */; };
|
||||
C803973A1BD3E17D009D8B26 /* ActivityIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C80397391BD3E17D009D8B26 /* ActivityIndicator.swift */; };
|
||||
C803973B1BD3E17D009D8B26 /* ActivityIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C80397391BD3E17D009D8B26 /* ActivityIndicator.swift */; };
|
||||
C80397491BD3E9A6009D8B26 /* GitHubSearchRepositoriesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = C80397481BD3E9A6009D8B26 /* GitHubSearchRepositoriesAPI.swift */; };
|
||||
|
|
@ -451,6 +452,7 @@
|
|||
07E300061B14995F00F00100 /* TableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableViewController.swift; sourceTree = "<group>"; };
|
||||
07E300081B149A2A00F00100 /* User.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = "<group>"; };
|
||||
07E3C2321B03605B0010338D /* Dependencies.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Dependencies.swift; path = Examples/Dependencies.swift; sourceTree = "<group>"; };
|
||||
B1B7C3CF1BE006870076934E /* TakeLast.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TakeLast.swift; sourceTree = "<group>"; };
|
||||
C80397391BD3E17D009D8B26 /* ActivityIndicator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActivityIndicator.swift; sourceTree = "<group>"; };
|
||||
C80397481BD3E9A6009D8B26 /* GitHubSearchRepositoriesAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitHubSearchRepositoriesAPI.swift; sourceTree = "<group>"; };
|
||||
C80DDE7A1BCDA952006A1832 /* SkipWhile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SkipWhile.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -1130,6 +1132,7 @@
|
|||
C894646F1BC6C2B00055219D /* SubscribeOn.swift */,
|
||||
C89464701BC6C2B00055219D /* Switch.swift */,
|
||||
C89464711BC6C2B00055219D /* Take.swift */,
|
||||
B1B7C3CF1BE006870076934E /* TakeLast.swift */,
|
||||
C89464721BC6C2B00055219D /* TakeUntil.swift */,
|
||||
C89464731BC6C2B00055219D /* TakeWhile.swift */,
|
||||
C89464741BC6C2B00055219D /* Throttle.swift */,
|
||||
|
|
@ -1661,6 +1664,7 @@
|
|||
C89464BB1BC6C2B00055219D /* AnonymousObservable.swift in Sources */,
|
||||
C89465991BC6C2BC0055219D /* UISegmentedControl+Rx.swift in Sources */,
|
||||
C8297E371B6CF905000589EA /* RxCollectionViewSectionedDataSource.swift in Sources */,
|
||||
B1B7C3D01BE006870076934E /* TakeLast.swift in Sources */,
|
||||
C89464CD1BC6C2B00055219D /* FlatMap.swift in Sources */,
|
||||
C8297E381B6CF905000589EA /* Changeset.swift in Sources */,
|
||||
C8297E391B6CF905000589EA /* CollectionViewImageCell.swift in Sources */,
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ class CalculatorViewController: ViewController {
|
|||
|
||||
let CLEAR_STATE = CalState(previousNumber: nil, action: .Clear, currentNumber: "0", inScreen: "0", replace: true)
|
||||
|
||||
let diposeBag = DisposeBag()
|
||||
let disposeBag = DisposeBag()
|
||||
|
||||
override func viewDidLoad() {
|
||||
let commands:[Observable<Action>] = [
|
||||
|
|
@ -122,7 +122,7 @@ class CalculatorViewController: ViewController {
|
|||
self?.lastSignLabel.text = ""
|
||||
}
|
||||
}
|
||||
.addDisposableTo(diposeBag)
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
|
||||
func tranformState(a: CalState, _ x: Action) -> CalState {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>Krunoslav-Zaher.$(PRODUCT_NAME:rfc1034identifier)</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
|
|
|||
|
|
@ -54,6 +54,9 @@ class TakeCount<Element>: Producer<Element> {
|
|||
private let _count: Int
|
||||
|
||||
init(source: Observable<Element>, count: Int) {
|
||||
if count < 0 {
|
||||
rxFatalError("count can't be negative")
|
||||
}
|
||||
_source = source
|
||||
_count = count
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,63 @@
|
|||
//
|
||||
// TakeLast.swift
|
||||
// Rx
|
||||
//
|
||||
// Created by Tomi Koskinen on 25/10/15.
|
||||
// Copyright © 2015 Krunoslav Zaher. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
|
||||
class TakeLastSink<ElementType, O: ObserverType where O.E == ElementType> : Sink<O>, ObserverType {
|
||||
typealias Parent = TakeLast<ElementType>
|
||||
typealias E = ElementType
|
||||
|
||||
private let _parent: Parent
|
||||
|
||||
private var _elements: Queue<ElementType>
|
||||
|
||||
init(parent: Parent, observer: O, cancel: Disposable) {
|
||||
_parent = parent
|
||||
_elements = Queue<ElementType>(capacity: parent._count + 1)
|
||||
super.init(observer: observer, cancel: cancel)
|
||||
}
|
||||
|
||||
func on(event: Event<E>) {
|
||||
switch event {
|
||||
case .Next(let value):
|
||||
_elements.enqueue(value)
|
||||
if _elements.count > self._parent._count {
|
||||
_elements.dequeue()
|
||||
}
|
||||
case .Error:
|
||||
observer?.on(event)
|
||||
dispose()
|
||||
case .Completed:
|
||||
for e in _elements {
|
||||
observer?.on(.Next(e))
|
||||
}
|
||||
observer?.on(.Completed)
|
||||
dispose()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class TakeLast<Element>: Producer<Element> {
|
||||
private let _source: Observable<Element>
|
||||
private let _count: Int
|
||||
|
||||
init(source: Observable<Element>, count: Int) {
|
||||
if count < 0 {
|
||||
rxFatalError("count can't be negative")
|
||||
}
|
||||
_source = source
|
||||
_count = count
|
||||
}
|
||||
|
||||
override func run<O : ObserverType where O.E == Element>(observer: O, cancel: Disposable, setSink: (Disposable) -> Void) -> Disposable {
|
||||
let sink = TakeLastSink(parent: self, observer: observer, cancel: cancel)
|
||||
setSink(sink)
|
||||
return _source.subscribe(sink)
|
||||
}
|
||||
}
|
||||
|
|
@ -77,7 +77,27 @@ extension ObservableType {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: takeLast
|
||||
|
||||
extension ObservableType {
|
||||
|
||||
/**
|
||||
Returns a specified number of contiguous elements from the end of an observable sequence.
|
||||
|
||||
This operator accumulates a buffer with a length enough to store elements count elements. Upon completion of the source sequence, this buffer is drained on the result sequence. This causes the elements to be delayed.
|
||||
|
||||
- parameter count: Number of elements to take from the end of the source sequence.
|
||||
- returns: An observable sequence containing the specified number of elements from the end of the source sequence.
|
||||
*/
|
||||
@warn_unused_result(message="http://git.io/rxs.uo")
|
||||
public func takeLast(count: Int)
|
||||
-> Observable<E> {
|
||||
return TakeLast(source: self.asObservable(), count: count)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// MARK: skip
|
||||
|
||||
extension ObservableType {
|
||||
|
|
|
|||
|
|
@ -2816,6 +2816,254 @@ extension ObservableStandardSequenceOperators {
|
|||
}
|
||||
}
|
||||
|
||||
// MARK: takeLast
|
||||
|
||||
extension ObservableStandardSequenceOperators {
|
||||
func testTakeLast_Complete_Less() {
|
||||
let scheduler = TestScheduler(initialClock: 0)
|
||||
|
||||
let xs = scheduler.createHotObservable([
|
||||
next(70, 6),
|
||||
next(150, 4),
|
||||
next(210, 9),
|
||||
next(230, 13),
|
||||
next(270, 7),
|
||||
next(280, 1),
|
||||
next(300, -1),
|
||||
completed(300)
|
||||
])
|
||||
|
||||
let res = scheduler.start {
|
||||
xs.takeLast(7)
|
||||
}
|
||||
|
||||
XCTAssertEqual(res.messages, [
|
||||
next(300, 9),
|
||||
next(300, 13),
|
||||
next(300, 7),
|
||||
next(300, 1),
|
||||
next(300, -1),
|
||||
completed(300)
|
||||
])
|
||||
|
||||
XCTAssertEqual(xs.subscriptions, [
|
||||
Subscription(200, 300)
|
||||
])
|
||||
}
|
||||
|
||||
func testTakeLast_Complete_Same() {
|
||||
let scheduler = TestScheduler(initialClock: 0)
|
||||
|
||||
let xs = scheduler.createHotObservable([
|
||||
next(70, 6),
|
||||
next(150, 4),
|
||||
next(210, 9),
|
||||
next(230, 13),
|
||||
next(270, 7),
|
||||
next(280, 1),
|
||||
next(300, -1),
|
||||
completed(310)
|
||||
])
|
||||
|
||||
let res = scheduler.start {
|
||||
xs.takeLast(5)
|
||||
}
|
||||
|
||||
XCTAssertEqual(res.messages, [
|
||||
next(310, 9),
|
||||
next(310, 13),
|
||||
next(310, 7),
|
||||
next(310, 1),
|
||||
next(310, -1),
|
||||
completed(310)
|
||||
])
|
||||
|
||||
XCTAssertEqual(xs.subscriptions, [
|
||||
Subscription(200, 310)
|
||||
])
|
||||
}
|
||||
|
||||
func testTakeLast_Complete_More() {
|
||||
let scheduler = TestScheduler(initialClock: 0)
|
||||
|
||||
let xs = scheduler.createHotObservable([
|
||||
next(70, 6),
|
||||
next(150, 4),
|
||||
next(210, 9),
|
||||
next(230, 13),
|
||||
next(270, 7),
|
||||
next(280, 1),
|
||||
next(300, -1),
|
||||
next(310, 3),
|
||||
next(340, 8),
|
||||
completed(350)
|
||||
])
|
||||
|
||||
let res = scheduler.start {
|
||||
xs.takeLast(5)
|
||||
}
|
||||
|
||||
XCTAssertEqual(res.messages, [
|
||||
next(350, 7),
|
||||
next(350, 1),
|
||||
next(350, -1),
|
||||
next(350, 3),
|
||||
next(350, 8),
|
||||
completed(350)
|
||||
])
|
||||
|
||||
XCTAssertEqual(xs.subscriptions, [
|
||||
Subscription(200, 350)
|
||||
])
|
||||
}
|
||||
|
||||
func testTakeLast_Error_Less() {
|
||||
let scheduler = TestScheduler(initialClock: 0)
|
||||
|
||||
let xs = scheduler.createHotObservable([
|
||||
next(70, 6),
|
||||
next(150, 4),
|
||||
next(210, 9),
|
||||
next(230, 13),
|
||||
next(270, 7),
|
||||
next(280, 1),
|
||||
next(290, 64),
|
||||
error(300, testError)
|
||||
])
|
||||
|
||||
let res = scheduler.start {
|
||||
xs.takeLast(7)
|
||||
}
|
||||
|
||||
XCTAssertEqual(res.messages, [
|
||||
error(300, testError)
|
||||
])
|
||||
|
||||
XCTAssertEqual(xs.subscriptions, [
|
||||
Subscription(200, 300)
|
||||
])
|
||||
}
|
||||
|
||||
func testTakeLast_Error_Same() {
|
||||
let scheduler = TestScheduler(initialClock: 0)
|
||||
|
||||
let xs = scheduler.createHotObservable([
|
||||
next(70, 6),
|
||||
next(150, 4),
|
||||
next(210, 9),
|
||||
next(230, 13),
|
||||
next(270, 7),
|
||||
next(280, 1),
|
||||
next(300, -1),
|
||||
error(310, testError)
|
||||
])
|
||||
|
||||
let res = scheduler.start {
|
||||
xs.takeLast(5)
|
||||
}
|
||||
|
||||
XCTAssertEqual(res.messages, [
|
||||
error(310, testError)
|
||||
])
|
||||
|
||||
XCTAssertEqual(xs.subscriptions, [
|
||||
Subscription(200, 310)
|
||||
])
|
||||
}
|
||||
|
||||
func testTakeLast_Error_More() {
|
||||
let scheduler = TestScheduler(initialClock: 0)
|
||||
|
||||
let xs = scheduler.createHotObservable([
|
||||
next(70, 6),
|
||||
next(150, 4),
|
||||
next(210, 9),
|
||||
next(230, 13),
|
||||
next(270, 7),
|
||||
next(280, 1),
|
||||
next(300, -1),
|
||||
next(310, 3),
|
||||
next(340, 64),
|
||||
error(360, testError)
|
||||
])
|
||||
|
||||
let res = scheduler.start {
|
||||
xs.takeLast(5)
|
||||
}
|
||||
|
||||
XCTAssertEqual(res.messages, [
|
||||
error(360, testError)
|
||||
])
|
||||
|
||||
XCTAssertEqual(xs.subscriptions, [
|
||||
Subscription(200, 360)
|
||||
])
|
||||
}
|
||||
|
||||
func testTakeLast_0_DefaultScheduler() {
|
||||
let scheduler = TestScheduler(initialClock: 0)
|
||||
|
||||
let xs = scheduler.createHotObservable([
|
||||
next(70, 6),
|
||||
next(150, 4),
|
||||
next(210, 9),
|
||||
next(230, 13)
|
||||
])
|
||||
|
||||
let res = scheduler.start {
|
||||
xs.takeLast(0)
|
||||
}
|
||||
|
||||
XCTAssertEqual(res.messages, [
|
||||
])
|
||||
|
||||
XCTAssertEqual(xs.subscriptions, [
|
||||
Subscription(200, 1000)
|
||||
])
|
||||
}
|
||||
|
||||
func testTakeLast_TakeLast1() {
|
||||
let scheduler = TestScheduler(initialClock: 0)
|
||||
|
||||
let xs = scheduler.createHotObservable([
|
||||
next(70, 6),
|
||||
next(150, 4),
|
||||
next(210, 9),
|
||||
next(230, 13),
|
||||
next(270, 7),
|
||||
next(280, 1),
|
||||
next(300, -1),
|
||||
next(310, 3),
|
||||
next(340, 8),
|
||||
next(370, 11),
|
||||
completed(400)
|
||||
])
|
||||
|
||||
let res = scheduler.start {
|
||||
xs.takeLast(3)
|
||||
}
|
||||
|
||||
XCTAssertEqual(res.messages, [
|
||||
next(400, 3),
|
||||
next(400, 8),
|
||||
next(400, 11),
|
||||
completed(400)
|
||||
])
|
||||
|
||||
XCTAssertEqual(xs.subscriptions, [
|
||||
Subscription(200, 400)
|
||||
])
|
||||
}
|
||||
|
||||
func testTakeLast_DecrementCountsFirst() {
|
||||
let k = BehaviorSubject(value: false)
|
||||
|
||||
_ = k.takeLast(1).subscribeNext { n in
|
||||
k.on(.Next(!n))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: skip
|
||||
extension ObservableStandardSequenceOperators {
|
||||
func testSkip_Complete_After() {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
. scripts/common.sh
|
||||
|
||||
CONFIGURATIONS=(Release)
|
||||
|
||||
# make sure osx builds
|
||||
for scheme in "RxSwift-OSX"
|
||||
do
|
||||
for configuration in ${CONFIGURATIONS[@]}
|
||||
do
|
||||
PAGES_PATH=${BUILD_DIRECTORY}/Build/Products/${configuration}/all-playground-pages.swift
|
||||
rx ${scheme} ${configuration} "" build
|
||||
cat Rx.playground/Sources/*.swift Rx.playground/Pages/**/*.swift > ${PAGES_PATH}
|
||||
swift -v -D NOT_IN_PLAYGROUND -F ${BUILD_DIRECTORY}/Build/Products/${configuration} ${PAGES_PATH}
|
||||
done
|
||||
done
|
||||
|
||||
|
|
@ -113,6 +113,10 @@ do
|
|||
done
|
||||
done
|
||||
|
||||
# compile and run playgrounds
|
||||
|
||||
. scripts/playgrounds.sh
|
||||
|
||||
if [ "${RELEASE_TEST}" -eq 1 ]; then
|
||||
mdast -u mdast-slug -u mdast-validate-links ./*.md
|
||||
mdast -u mdast-slug -u mdast-validate-links ./**/*.md
|
||||
|
|
|
|||
Loading…
Reference in New Issue