Skip to content

Commit 52ff9bf

Browse files
committed
Add select filter to Mapping
1 parent 82ea57b commit 52ff9bf

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

Code/Mapping+StandardMappings.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
extension Mapping where MappedUpdate: Equatable
2+
{
3+
public func select(_ default: MappedUpdate) -> Mapping<O, Void>
4+
{
5+
return map(prefilter: { $0 == `default` }) { _ in }
6+
}
7+
}
8+
19
extension Mapping
210
{
311
public func new<Value>() -> Mapping<O, Value>

Tests/SwiftObserverTests/SwiftObserverTests.swift

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,25 @@ class SwiftObserverTests: XCTestCase
163163
XCTAssert(!didFire)
164164
}
165165

166+
func testMappingSelect()
167+
{
168+
let textMapping = Var().new().unwrap("").select("test")
169+
170+
var didFire = false
171+
172+
controller.observe(textMapping)
173+
{
174+
didFire = true
175+
}
176+
177+
textMapping.source <- "test"
178+
XCTAssert(didFire)
179+
180+
didFire = false
181+
textMapping.source <- "test2"
182+
XCTAssert(!didFire)
183+
}
184+
166185
func testMultiplication()
167186
{
168187
XCTAssertEqual(Var(2) * Var(7), 14)

0 commit comments

Comments
 (0)