Skip to content
This repository was archived by the owner on Jan 24, 2023. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions Snail/Observable.swift
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ public class Observable<T>: ObservableType {
}

public func map<U>(_ transform: @escaping (T) -> U) -> Observable<U> {
let transformed = Observable<U>()
let transformed = Replay<U>(1)

subscribe(
onNext: { value in
Expand All @@ -105,7 +105,7 @@ public class Observable<T>: ObservableType {
}

public func flatMap<U>( _ transform: @escaping (T) -> Observable<U>) -> Observable<U> {
let flatMapped = Observable<U>()
let flatMapped = Replay<U>(1)

subscribe(
onNext: { value in
Expand All @@ -124,7 +124,7 @@ public class Observable<T>: ObservableType {
}

public func filter(_ isIncluded: @escaping (T) -> Bool) -> Observable<T> {
let filtered = Observable<T>()
let filtered = Replay<T>(1)

subscribe(
onNext: { value in
Expand Down Expand Up @@ -221,7 +221,7 @@ public class Observable<T>: ObservableType {
}

public func skip(first: UInt) -> Observable<T> {
let observable = Observable<T>()
let observable = Replay<T>(1)
var count = first

subscribe(onNext: {
Expand All @@ -238,7 +238,7 @@ public class Observable<T>: ObservableType {
}

public func take(first count: UInt) -> Observable<T> {
let observable = Observable<T>()
let observable = Replay<T>(1)
var taken = 0

subscribe(onNext: {
Expand Down Expand Up @@ -285,7 +285,7 @@ public class Observable<T>: ObservableType {
}

public static func merge(_ observables: [Observable<T>]) -> Observable<T> {
let latest = Observable<T>()
let latest = Replay<T>(1)
observables.forEach { $0.forward(to: latest) }
return latest
}
Expand All @@ -295,7 +295,7 @@ public class Observable<T>: ObservableType {
}

public static func combineLatest<U>(_ input1: Observable<T>, _ input2: Observable<U>) -> Observable<(T, U)> {
let combined = Observable<(T, U)>()
let combined = Replay<(T, U)>(1)

var input1Result: (value: T?, isComplete: Bool) = (nil, false)
var input2Result: (value: U?, isComplete: Bool) = (nil, false)
Expand Down Expand Up @@ -339,7 +339,7 @@ public class Observable<T>: ObservableType {
public static func combineLatest<U, V>(_ input1: Observable<T>,
_ input2: Observable<U>,
_ input3: Observable<V>) -> Observable<(T, U, V)> {
let combined = Observable<(T, U, V)>()
let combined = Replay<(T, U, V)>(1)

var input1Result: (value: T?, isComplete: Bool) = (nil, false)
var input2Result: (value: U?, isComplete: Bool) = (nil, false)
Expand Down Expand Up @@ -396,7 +396,7 @@ public class Observable<T>: ObservableType {
_ input2: Observable<U>,
_ input3: Observable<V>,
_ input4: Observable<K>) -> Observable<(T, U, V, K)> {
let combined = Observable<(T, U, V, K)>()
let combined = Replay<(T, U, V, K)>(1)

var input1Result: (value: T?, isComplete: Bool) = (nil, false)
var input2Result: (value: U?, isComplete: Bool) = (nil, false)
Expand Down
Loading