From 5a3d273acc771c3cecc918ed87d6842bd11d4ed4 Mon Sep 17 00:00:00 2001 From: Thibaut Schmitt Date: Fri, 18 Nov 2022 17:20:21 +0100 Subject: [PATCH] =?UTF-8?q?Passage=20version=20en=201.2=20Ajout=20de=20la?= =?UTF-8?q?=20d=C3=A9finition=20d'une=20architecture=20de=20classe=20pour?= =?UTF-8?q?=20=C3=A9viter=20de=20d=C3=A9finir=20manuellement=20les=20class?= =?UTF-8?q?es=20R/R2Image/R2Fonts....=20(optionel)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xcschemes/ResgenSwift.xcscheme | 14 +++++++ SampleFiles/resgenConfiguration.yml | 26 +++++++++++++ Sources/ResgenSwift/Generate/Generate.swift | 20 +++++----- .../ResgenSwift/Generate/GenerateError.swift | 4 ++ .../Generator/ArchitectureGenerator.swift | 37 ++++++++++++++++++ .../Generate/Model/ConfigurationFile.swift | 38 ++++++++++++++++++- Sources/ToolCore/Version.swift | 2 +- 7 files changed, 130 insertions(+), 11 deletions(-) create mode 100644 Sources/ResgenSwift/Generate/Generator/ArchitectureGenerator.swift diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/ResgenSwift.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/ResgenSwift.xcscheme index 9b1dd24..354d5d2 100644 --- a/.swiftpm/xcode/xcshareddata/xcschemes/ResgenSwift.xcscheme +++ b/.swiftpm/xcode/xcshareddata/xcschemes/ResgenSwift.xcscheme @@ -102,6 +102,20 @@ ReferencedContainer = "container:"> + + + + + + + + String { + " static let \(property) = \(classname)()" + } + + func getClass() -> String { + guard children?.isEmpty == false else { + return "class \(classname) {}" + } + + let classDefinition = [ + "class \(classname) {", + children?.map { $0.getProperty() }.joined(separator: "\n"), + "}" + ] + .compactMap { $0 } + .joined(separator: "\n") + + return [classDefinition, "", getSubclass()] + .compactMap { $0 } + .joined(separator: "\n") + } + + func getSubclass() -> String? { + guard let children else { return nil } + return children.compactMap { arch in + arch.getClass() + } + .joined(separator: "\n\n") + } +} struct ColorsConfiguration: Codable, CustomDebugStringConvertible { let inputFile: String @@ -267,4 +304,3 @@ struct TagsConfiguration: Codable, CustomDebugStringConvertible { """ } } - diff --git a/Sources/ToolCore/Version.swift b/Sources/ToolCore/Version.swift index 11adb0e..b850b78 100644 --- a/Sources/ToolCore/Version.swift +++ b/Sources/ToolCore/Version.swift @@ -7,4 +7,4 @@ import Foundation -public let ResgenSwiftVersion = "1.1" +public let ResgenSwiftVersion = "1.2"