Passage version en 1.2
Some checks failed
gitea-openium/resgen.swift/pipeline/head There was a failure building this commit

Ajout de la définition d'une architecture de classe pour éviter de définir manuellement les classes R/R2Image/R2Fonts.... (optionel)
This commit is contained in:
2022-11-18 17:20:21 +01:00
parent a7a850799d
commit 5a3d273acc
7 changed files with 130 additions and 11 deletions

View File

@ -8,6 +8,7 @@
import Foundation
struct ConfigurationFile: Codable, CustomDebugStringConvertible {
var architecture: ConfigurationArchitecture?
var colors: [ColorsConfiguration]
var fonts: [FontsConfiguration]
var images: [ImagesConfiguration]
@ -38,6 +39,42 @@ struct ConfigurationFile: Codable, CustomDebugStringConvertible {
}
}
struct ConfigurationArchitecture: Codable {
let property: String
let classname: String
let path: String?
let children: [ConfigurationArchitecture]?
func getProperty() -> 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 {
"""
}
}