From 695c626506565eab50db13b3bcd7b9ad8627405f Mon Sep 17 00:00:00 2001 From: Kostiantyn Koval Date: Wed, 9 Dec 2015 09:35:53 +0100 Subject: [PATCH] move TOML printing to toTOML methods. Every type should know how to TOML itself and don't expose it to others. --- Sources/PackageDescription/Package.swift | 8 +++++++- Sources/PackageDescription/Target.swift | 13 +++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/Sources/PackageDescription/Package.swift b/Sources/PackageDescription/Package.swift index 33e87cd0ff6..86e267afc15 100644 --- a/Sources/PackageDescription/Package.swift +++ b/Sources/PackageDescription/Package.swift @@ -38,6 +38,12 @@ public final class Package { public class func Package(url url: String, _ version: Version) -> Dependency { return Dependency(url, version...version) } + + /// Print a representation of the dependency as TOML. + public func toTOML() -> String { + return "[\"\(url)\", \"\(versionRange.startIndex)\", \"\(versionRange.endIndex)\"]," + } + } /// The name of the package, if specified. @@ -74,7 +80,7 @@ public final class Package { } result += "dependencies = [" for dependency in dependencies { - result += "[\"\(dependency.url)\", \"\(dependency.versionRange.startIndex)\", \"\(dependency.versionRange.endIndex)\"]," + result += dependency.toTOML() } result += "]\n" for target in targets { diff --git a/Sources/PackageDescription/Target.swift b/Sources/PackageDescription/Target.swift index 1593958920d..6b7bd2ab83a 100644 --- a/Sources/PackageDescription/Target.swift +++ b/Sources/PackageDescription/Target.swift @@ -14,6 +14,14 @@ public final class Target { public enum Dependency { /// A dependency on a target in the same project. case Target(name: String) + + /// Print a representation of the target dependency as TOML. + public func toTOML() -> String { + switch self { + case .Target(let name): + return "\"\(name)\"," + } + } } /// The name of the target. @@ -35,10 +43,7 @@ public final class Target { result += "name = \"\(name)\"\n" result += "dependencies = [" for dependency in dependencies { - switch dependency { - case .Target(let name): - result += "\"\(name)\"," - } + result += dependency.toTOML() } result += "]\n" return result