Skip to content

Commit 5fd4657

Browse files
author
Guido Marucci Blas
committed
Fixes Wolox#9
ReactiveArray#last method was crashing when the array was empty.
1 parent bcd3bec commit 5fd4657

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

ReactiveArray/ReactiveArray.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,13 @@ public final class ReactiveArray<T>: CollectionType, MutableCollectionType, Debu
6464
}
6565

6666
public var last: T? {
67-
return _elements[_elements.count - 1]
67+
let value: T?
68+
if _elements.count > 0 {
69+
value = _elements[_elements.count - 1]
70+
} else {
71+
value = Optional.None
72+
}
73+
return value
6874
}
6975

7076
public var debugDescription: String {

ReactiveArrayTests/ReactiveArraySpec.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,18 @@ class ReactiveArraySpec: QuickSpec {
541541
expect(array.last).to(equal(4))
542542
}
543543

544+
context("when the array is empty") {
545+
546+
beforeEach {
547+
array = ReactiveArray<Int>()
548+
}
549+
550+
it("returns .None") {
551+
expect(array.last).to(beNil())
552+
}
553+
554+
}
555+
544556
}
545557

546558
}

0 commit comments

Comments
 (0)