Skip to content

Commit

Permalink
Replaces >- with protocol extensions. Unit tests pass. Adds `CHANGE…
Browse files Browse the repository at this point in the history
…LOG.md`
  • Loading branch information
kzaher committed Aug 9, 2015
1 parent 0ca9c90 commit 2c33f7a
Show file tree
Hide file tree
Showing 108 changed files with 1,858 additions and 2,105 deletions.
15 changes: 15 additions & 0 deletions CHANGELOG.md
@@ -0,0 +1,15 @@
#Change Log
All notable changes to this project will be documented in this file.

---

## [2.0](https://github.com/ReactiveX/RxSwift/pull/50) (WIP)

####Updated

* Adds `ObservableType`
* Moved from using `>-` operator to protocol extensions
* Change from `disposeBag.addDisposable` to `disposable.addDisposableTo`
* Changes in RxCocoa extensions to enable fluent style

####Fixed
38 changes: 19 additions & 19 deletions Playgrounds/Introduction.playground/Contents.swift
Expand Up @@ -26,7 +26,7 @@ Creating an Observable is one thing, but if nothing subscribes to the observable
example("Empty observable") {
let emptyObservable: Observable<Int> = empty()

let emptySubscriber = emptyObservable >- subscribe { event in
let emptySubscriber = emptyObservable .subscribe { event in
switch event {
case .Next(let box):
print("\(box.value)")
Expand All @@ -50,7 +50,7 @@ As you can see, no values are ever sent to the subscriber of an empty observable
example("Never observable") {
let neverObservable: Observable<String> = never()

let neverSubscriber = neverObservable >- subscribe { _ in
let neverSubscriber = neverObservable .subscribe { _ in
print("This block is never called.")
}
}
Expand All @@ -64,7 +64,7 @@ example("returnElement/just") {
let oneObservable = just(32)

let oneObservableSubscriber = oneObservable
>- subscribe { event in
.subscribe { event in
switch event {
case .Next(let box):
print("\(box.value)")
Expand All @@ -81,15 +81,15 @@ Here we see that the `.Next` event is sent just once, then the `.Completed` even
*/

/*:
### returnElements
### sequence
Now we are getting to some more interesting ways to create an Observable. This function creates an observable that produces a number of values before completing.
*/

example("returnElements") {
let multipleObservable/* : Observable<Int> */ = returnElements(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
example("sequence") {
let multipleObservable/* : Observable<Int> */ = sequence(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

let multipleObservableSubscriber = multipleObservable
>- subscribe { event in
.subscribe { event in
switch event {
case .Next(let box):
print("\(box.value)")
Expand All @@ -114,7 +114,7 @@ example("from") {
let fromArrayObservable = from([1, 2, 3, 4, 5])

let fromArrayObservableSubscriber = fromArrayObservable
>- subscribe { event in
.subscribe { event in
switch event {
case .Next(let box):
print("\(box.value)")
Expand All @@ -140,8 +140,8 @@ Up to this point, I have only used the `subscribe` method to listen to Observabl
*/

example("subscribeNext") {
let nextOnlySubscriber = returnElements(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>- subscribeNext { value in
let nextOnlySubscriber = sequence(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
.subscribeNext { value in
print("\(value)")
}
}
Expand All @@ -161,11 +161,11 @@ The most common way to reduce a sequence is to apply a filter to it and the most
*/

example("filter") {
let onlyEvensSubscriber = returnElements(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>- filter {
let onlyEvensSubscriber = sequence(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
.filter {
$0 % 2 == 0
}
>- subscribeNext { value in
.subscribeNext { value in
print("\(value)")
}
}
Expand All @@ -176,9 +176,9 @@ This filter tracks the last value emitted and removes like values. This function
*/

example("distinctUntilChanged") {
let distinctUntilChangedSubscriber = returnElements(1, 2, 3, 1, 1, 4)
>- distinctUntilChanged
>- subscribeNext { value in
let distinctUntilChangedSubscriber = sequence(1, 2, 3, 1, 1, 4)
.distinctUntilChanged
.subscribeNext { value in
print("\(value)")
}
}
Expand All @@ -197,9 +197,9 @@ This function will perform a function on each element in the sequence until it i
*/

example("aggregate") {
let aggregateSubscriber = returnElements(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>- aggregate(0, +)
>- subscribeNext { value in
let aggregateSubscriber = sequence(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
.aggregate(0, +)
.subscribeNext { value in
print("\(value)")
}
}
Expand Down
2 changes: 1 addition & 1 deletion Playgrounds/Introduction.playground/contents.xcplayground
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<playground version='5.0' target-platform='osx' requires-full-environment='true'>
<timeline fileName='timeline.xctimeline'/>
</playground>
</playground>
Expand Up @@ -20,11 +20,11 @@ Return an observeble which emits a specified item before emitting the items from
example("startWith") {

let aggregateSubscriber = from([4, 5, 6, 7, 8, 9])
>- startWith(3)
>- startWith(2)
>- startWith(1)
>- startWith(0)
>- subscribeNext { int in
.startWith(3)
.startWith(2)
.startWith(1)
.startWith(0)
.subscribeNext { int in
print(int)
}

Expand All @@ -47,7 +47,7 @@ xample("combineLatest 1st") {
combineLatest(intOb1, intOb2) {
"\($0) \($1)"
}
>- subscribeNext {
.subscribeNext {
print($0)
}

Expand Down Expand Up @@ -79,7 +79,7 @@ est 2nd") {
combineLatest(intOb1, intOb2) {
$0 * $1
}
>- subscribeNext {
.subscribeNext {
print($0)
}
}
Expand All @@ -97,7 +97,7 @@ t 3rd") {
combineLatest(intOb1, intOb2, intOb3) {
($0 + $1) * $2
}
>- subscribeNext {
.subscribeNext {
print($0)
}
}
Expand All @@ -117,7 +117,7 @@ The Observable returned by `zip` emits an item only when all of the imputs Obser
zip(intOb1, intOb2) {
"\($0) \($1)"
}
>- subscribeNext {
.subscribeNext {
print($0)
}

Expand Down Expand Up @@ -154,7 +154,7 @@ example("zip 2nd") {
zip(intOb1, intOb2) {
$0 * $1
}
>- subscribeNext {
.subscribeNext {
print($0)
}
}
Expand All @@ -172,7 +172,7 @@ The next sample shows zip called with three sorce Observables
zip(intOb1, intOb2, intOb3) {
($0 + $1) * $2
}
>- subscribeNext {
.subscribeNext {
print($0)
}
}
Expand All @@ -190,8 +190,8 @@ Combine multiple Observables, of the same type, into one by merging their emissi
Subject<Int>()
let subject2 = PublishSubject<Int>()

merge(returnElements(subject1, subject2))
>- subscribeNext { int in
merge(sequence(subject1, subject2))
.subscribeNext { int in
print(int)
}

Expand All @@ -209,9 +209,9 @@ example("merge 2nd") {
let subject1 = PublishSubject<Int>()
let subject2 = PublishSubject<Int>()

returnElements(subject1, subject2)
>- merge(maxConcurrent: 2)
>- subscribeNext { int in
sequence(subject1, subject2)
.merge(maxConcurrent: 2)
.subscribeNext { int in
print(int)
}

Expand Down Expand Up @@ -241,28 +241,25 @@ Convert an Observable that emits Observables into a single Observable that emits
let var3 = Variable(var1 as Observable<Int>)

let d = var3
>- switchLatest
>- subscribeNext { (e: Int) -> Void in
.switchLatest
.subscribeNext { (e: Int) -> Void in
print("\(e)")
}

var1.next(1)
var1.next(2)
var1.next(3)
var1.next(4)
var1.sendNext(1)
var1.sendNext(2)
var1.sendNext(3)
var1.sendNext(4)

var3.next(var2)
var3.sendNext(var2)

var2.next(201)
var2.sendNext(201)

print("Note which no listen to var1")
var1.next(5)
var1.next(6)
var1.next(7)
var1.sendNext(5)
var1.sendNext(6)
var1.sendNext(7)
sendCompleted(var1)

var2.next(202)
var2.next(203)
var2.next(204)
}

var2.sendNext(202)
var2.send
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<playground version='5.0' target-platform='osx' requires-full-environment='true' display-mode='rendered'>
<timeline fileName='timeline.xctimeline'/>
</playground>
</playground>
Expand Up @@ -22,8 +22,8 @@ example("takeUntil") {
let observable2 = PublishSubject<Int>()

observable1
>- takeUntil(observable2)
>- subscribeNext { int in
.takeUntil(observable2)
.subscribeNext { int in
print(int)
}

Expand Down Expand Up @@ -52,10 +52,10 @@ xample("takeWhile") {
let observable1 = PublishSubject<Int>()

observable1
>- takeWhile { int in
.takeWhile { int in
int < 4
}
>- subscribeNext { int in
.subscribeNext { int in
print(int)
}

Expand Down
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<playground version='5.0' target-platform='osx' requires-full-environment='true' display-mode='rendered'>
<timeline fileName='timeline.xctimeline'/>
</playground>
</playground>

0 comments on commit 2c33f7a

Please sign in to comment.