From f065189ba9f5b2a129c22972cb7bf7fc80cddcb4 Mon Sep 17 00:00:00 2001 From: yury Date: Thu, 8 Oct 2015 16:32:44 +0300 Subject: [PATCH] Remove SkipUntilTime --- .../Implementations/SkipUntil.swift | 68 -------- RxSwift/Observables/Observable+Time.swift | 8 - .../Tests/Observable+TimeTest.swift | 164 ------------------ 3 files changed, 240 deletions(-) diff --git a/RxSwift/Observables/Implementations/SkipUntil.swift b/RxSwift/Observables/Implementations/SkipUntil.swift index d5c3b7f8..0b556f4f 100644 --- a/RxSwift/Observables/Implementations/SkipUntil.swift +++ b/RxSwift/Observables/Implementations/SkipUntil.swift @@ -121,71 +121,3 @@ class SkipUntil: Producer { return sink.run() } } - -// MARK: SkipUntil time - -class SkipUntilTimeSink : Sink, ObserverType { - - typealias E = ElementType - typealias Parent = SkipUntilTime - - private let _parent: Parent - - // state - private var _open: Bool = false - - init(parent: Parent, observer: O, cancel: Disposable) { - _parent = parent - super.init(observer: observer, cancel: cancel) - } - - func on(event: Event) { - switch(event) { - case let .Next(element): - if _open { - observer?.onNext(element) - } - case let .Error(error): - _observer?.onError(error) - dispose() - case .Completed: - _observer?.onComplete() - dispose() - } - } - - func run() -> Disposable { - // Actually it should be abs time here. Or diff from now - let disposeTimer = _parent._scheduler.scheduleRelative((), dueTime:_parent._startTime) { - self._tick() - return NopDisposable.instance - } - let disposeSubscription = _parent._source.subscribeSafe(self) - return BinaryDisposable(disposeTimer, disposeSubscription) - } - - private func _tick() { - _open = true - } -} - -class SkipUntilTime: Producer { - typealias TimeInterval = S.TimeInterval - - private let _source: Observable - private let _startTime: TimeInterval - private let _scheduler: S - - init(source: Observable, startTime: TimeInterval, scheduler: S) { - _source = source - _startTime = startTime - _scheduler = scheduler - } - - override func run(observer: O, cancel: Disposable, setSink: (Disposable) -> Void) -> Disposable { - let sink = SkipUntilTimeSink(parent: self, observer: observer, cancel: cancel) - setSink(sink) - return sink.run() - } -} - diff --git a/RxSwift/Observables/Observable+Time.swift b/RxSwift/Observables/Observable+Time.swift index eec02c70..a0c6f897 100644 --- a/RxSwift/Observables/Observable+Time.swift +++ b/RxSwift/Observables/Observable+Time.swift @@ -198,11 +198,3 @@ extension ObservableType { return BufferTimeCount(source: self.asObservable(), timeSpan: timeSpan, count: count, scheduler: scheduler) } } - -// SkipUntil time - -extension ObservableType { - public func skipUntil(startTime: S.TimeInterval, _ scheduler: S) -> Observable { - return SkipUntilTime(source: self.asObservable(), startTime: startTime, scheduler: scheduler) - } -} \ No newline at end of file diff --git a/RxTests/RxSwiftTests/Tests/Observable+TimeTest.swift b/RxTests/RxSwiftTests/Tests/Observable+TimeTest.swift index 29d8e0b0..eae22e2d 100644 --- a/RxTests/RxSwiftTests/Tests/Observable+TimeTest.swift +++ b/RxTests/RxSwiftTests/Tests/Observable+TimeTest.swift @@ -1304,168 +1304,4 @@ extension ObservableTimeTest { XCTAssertEqual(result!, [4, 5, 6]) } - // MARK: SkipUntil - - func testSkipUntil_Zero() { - let scheduler = TestScheduler(initialClock: 0) - - let xs = scheduler.createHotObservable([ - next(210, 1), - next(220, 2), - completed(230) - ]) - - let res = scheduler.start() { - xs.skipUntil(0, scheduler) - } - - XCTAssertEqual(res.messages, [ - next(210, 1), - next(220, 2), - completed(230) - ]) - - XCTAssertEqual(xs.subscriptions, [ - Subscription(200, 230) - ]) - } - - func testSkipUntil_Some() { - let scheduler = TestScheduler(initialClock: 0) - - let xs = scheduler.createHotObservable([ - next(210, 1), - next(220, 2), - completed(230) - ]) - - let res = scheduler.start() { - xs.skipUntil(215, scheduler) - } - - XCTAssertEqual(res.messages, [ - next(220, 2), - completed(230) - ]) - - XCTAssertEqual(xs.subscriptions, [ - Subscription(200, 230) - ]) - } - - func testSkipUntil_Late() { - let scheduler = TestScheduler(initialClock: 0) - - let xs = scheduler.createHotObservable([ - next(210, 1), - next(220, 2), - completed(230) - ]) - - let res = scheduler.start() { - xs.skipUntil(250, scheduler) - } - - XCTAssertEqual(res.messages, [ - completed(230) - ]) - - XCTAssertEqual(xs.subscriptions, [ - Subscription(200, 230) - ]) - } - - func testSkipUntil_Error() { - let scheduler = TestScheduler(initialClock: 0) - - let xs:HotObservable = scheduler.createHotObservable([ - error(210, testError) - ]) - - let res = scheduler.start() { - xs.skipUntil(250, scheduler) - } - - XCTAssertEqual(res.messages, [ - error(210, testError) - ]) - - XCTAssertEqual(xs.subscriptions, [ - Subscription(200, 210) - ]) - } - - func testSkipUntil_Never() { - let scheduler = TestScheduler(initialClock: 0) - - let xs:HotObservable = scheduler.createHotObservable([]) - - let res = scheduler.start() { - xs.skipUntil(250, scheduler) - } - - XCTAssertEqual(res.messages, []) - - XCTAssertEqual(xs.subscriptions, [ - Subscription(200, 1000) - ]) - } - - func testSkipUntil_Twice1() { - let scheduler = TestScheduler(initialClock: 0) - - let xs = scheduler.createHotObservable([ - next(210, 1), - next(220, 2), - next(230, 3), - next(240, 4), - next(250, 5), - next(260, 6), - completed(270) - ]) - - let res = scheduler.start() { - xs.skipUntil(215, scheduler).skipUntil(230, scheduler) - } - - XCTAssertEqual(res.messages, [ - next(240, 4), - next(250, 5), - next(260, 6), - completed(270) - ]) - - XCTAssertEqual(xs.subscriptions, [ - Subscription(200, 270) - ]) - } - - func testSkipUntil_Twice2() { - let scheduler = TestScheduler(initialClock: 0) - - let xs = scheduler.createHotObservable([ - next(210, 1), - next(220, 2), - next(230, 3), - next(240, 4), - next(250, 5), - next(260, 6), - completed(270) - ]) - - let res = scheduler.start() { - xs.skipUntil(230, scheduler).skipUntil(215, scheduler) - } - - XCTAssertEqual(res.messages, [ - next(240, 4), - next(250, 5), - next(260, 6), - completed(270) - ]) - - XCTAssertEqual(xs.subscriptions, [ - Subscription(200, 270) - ]) - } } \ No newline at end of file