feat(RES-57): Add visibility to control scope of generated code (#18)
All checks were successful
gitea-openium/resgen.swift/pipeline/head This commit looks good

Add visibility parameter: public, package, internal, private
Impacted command: analytics, colors, fonts, images, strings, tags

Reviewed-on: #18
This commit is contained in:
2025-07-21 16:56:05 +02:00
parent beca2c6b2b
commit 5ad219ae89
62 changed files with 1526 additions and 794 deletions

View File

@@ -21,10 +21,13 @@ final class ColorExtensionGeneratorTests: XCTestCase {
]
// When
let extensionContent = ColorExtensionGenerator.getExtensionContent(colors: colors,
staticVar: false,
extensionName: "GenColors",
isSwiftUI: false)
let extensionContent = ColorExtensionGenerator.getExtensionContent(
colors: colors,
staticVar: false,
extensionName: "GenColors",
isSwiftUI: false,
visibility: .public
)
// Expect
let expect = """
@@ -35,12 +38,12 @@ final class ColorExtensionGeneratorTests: XCTestCase {
extension GenColors {
/// Color colorOne is #FF00FF (light) or #00FF00 (dark)"
@objc var colorOne: UIColor {
@objc public var colorOne: UIColor {
UIColor(named: "colorOne")!
}
/// Color colorTwo is #F0F0F0 (light) or #0F0F0F (dark)"
@objc var colorTwo: UIColor {
@objc public var colorTwo: UIColor {
UIColor(named: "colorTwo")!
}
}
@@ -57,10 +60,13 @@ final class ColorExtensionGeneratorTests: XCTestCase {
]
// When
let extensionContent = ColorExtensionGenerator.getExtensionContent(colors: colors,
staticVar: true,
extensionName: "GenColor",
isSwiftUI: false)
let extensionContent = ColorExtensionGenerator.getExtensionContent(
colors: colors,
staticVar: true,
extensionName: "GenColor",
isSwiftUI: false,
visibility: .public
)
// Expect
let expect = """
@@ -71,12 +77,12 @@ final class ColorExtensionGeneratorTests: XCTestCase {
extension GenColor {
/// Color colorOne is #FF00FF (light) or #00FF00 (dark)"
static var colorOne: UIColor {
public static var colorOne: UIColor {
UIColor(named: "colorOne")!
}
/// Color colorTwo is #F0F0F0 (light) or #0F0F0F (dark)"
static var colorTwo: UIColor {
public static var colorTwo: UIColor {
UIColor(named: "colorTwo")!
}
}
@@ -93,10 +99,13 @@ final class ColorExtensionGeneratorTests: XCTestCase {
]
// When
let extensionContent = ColorExtensionGenerator.getExtensionContent(colors: colors,
staticVar: false,
extensionName: "GenColors",
isSwiftUI: true)
let extensionContent = ColorExtensionGenerator.getExtensionContent(
colors: colors,
staticVar: false,
extensionName: "GenColors",
isSwiftUI: true,
visibility: .package
)
// Expect
let expect = """
@@ -107,12 +116,12 @@ final class ColorExtensionGeneratorTests: XCTestCase {
extension GenColors {
/// Color colorOne is #FF00FF (light) or #00FF00 (dark)"
var colorOne: Color {
package var colorOne: Color {
Color("colorOne")
}
/// Color colorTwo is #F0F0F0 (light) or #0F0F0F (dark)"
var colorTwo: Color {
package var colorTwo: Color {
Color("colorTwo")
}
}
@@ -129,10 +138,13 @@ final class ColorExtensionGeneratorTests: XCTestCase {
]
// When
let extensionContent = ColorExtensionGenerator.getExtensionContent(colors: colors,
staticVar: true,
extensionName: "GenColor",
isSwiftUI: true)
let extensionContent = ColorExtensionGenerator.getExtensionContent(
colors: colors,
staticVar: true,
extensionName: "GenColor",
isSwiftUI: true,
visibility: .internal
)
// Expect
let expect = """
@@ -143,12 +155,12 @@ final class ColorExtensionGeneratorTests: XCTestCase {
extension GenColor {
/// Color colorOne is #FF00FF (light) or #00FF00 (dark)"
static var colorOne: Color {
internal static var colorOne: Color {
Color("colorOne")
}
/// Color colorTwo is #F0F0F0 (light) or #0F0F0F (dark)"
static var colorTwo: Color {
internal static var colorTwo: Color {
Color("colorTwo")
}
}

View File

@@ -17,12 +17,16 @@ final class ParsedColorTests: XCTestCase {
let color = ParsedColor(name: "red", light: "#FF0000", dark: "#0000FF")
// When
let property = color.getColorProperty(isStatic: false, isSwiftUI: false)
let property = color.getColorProperty(
isStatic: false,
isSwiftUI: false,
visibility: .public
)
// Expect
let expect = """
/// Color red is #FF0000 (light) or #0000FF (dark)"
@objc var red: UIColor {
@objc public var red: UIColor {
UIColor(named: "red")!
}
"""
@@ -35,12 +39,16 @@ final class ParsedColorTests: XCTestCase {
let color = ParsedColor(name: "red", light: "#FF0000", dark: "#0000FF")
// When
let property = color.getColorProperty(isStatic: true, isSwiftUI: false)
let property = color.getColorProperty(
isStatic: true,
isSwiftUI: false,
visibility: .private
)
// Expect
let expect = """
/// Color red is #FF0000 (light) or #0000FF (dark)"
static var red: UIColor {
private static var red: UIColor {
UIColor(named: "red")!
}
"""
@@ -53,12 +61,16 @@ final class ParsedColorTests: XCTestCase {
let color = ParsedColor(name: "red", light: "#FF0000", dark: "#0000FF")
// When
let property = color.getColorProperty(isStatic: false, isSwiftUI: true)
let property = color.getColorProperty(
isStatic: false,
isSwiftUI: true,
visibility: .package
)
// Expect
let expect = """
/// Color red is #FF0000 (light) or #0000FF (dark)"
var red: Color {
package var red: Color {
Color("red")
}
"""
@@ -71,12 +83,16 @@ final class ParsedColorTests: XCTestCase {
let color = ParsedColor(name: "red", light: "#FF0000", dark: "#0000FF")
// When
let property = color.getColorProperty(isStatic: true, isSwiftUI: true)
let property = color.getColorProperty(
isStatic: true,
isSwiftUI: true,
visibility: .internal
)
// Expect
let expect = """
/// Color red is #FF0000 (light) or #0000FF (dark)"
static var red: Color {
internal static var red: Color {
Color("red")
}
"""