Rename skipWhileIndexed to skipWhileWithIndex

This commit is contained in:
yury 2015-10-12 14:36:19 +03:00
parent cbdf027d3d
commit fd6050ae2b
3 changed files with 20 additions and 12 deletions

View File

@ -42,7 +42,7 @@ class SkipWhileSink<ElementType, O: ObserverType where O.E == ElementType> : Sin
}
}
class SkipWhileSinkIndexed<ElementType, O: ObserverType where O.E == ElementType> : Sink<O>, ObserverType {
class SkipWhileSinkWithIndex<ElementType, O: ObserverType where O.E == ElementType> : Sink<O>, ObserverType {
typealias Parent = SkipWhile<ElementType>
typealias Element = ElementType
@ -61,7 +61,7 @@ class SkipWhileSinkIndexed<ElementType, O: ObserverType where O.E == ElementType
case .Next(let value):
if !_running {
do {
_running = try !_parent._predicateIndexed(value, _index)
_running = try !_parent._predicateWithIndex(value, _index)
_index += 1
} catch let e {
_observer?.onError(e)
@ -82,22 +82,22 @@ class SkipWhileSinkIndexed<ElementType, O: ObserverType where O.E == ElementType
class SkipWhile<Element>: Producer<Element> {
typealias Predicate = (Element) throws -> Bool
typealias PredicateIndexed = (Element, Int) throws -> Bool
typealias PredicateWithIndex = (Element, Int) throws -> Bool
private let _source: Observable<Element>
private let _predicate: Predicate!
private let _predicateIndexed: PredicateIndexed!
private let _predicateWithIndex: PredicateWithIndex!
init(source: Observable<Element>, predicate: Predicate) {
_source = source
_predicate = predicate
_predicateIndexed = nil
_predicateWithIndex = nil
}
init(source: Observable<Element>, predicate: PredicateIndexed) {
init(source: Observable<Element>, predicate: PredicateWithIndex) {
_source = source
_predicate = nil
_predicateIndexed = predicate
_predicateWithIndex = predicate
}
override func run<O : ObserverType where O.E == Element>(observer: O, cancel: Disposable, setSink: (Disposable) -> Void) -> Disposable {
@ -107,7 +107,7 @@ class SkipWhile<Element>: Producer<Element> {
return _source.subscribeSafe(sink)
}
else {
let sink = SkipWhileSinkIndexed(parent: self, observer: observer, cancel: cancel)
let sink = SkipWhileSinkWithIndex(parent: self, observer: observer, cancel: cancel)
setSink(sink)
return _source.subscribeSafe(sink)
}

View File

@ -98,7 +98,7 @@ extension ObservableType {
return SkipWhile(source: self.asObservable(), predicate: predicate)
}
public func skipWhileIndexed(predicate: (E, Int) throws -> Bool) -> Observable<E> {
public func skipWhileWithIndex(predicate: (E, Int) throws -> Bool) -> Observable<E> {
return SkipWhile(source: self.asObservable(), predicate: predicate)
}
}

View File

@ -3482,7 +3482,7 @@ extension ObservableStandardSequenceOperators {
])
let res = scheduler.start() {
xs.skipWhileIndexed { x, i in i < 5 }
xs.skipWhileWithIndex { x, i in i < 5 }
}
XCTAssertEqual(res.messages, [
@ -3515,8 +3515,16 @@ extension ObservableStandardSequenceOperators {
error(400, testError)
])
let x = 0
if x == Int.max {
throw // Error
}
let res = x
x += 1
return res
let res = scheduler.start() {
xs.skipWhileIndexed { x, i in i < 5 }
xs.skipWhileWithIndex { x, i in i < 5 }
}
XCTAssertEqual(res.messages, [
@ -3547,7 +3555,7 @@ extension ObservableStandardSequenceOperators {
])
let res = scheduler.start() {
xs.skipWhileIndexed { x, i in
xs.skipWhileWithIndex { x, i in
if i < 5 {
return true
}