From b7b691d634a5079cc131a857fb0cfb1832525b6d Mon Sep 17 00:00:00 2001 From: "tattn (Tatsuya Tanaka)" Date: Wed, 12 Dec 2018 01:09:02 +0900 Subject: [PATCH] Clean code --- Sources/URLQueryItemsDecoder.swift | 6 +++--- Tests/URLQueryItemsDecoderTests.swift | 9 +++------ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/Sources/URLQueryItemsDecoder.swift b/Sources/URLQueryItemsDecoder.swift index ea11929..47b2f2c 100644 --- a/Sources/URLQueryItemsDecoder.swift +++ b/Sources/URLQueryItemsDecoder.swift @@ -94,8 +94,8 @@ extension URLQueryItemsDecoder { .unwrapOrThrow(error: decoder.notFound(key: key)) } - private func isNill(forKey key: CodingKey) throws -> Bool { - return container.first(where: { $0.name == key.stringValue }) == nil + private func contains(_ key: CodingKey) -> Bool { + return container.contains(where: { $0.name == key.stringValue }) } func _decode(_ type: T.Type, forKey key: Key) throws -> T { @@ -112,7 +112,7 @@ extension URLQueryItemsDecoder { return try decoder.unbox(value, as: T.self) } - func decodeNil(forKey key: Key) throws -> Bool { return try isNill(forKey: key) } + func decodeNil(forKey key: Key) throws -> Bool { return !contains(key) } func decode(_ type: Bool.Type, forKey key: Key) throws -> Bool { return try _decode(type, forKey: key) } func decode(_ type: Int.Type, forKey key: Key) throws -> Int { return try _decode(type, forKey: key) } func decode(_ type: Int8.Type, forKey key: Key) throws -> Int8 { return try _decode(type, forKey: key) } diff --git a/Tests/URLQueryItemsDecoderTests.swift b/Tests/URLQueryItemsDecoderTests.swift index 289eb3e..088013e 100644 --- a/Tests/URLQueryItemsDecoderTests.swift +++ b/Tests/URLQueryItemsDecoderTests.swift @@ -49,14 +49,13 @@ class URLQueryItemsDecoderTests: XCTestCase { } let params: [URLQueryItem] = [ URLQueryItem(name: "string", value: "abc"), - URLQueryItem(name: "int", value: "123"), URLQueryItem(name: "double", value: Double.pi.description) ] let parameter = try decoder.decode(Parameter.self, from: params) XCTAssertEqual(parameter.string, params[0].value) - XCTAssertEqual(parameter.int?.description, params[1].value) - XCTAssertEqual(parameter.double?.description, params[2].value) + XCTAssertEqual(parameter.int?.description, nil) + XCTAssertEqual(parameter.double?.description, params[1].value) } func testDecodeEmptyOptionalParameter() throws { @@ -65,9 +64,7 @@ class URLQueryItemsDecoderTests: XCTestCase { let int: Int? let double: Double? } - let params: [URLQueryItem] = [ - ] - let parameter = try decoder.decode(Parameter.self, from: params) + let parameter = try decoder.decode(Parameter.self, from: []) XCTAssertEqual(parameter.string, nil) XCTAssertEqual(parameter.int, nil)