From fdde1dec029b25198e34129f10dc8dbc51028b5f Mon Sep 17 00:00:00 2001 From: Kyle Fuller Date: Thu, 8 Dec 2016 16:01:30 +0000 Subject: [PATCH] refactor: Simplify string filters to use stringify --- Sources/Filters.swift | 28 +++------------------------- Sources/Node.swift | 24 ++++++++++++++---------- 2 files changed, 17 insertions(+), 35 deletions(-) diff --git a/Sources/Filters.swift b/Sources/Filters.swift index 9b7cb24..dd78ff4 100644 --- a/Sources/Filters.swift +++ b/Sources/Filters.swift @@ -1,35 +1,13 @@ -func toString(_ value: Any?) -> String? { - if let value = value as? String { - return value - } else if let value = value as? CustomStringConvertible { - return value.description - } - - return nil -} - func capitalise(_ value: Any?) -> Any? { - if let value = toString(value) { - return value.capitalized - } - - return value + return stringify(value).capitalized } func uppercase(_ value: Any?) -> Any? { - if let value = toString(value) { - return value.uppercased() - } - - return value + return stringify(value).uppercased() } func lowercase(_ value: Any?) -> Any? { - if let value = toString(value) { - return value.lowercased() - } - - return value + return stringify(value).lowercased() } func defaultFilter(value: Any?, arguments: [Any?]) -> Any? { diff --git a/Sources/Node.swift b/Sources/Node.swift index 781fd3b..5b47177 100644 --- a/Sources/Node.swift +++ b/Sources/Node.swift @@ -70,15 +70,19 @@ public class VariableNode : NodeType { public func render(_ context: Context) throws -> String { let result = try variable.resolve(context) - - if let result = result as? String { - return result - } else if let result = result as? CustomStringConvertible { - return result.description - } else if let result = result as? NSObject { - return result.description - } - - return "" + return stringify(result) } } + + +func stringify(_ result: Any?) -> String { + if let result = result as? String { + return result + } else if let result = result as? CustomStringConvertible { + return result.description + } else if let result = result as? NSObject { + return result.description + } + + return "" +}