Skip to content

Commit

Permalink
Change performed creator
Browse files Browse the repository at this point in the history
  • Loading branch information
psharanda committed Nov 13, 2019
1 parent fa8435e commit ec2ccb3
Show file tree
Hide file tree
Showing 9 changed files with 25 additions and 27 deletions.
4 changes: 2 additions & 2 deletions Sources/DispatchQueue+Jetpack.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ import Foundation

extension DispatchQueue {

func jx_asyncAfter(deadline: DispatchTime, execute work: @escaping ()->Void) -> Disposable {
func jx_asyncAfter(deadline: DispatchTime, execute work: @escaping () -> Void) -> Disposable {
let item = DispatchWorkItem(block: work)
asyncAfter(deadline: deadline, execute: item)
return BlockDisposable { item.cancel() }
}

func jx_async(execute work: @escaping ()->Void) -> Disposable {
func jx_async(execute work: @escaping () -> Void) -> Disposable {
let item = DispatchWorkItem(block: work)
async(execute: item)
return BlockDisposable { item.cancel() }
Expand Down
4 changes: 2 additions & 2 deletions Sources/MetaProperty.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ public protocol ChangeEventProtocol {

public final class MetaProperty<T, Event: ChangeEventProtocol>: ObserveValueProtocol, GetValueProtocol {
private let observable: Observable<(T, Event)>
private let getter: ()->T
private let getter: () -> T

public var value: T {
return getter()
}

init(observable: Observable<(T, Event)>, getter: @escaping ()->T) {
init(observable: Observable<(T, Event)>, getter: @escaping () -> T) {
self.getter = getter
self.observable = observable
}
Expand Down
2 changes: 1 addition & 1 deletion Sources/MutableMetaProperty.swift
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ open class MutableMetaProperty<T, Event: ChangeEventProtocol>: ObserveValueProto
}
}

public func mutateWithEvent(_ transform: (inout T)-> Event) {
public func mutateWithEvent(_ transform: (inout T) -> Event) {
mutateLock.synchronized {

let (newValue, newEvent): (T, Event
Expand Down
6 changes: 3 additions & 3 deletions Sources/Observable+Common.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import Foundation

extension ObserveValueProtocol {

public func map<U>(_ transform: @escaping (ValueType)-> U) -> Observable<U> {
public func map<U>(_ transform: @escaping (ValueType) -> U) -> Observable<U> {
return Observable { observer in
return self.subscribe { result in
observer(transform(result))
Expand All @@ -19,7 +19,7 @@ extension ObserveValueProtocol {
return map { $0[keyPath: keyPath] }
}

public func compactMap<U>(_ transform: @escaping (ValueType)-> U?) -> Observable<U> {
public func compactMap<U>(_ transform: @escaping (ValueType) -> U?) -> Observable<U> {
return Observable { observer in
return self.subscribe { result in
if let newResult = transform(result) {
Expand Down Expand Up @@ -120,7 +120,7 @@ extension ObserveValueProtocol {
}
}

public func take(while f: @escaping (ValueType)->Bool) -> Observable<ValueType> {
public func take(while f: @escaping (ValueType) -> Bool) -> Observable<ValueType> {
return Observable { observer in
var canEmit = true
var disposable: Disposable?
Expand Down
4 changes: 2 additions & 2 deletions Sources/Observable+DispatchQueue.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
import Foundation

extension ObserveValueProtocol {
public func delay(timeInterval: TimeInterval, on queue: DispatchQueue) -> Observable<ValueType> {
public func delay(timeInterval: TimeInterval, on queue: DispatchQueue) -> Observable<ValueType> {
return flatMapLatest { value in
return Observable.delayed(value, timeInterval: timeInterval, on: queue)
}
}

public func dispatch(on queue: DispatchQueue) -> Observable<ValueType> {
public func dispatch(on queue: DispatchQueue) -> Observable<ValueType> {
return flatMapLatest { value in
return Observable.dispatched(value, on: queue)
}
Expand Down
18 changes: 8 additions & 10 deletions Sources/Observable.swift
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,8 @@ public final class Observable<T>: ObserveValueProtocol {
}

extension Observable {

public static func performed(workerQueue: DispatchQueue, completionQueue: DispatchQueue, worker: @escaping () -> T) -> Observable<T> {
return Observable<Void>.dispatched((), on: workerQueue)
.map(worker)
.dispatch(on: completionQueue)
}

public static func delayed(_ value: T, timeInterval: TimeInterval, on queue: DispatchQueue) -> Observable<T> {
public static func delayed(_ value: T, timeInterval: TimeInterval, on queue: DispatchQueue) -> Observable<T> {
return Observable { observer in
return queue.jx_asyncAfter(deadline: .now() + timeInterval) {
observer(value)
Expand Down Expand Up @@ -68,7 +62,7 @@ extension Observable {
}
}

public static func dispatched(_ value: T, on queue: DispatchQueue) -> Observable<T> {
public static func dispatched(_ value: T, on queue: DispatchQueue) -> Observable<T> {
return Observable { observer in
if queue == .main && Thread.isMainThread {
observer(value)
Expand All @@ -81,6 +75,10 @@ extension Observable {
}
}

public static func performed(on queue: DispatchQueue, worker: @escaping () -> T) -> Observable<T> {
return Observable<Void>.dispatched((), on: queue).map(worker)
}

public static func just(_ value: T) -> Observable<T> {
return Observable { observer in
observer(value)
Expand All @@ -94,7 +92,7 @@ extension Observable {
}
}

public static func deferred(_ f: @escaping ()->T) -> Observable<T> {
public static func deferred(_ f: @escaping () -> T) -> Observable<T> {
return Observable { observer in
observer(f())
return EmptyDisposable()
Expand All @@ -103,7 +101,7 @@ extension Observable {
}

extension Observable where T == Void {
public static func delayed(timeInterval: TimeInterval, on queue: DispatchQueue) -> Observable<Void> {
public static func delayed(timeInterval: TimeInterval, on queue: DispatchQueue) -> Observable<Void> {
return Observable.delayed((), timeInterval: timeInterval, on: queue)
}

Expand Down
8 changes: 4 additions & 4 deletions Sources/Property.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ import Foundation
public final class Property<T>: ObserveValueProtocol , GetValueProtocol {

private let observable: Observable<T>
private let getter: ()->T
private let getter: () -> T

public var value: T {
return getter()
}

init(observable: Observable<T>, getter: @escaping ()->T) {
init(observable: Observable<T>, getter: @escaping () -> T) {
self.getter = getter
self.observable = observable
}
Expand All @@ -36,7 +36,7 @@ public final class Property<T>: ObserveValueProtocol , GetValueProtocol {
return observable.subscribe(observer)
}

public func map<U>(_ transform: @escaping (ValueType)-> U) -> Property<U> {
public func map<U>(_ transform: @escaping (ValueType) -> U) -> Property<U> {
return Property<U>(observable: map(transform)) {
return transform(self.getter())
}
Expand All @@ -46,7 +46,7 @@ public final class Property<T>: ObserveValueProtocol , GetValueProtocol {
return map { $0[keyPath: keyPath] }
}

public func compactMap<U>(_ transform: @escaping (T)-> U?) -> Property<U?> {
public func compactMap<U>(_ transform: @escaping (T) -> U?) -> Property<U?> {
return Property<U?>(observable: compactMap(transform).map { Optional.some($0) }, initialValue: transform(value))
}

Expand Down
2 changes: 1 addition & 1 deletion Sources/UnsafeSubject.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ final class UnsafeSubject<T> {

private struct ObserverHolder<T> {
let token: UInt
let observer: (T)->Void
let observer: (T) -> Void
}

private var observers: [ObserverHolder<T>] = []
Expand Down
4 changes: 2 additions & 2 deletions Tests/JetpackTests/JetpackTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -819,8 +819,8 @@ class JetpackTests: XCTestCase {

private func stressTest(numberOfQueues: Int,
numberOfIterations: Int,
when: @escaping ()->Void,
then: ()->Void) {
when: @escaping () -> Void,
then: () -> Void) {

let group = DispatchGroup()

Expand Down

0 comments on commit ec2ccb3

Please sign in to comment.