@@ -9,17 +9,24 @@ matrix:
|
|||||||
- os: osx
|
- os: osx
|
||||||
osx_image: xcode10
|
osx_image: xcode10
|
||||||
env: SWIFT_VERSION=4.2
|
env: SWIFT_VERSION=4.2
|
||||||
|
- os: osx
|
||||||
|
osx_image: xcode10.2
|
||||||
|
env: SWIFT_VERSION=5.0
|
||||||
- os: linux
|
- os: linux
|
||||||
env: SWIFT_VERSION=4.0.3
|
env: SWIFT_VERSION=4.0.3
|
||||||
- os: linux
|
- os: linux
|
||||||
env: SWIFT_VERSION=4.1
|
env: SWIFT_VERSION=4.1
|
||||||
- os: linux
|
- os: linux
|
||||||
env: SWIFT_VERSION=4.2
|
env: SWIFT_VERSION=4.2
|
||||||
|
- os: linux
|
||||||
|
env: SWIFT_VERSION=4.2.3
|
||||||
|
- os: linux
|
||||||
|
env: SWIFT_VERSION=5.0
|
||||||
language: generic
|
language: generic
|
||||||
sudo: required
|
sudo: required
|
||||||
dist: trusty
|
dist: trusty
|
||||||
install:
|
install:
|
||||||
- eval "$(curl -sL https://swiftenv.fuller.li/install.sh)"
|
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then eval "$(curl -sL https://swiftenv.fuller.li/install.sh)"; fi
|
||||||
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then wget --output-document /tmp/SwiftLint.pkg https://github.com/realm/SwiftLint/releases/download/0.27.0/SwiftLint.pkg &&
|
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then wget --output-document /tmp/SwiftLint.pkg https://github.com/realm/SwiftLint/releases/download/0.27.0/SwiftLint.pkg &&
|
||||||
sudo installer -pkg /tmp/SwiftLint.pkg -target /; fi
|
sudo installer -pkg /tmp/SwiftLint.pkg -target /; fi
|
||||||
script:
|
script:
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
"repositoryURL": "https://github.com/kylef/PathKit.git",
|
"repositoryURL": "https://github.com/kylef/PathKit.git",
|
||||||
"state": {
|
"state": {
|
||||||
"branch": null,
|
"branch": null,
|
||||||
"revision": "e2f5be30e4c8f531c9c1e8765aa7b71c0a45d7a0",
|
"revision": "73f8e9dca9b7a3078cb79128217dc8f2e585a511",
|
||||||
"version": "0.9.2"
|
"version": "1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
23
Package@swift-5.swift
Normal file
23
Package@swift-5.swift
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
// swift-tools-version:5.0
|
||||||
|
import PackageDescription
|
||||||
|
|
||||||
|
let package = Package(
|
||||||
|
name: "Stencil",
|
||||||
|
products: [
|
||||||
|
.library(name: "Stencil", targets: ["Stencil"])
|
||||||
|
],
|
||||||
|
dependencies: [
|
||||||
|
.package(url: "https://github.com/kylef/PathKit.git", from: "1.0.0"),
|
||||||
|
.package(url: "https://github.com/kylef/Spectre.git", from: "0.9.0")
|
||||||
|
],
|
||||||
|
targets: [
|
||||||
|
.target(name: "Stencil", dependencies: [
|
||||||
|
"PathKit"
|
||||||
|
], path: "Sources"),
|
||||||
|
.testTarget(name: "StencilTests", dependencies: [
|
||||||
|
"Stencil",
|
||||||
|
"Spectre"
|
||||||
|
])
|
||||||
|
],
|
||||||
|
swiftLanguageVersions: [.v4, .v4_2, .v5]
|
||||||
|
)
|
||||||
@@ -71,7 +71,7 @@ public class VariableNode: NodeType {
|
|||||||
|
|
||||||
if hasToken("if", at: 1) {
|
if hasToken("if", at: 1) {
|
||||||
let components = components.suffix(from: 2)
|
let components = components.suffix(from: 2)
|
||||||
if let elseIndex = components.index(of: "else") {
|
if let elseIndex = components.firstIndex(of: "else") {
|
||||||
condition = try parser.compileExpression(components: Array(components.prefix(upTo: elseIndex)), token: token)
|
condition = try parser.compileExpression(components: Array(components.prefix(upTo: elseIndex)), token: token)
|
||||||
let elseToken = components.suffix(from: elseIndex.advanced(by: 1)).joined(separator: " ")
|
let elseToken = components.suffix(from: elseIndex.advanced(by: 1)).joined(separator: " ")
|
||||||
elseExpression = try parser.compileResolvable(elseToken, containedIn: token)
|
elseExpression = try parser.compileResolvable(elseToken, containedIn: token)
|
||||||
|
|||||||
@@ -36,3 +36,11 @@ public extension Variable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !swift(>=4.2)
|
||||||
|
extension ArraySlice where Element: Equatable {
|
||||||
|
func firstIndex(of element: Element) -> Int? {
|
||||||
|
return index(of: element)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
"tvos": "9.0"
|
"tvos": "9.0"
|
||||||
},
|
},
|
||||||
"cocoapods_version": ">= 1.4.0",
|
"cocoapods_version": ">= 1.4.0",
|
||||||
"swift_version": "4.2",
|
"swift_version": "5.0",
|
||||||
"requires_arc": true,
|
"requires_arc": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"PathKit": [
|
"PathKit": [
|
||||||
|
|||||||
@@ -215,7 +215,7 @@ final class EnvironmentIncludeTemplateTests: XCTestCase {
|
|||||||
override func setUp() {
|
override func setUp() {
|
||||||
super.setUp()
|
super.setUp()
|
||||||
|
|
||||||
let path = Path(#file) + ".." + "fixtures"
|
let path = Path(#file as String) + ".." + "fixtures"
|
||||||
let loader = FileSystemLoader(paths: [path])
|
let loader = FileSystemLoader(paths: [path])
|
||||||
environment = Environment(loader: loader)
|
environment = Environment(loader: loader)
|
||||||
template = ""
|
template = ""
|
||||||
@@ -291,7 +291,7 @@ final class EnvironmentBaseAndChildTemplateTests: XCTestCase {
|
|||||||
override func setUp() {
|
override func setUp() {
|
||||||
super.setUp()
|
super.setUp()
|
||||||
|
|
||||||
let path = Path(#file) + ".." + "fixtures"
|
let path = Path(#file as String) + ".." + "fixtures"
|
||||||
let loader = FileSystemLoader(paths: [path])
|
let loader = FileSystemLoader(paths: [path])
|
||||||
environment = Environment(loader: loader)
|
environment = Environment(loader: loader)
|
||||||
childTemplate = ""
|
childTemplate = ""
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import Spectre
|
|||||||
import XCTest
|
import XCTest
|
||||||
|
|
||||||
final class IncludeTests: XCTestCase {
|
final class IncludeTests: XCTestCase {
|
||||||
let path = Path(#file) + ".." + "fixtures"
|
let path = Path(#file as String) + ".." + "fixtures"
|
||||||
lazy var loader = FileSystemLoader(paths: [path])
|
lazy var loader = FileSystemLoader(paths: [path])
|
||||||
lazy var environment = Environment(loader: loader)
|
lazy var environment = Environment(loader: loader)
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import Stencil
|
|||||||
import XCTest
|
import XCTest
|
||||||
|
|
||||||
final class InheritanceTests: XCTestCase {
|
final class InheritanceTests: XCTestCase {
|
||||||
let path = Path(#file) + ".." + "fixtures"
|
let path = Path(#file as String) + ".." + "fixtures"
|
||||||
lazy var loader = FileSystemLoader(paths: [path])
|
lazy var loader = FileSystemLoader(paths: [path])
|
||||||
lazy var environment = Environment(loader: loader)
|
lazy var environment = Environment(loader: loader)
|
||||||
|
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ final class LexerTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testPerformance() throws {
|
func testPerformance() throws {
|
||||||
let path = Path(#file) + ".." + "fixtures" + "huge.html"
|
let path = Path(#file as String) + ".." + "fixtures" + "huge.html"
|
||||||
let content: String = try path.read()
|
let content: String = try path.read()
|
||||||
|
|
||||||
measure {
|
measure {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import XCTest
|
|||||||
|
|
||||||
final class TemplateLoaderTests: XCTestCase {
|
final class TemplateLoaderTests: XCTestCase {
|
||||||
func testFileSystemLoader() {
|
func testFileSystemLoader() {
|
||||||
let path = Path(#file) + ".." + "fixtures"
|
let path = Path(#file as String) + ".." + "fixtures"
|
||||||
let loader = FileSystemLoader(paths: [path])
|
let loader = FileSystemLoader(paths: [path])
|
||||||
let environment = Environment(loader: loader)
|
let environment = Environment(loader: loader)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user