From 37fa2039b25dee4841440e9c2c5b8c1d87bba45f Mon Sep 17 00:00:00 2001 From: Maciej Trybilo Date: Wed, 8 Nov 2023 14:17:47 +0100 Subject: [PATCH 1/2] Add the `state` property to `Sheet`. --- Sources/CoreXLSX/Workbook.swift | 2 ++ Tests/CoreXLSXTests/Workbook.swift | 11 +++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Sources/CoreXLSX/Workbook.swift b/Sources/CoreXLSX/Workbook.swift index 4f259ca9..ea682cf4 100644 --- a/Sources/CoreXLSX/Workbook.swift +++ b/Sources/CoreXLSX/Workbook.swift @@ -45,11 +45,13 @@ public struct Workbook: Codable, Equatable { public let name: String? public let id: String public let relationship: String + public let state: String? enum CodingKeys: String, CodingKey { case name case id = "sheetId" case relationship = "r:id" + case state } } diff --git a/Tests/CoreXLSXTests/Workbook.swift b/Tests/CoreXLSXTests/Workbook.swift index f940c720..999a6183 100644 --- a/Tests/CoreXLSXTests/Workbook.swift +++ b/Tests/CoreXLSXTests/Workbook.swift @@ -22,14 +22,15 @@ import XMLCoder private let parsedSheet = [ Workbook.Sheet(name: "Sheet 1", id: "1", - relationship: "rId4"), + relationship: "rId4", + state: nil), ] // swiftlint:disable line_length private let workbookNoViews = """ - + """.data(using: .utf8)! // swiftlint:enable line_length @@ -38,12 +39,14 @@ private let expectedWorkbook = .init( name: "Summary", id: "1", - relationship: "rId4" + relationship: "rId4", + state: "visible" ), .init( name: "General", id: "2", - relationship: "rId5" + relationship: "rId5", + state: "hidden" ), ])) From 7157b572222e6b5332d10c9ea9caf326a01f1be9 Mon Sep 17 00:00:00 2001 From: Maciej Trybilo Date: Sat, 2 Dec 2023 14:48:58 +0100 Subject: [PATCH 2/2] Use enum for Sheet state. --- Sources/CoreXLSX/Workbook.swift | 9 ++++++++- Tests/CoreXLSXTests/Workbook.swift | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Sources/CoreXLSX/Workbook.swift b/Sources/CoreXLSX/Workbook.swift index ea682cf4..cca696f7 100644 --- a/Sources/CoreXLSX/Workbook.swift +++ b/Sources/CoreXLSX/Workbook.swift @@ -45,7 +45,14 @@ public struct Workbook: Codable, Equatable { public let name: String? public let id: String public let relationship: String - public let state: String? + + public enum State: String, Codable { + case visible + case hidden + case veryHidden + } + + public let state: State? enum CodingKeys: String, CodingKey { case name diff --git a/Tests/CoreXLSXTests/Workbook.swift b/Tests/CoreXLSXTests/Workbook.swift index 999a6183..85f0e03f 100644 --- a/Tests/CoreXLSXTests/Workbook.swift +++ b/Tests/CoreXLSXTests/Workbook.swift @@ -40,13 +40,13 @@ private let expectedWorkbook = name: "Summary", id: "1", relationship: "rId4", - state: "visible" + state: .visible ), .init( name: "General", id: "2", relationship: "rId5", - state: "hidden" + state: .hidden ), ]))