RxSmalltalk

Description

Implementation of ReactiveX in Smalltalk (Pharo).

Details

Source
GitHub
Dialect
pharo (25% confidence)
License
GPL-3.0
Stars
1
Forks
1
Created
Feb. 7, 2018
Updated
May 2, 2021
Topics
reactivex rxsmalltalk smalltalk

README excerpt

# RxSmalltalk
Simple implementation of [ReactiveX](http://reactivex.io/) in Smalltalk (Pharo).

## Actual state
- Supports few creations methods for Observable: fromArray, just, empty, never, raise, ...
- Observable transformation functions: map, window, buffer, scan

## Some examples
Some of creation methods.

``` smalltalk
Observable array: { 'Nice' . 5 . 'Ok' }.
Observable empty.
Observable just: 1.
Observable never.
Observable raise: Error.
```

Some of transformation functions.

``` smalltalk
observable := Observable range: 1 to: 12.
(observable window: 2 skip: 3) subscribe: observer.
(observable map: [ :x | x - 1 ]) subscribe: observer
```

Some complex example

``` smalltalk
| observer observable |
observer := TranscriptObserver new.
observable := Observable range: 1 to: 10.
((((observable map: [ :x | x - 1 ]) map: [ :x | x asString , ' ']) scan: [:x :y | x == 0 ifTrue: [y] ifFalse: [x , y].])  buffer: 2 skip: 4) subscribe: observer.
```

## Posts about implementation
- [RxSmalltalk - implementation - part 1](https://www.reactiveworld.net/2018/03/11/RxSmalltalk-part01.html) - implementation of base of Observable type
- [RxSmalltalk - implementation - part 2](https://www.reactiveworld.net/2018/04/08/RxSmalltalk-part02.html) - Implementing other simple Observable types (Will be posted)

## Roadmap
- Add Disposable
- Add cancelability
- Add filter functions
- Add other Observable functions
← Back to results