Compare commits
2 Commits
129eb135f1
...
636584ca45
Author | SHA1 | Date | |
---|---|---|---|
636584ca45 | |||
c8cfe82109 |
2
Jenkinsfile
vendored
2
Jenkinsfile
vendored
@ -1,6 +1,6 @@
|
||||
library "openiumpipeline"
|
||||
|
||||
env.DEVELOPER_DIR="/Applications/Xcode-15.0.1.app/Contents/Developer"
|
||||
env.DEVELOPER_DIR="/Applications/Xcode-15.3.0.app/Contents/Developer"
|
||||
//env.SIMULATOR_DEVICE_TYPES="iPad--7th-generation-"
|
||||
env.IS_PACKAGE_SWIFT=1
|
||||
env.TARGETS_MACOS=1
|
||||
|
@ -119,7 +119,7 @@ class XcassetsGenerator {
|
||||
}
|
||||
|
||||
// Write Content.json
|
||||
let imagesetContentJson = parsedImage.contentJson
|
||||
guard let imagesetContentJson = parsedImage.contentJson else { return }
|
||||
let contentJsonFilePath = "\(imagesetPath)/Contents.json"
|
||||
|
||||
let contentJsonFilePathURL = URL(fileURLWithPath: contentJsonFilePath)
|
||||
|
32
Sources/ResgenSwift/Images/Model/ImageContent.swift
Normal file
32
Sources/ResgenSwift/Images/Model/ImageContent.swift
Normal file
@ -0,0 +1,32 @@
|
||||
//
|
||||
// ImageContent.swift
|
||||
//
|
||||
//
|
||||
// Created by Quentin Bandera on 19/04/2024.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
struct AssetContent: Codable, Equatable {
|
||||
let images: [AssetImageDescription]
|
||||
let info: AssetInfo
|
||||
|
||||
static func == (lhs: AssetContent, rhs: AssetContent) -> Bool {
|
||||
guard lhs.images.count == rhs.images.count else { return false }
|
||||
let lhsImages = lhs.images.sorted(by: { $0.scale < $1.scale })
|
||||
let rhsImages = rhs.images.sorted(by: { $0.scale < $1.scale })
|
||||
|
||||
return lhsImages == rhsImages
|
||||
}
|
||||
}
|
||||
|
||||
struct AssetImageDescription: Codable, Equatable {
|
||||
let idiom: String
|
||||
let scale: String
|
||||
let filename: String
|
||||
}
|
||||
|
||||
struct AssetInfo: Codable, Equatable {
|
||||
let version: Int
|
||||
let author: String
|
||||
}
|
@ -42,32 +42,43 @@ struct ParsedImage {
|
||||
|
||||
// MARK: - Assets
|
||||
|
||||
var contentJson: String {
|
||||
"""
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x",
|
||||
"filename" : "\(name).\(XcassetsGenerator.outputImageExtension)"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "\(name)@2x.\(XcassetsGenerator.outputImageExtension)"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x",
|
||||
"filename" : "\(name)@3x.\(XcassetsGenerator.outputImageExtension)"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "ResgenSwift-Imagium"
|
||||
}
|
||||
var contentJson: String? {
|
||||
let encoder = JSONEncoder()
|
||||
encoder.outputFormatting = .prettyPrinted
|
||||
|
||||
guard let data = try? encoder.encode(imageContent) else {
|
||||
let error = ImagesError.writeFile("Contents.json", "Error encoding json file")
|
||||
print(error.description)
|
||||
Images.exit(withError: error)
|
||||
}
|
||||
"""
|
||||
|
||||
return String(data: data, encoding: .utf8)
|
||||
}
|
||||
|
||||
var imageContent: AssetContent {
|
||||
return AssetContent(
|
||||
images: [
|
||||
AssetImageDescription(
|
||||
idiom: "universal",
|
||||
scale: "1x",
|
||||
filename: "\(name).\(XcassetsGenerator.outputImageExtension)"
|
||||
),
|
||||
AssetImageDescription(
|
||||
idiom: "universal",
|
||||
scale: "2x",
|
||||
filename: "\(name)@2x.\(XcassetsGenerator.outputImageExtension)"
|
||||
),
|
||||
AssetImageDescription(
|
||||
idiom: "universal",
|
||||
scale: "3x",
|
||||
filename: "\(name)@3x.\(XcassetsGenerator.outputImageExtension)"
|
||||
)
|
||||
],
|
||||
info: AssetInfo(
|
||||
version: 1,
|
||||
author: "ResgenSwift-Imagium"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// MARK: - Extension property
|
||||
|
@ -127,35 +127,33 @@ final class ParsedImageTests: XCTestCase {
|
||||
height: 10)
|
||||
|
||||
// When
|
||||
let property = parsedImage.contentJson
|
||||
let property = parsedImage.imageContent
|
||||
|
||||
// Expect
|
||||
let expect = """
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x",
|
||||
"filename" : "\(imageName).\(XcassetsGenerator.outputImageExtension)"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "\(imageName)@2x.\(XcassetsGenerator.outputImageExtension)"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x",
|
||||
"filename" : "\(imageName)@3x.\(XcassetsGenerator.outputImageExtension)"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "ResgenSwift-Imagium"
|
||||
}
|
||||
}
|
||||
"""
|
||||
let expect = AssetContent(
|
||||
images: [
|
||||
AssetImageDescription(
|
||||
idiom: "universal",
|
||||
scale: "1x",
|
||||
filename: "\(parsedImage.name).\(XcassetsGenerator.outputImageExtension)"
|
||||
),
|
||||
AssetImageDescription(
|
||||
idiom: "universal",
|
||||
scale: "2x",
|
||||
filename: "\(parsedImage.name)@2x.\(XcassetsGenerator.outputImageExtension)"
|
||||
),
|
||||
AssetImageDescription(
|
||||
idiom: "universal",
|
||||
scale: "3x",
|
||||
filename: "\(parsedImage.name)@3x.\(XcassetsGenerator.outputImageExtension)"
|
||||
)
|
||||
],
|
||||
info: AssetInfo(
|
||||
version: 1,
|
||||
author: "ResgenSwift-Imagium"
|
||||
)
|
||||
)
|
||||
|
||||
XCTAssertEqual(property.adaptForXCTest(), expect.adaptForXCTest())
|
||||
XCTAssertEqual(property, expect)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user