Skip to content

Commit cd61d27

Browse files
committed
Swift 1.2 support
1 parent f06fe4d commit cd61d27

File tree

3 files changed

+19
-15
lines changed

3 files changed

+19
-15
lines changed

JSONSchema/JSONSchema.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public enum Type: Swift.String {
2121
extension String {
2222
func stringByRemovingPrefix(prefix:String) -> String? {
2323
if hasPrefix(prefix) {
24-
let index = advance(startIndex, countElements(prefix))
24+
let index = advance(startIndex, count(prefix))
2525
return substringFromIndex(index)
2626
}
2727

@@ -47,9 +47,13 @@ public struct Schema {
4747
if let type = schema["type"] as? String {
4848
if let type = Type(rawValue: type) {
4949
self.type = [type]
50+
} else {
51+
self.type = []
5052
}
5153
} else if let types = schema["type"] as? [String] {
52-
type = map(filter(map(types) { Type(rawValue: $0) }) { $0 != nil }) { $0! }
54+
self.type = map(filter(map(types) { Type(rawValue: $0) }) { $0 != nil }) { $0! }
55+
} else {
56+
self.type = []
5357
}
5458

5559
self.schema = schema

JSONSchema/Validators.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ func allOf(validators:[Validator])(value:AnyObject) -> ValidationResult {
167167
}
168168

169169
func validateEnum(values:[AnyObject])(value:AnyObject) -> ValidationResult {
170-
if contains(values as [NSObject], value as NSObject) {
170+
if contains(values as! [NSObject], value as! NSObject) {
171171
return .Valid
172172
}
173173

@@ -178,7 +178,7 @@ func validateEnum(values:[AnyObject])(value:AnyObject) -> ValidationResult {
178178

179179
func validateLength(comparitor:((Int, Int) -> (Bool)), length:Int, error:String)(value:AnyObject) -> ValidationResult {
180180
if let value = value as? String {
181-
if !comparitor(countElements(value), length) {
181+
if !comparitor(count(value), length) {
182182
return .Invalid([error])
183183
}
184184
}
@@ -190,7 +190,7 @@ func validatePattern(pattern:String)(value:AnyObject) -> ValidationResult {
190190
if let value = value as? String {
191191
let expression = NSRegularExpression(pattern: pattern, options: NSRegularExpressionOptions(0), error: nil)
192192
if let expression = expression {
193-
let range = NSMakeRange(0, value.utf16Count)
193+
let range = NSMakeRange(0, count(value))
194194
if expression.matchesInString(value, options: NSMatchingOptions(0), range: range).count == 0 {
195195
return .Invalid(["'\(value)' does not match pattern: '\(pattern)'"])
196196
}
@@ -253,9 +253,9 @@ func validateUniqueItems(value:AnyObject) -> ValidationResult {
253253
return CFGetTypeID(number) != CFBooleanGetTypeID()
254254
}
255255

256-
let numbers = filter(value) { value in value is NSNumber } as [NSNumber]
256+
let numbers = filter(value) { value in value is NSNumber } as! [NSNumber]
257257
let numerBooleans = filter(numbers, isBoolean)
258-
let booleans = numerBooleans as [Bool]
258+
let booleans = numerBooleans as! [Bool]
259259
let nonBooleans = filter(numbers) { number in !isBoolean(number) }
260260
let hasTrueAndOne = filter(booleans) { v in v }.count > 0 && filter(nonBooleans) { v in v == 1 }.count > 0
261261
let hasFalseAndZero = filter(booleans) { v in !v }.count > 0 && filter(nonBooleans) { v in v == 0 }.count > 0
@@ -315,7 +315,7 @@ func validateProperties(properties:[String:Validator]?, patternProperties:[Strin
315315
var error:NSError?
316316
if let expression = NSRegularExpression(pattern: pattern, options: NSRegularExpressionOptions(0), error: &error) {
317317
let keys = value.keys.filter {
318-
(key:String) in expression.matchesInString(key, options: NSMatchingOptions(0), range: NSMakeRange(0, key.utf16Count)).count > 0
318+
(key:String) in expression.matchesInString(key, options: NSMatchingOptions(0), range: NSMakeRange(0, count(key))).count > 0
319319
}
320320

321321
allKeys.addObjectsFromArray(keys.array)
@@ -366,7 +366,7 @@ func validateDependencies(key:String, dependencies:[String])(value:AnyObject) ->
366366
func validateIPv4(value:AnyObject) -> ValidationResult {
367367
if let ipv4 = value as? String {
368368
if let expression = NSRegularExpression(pattern: "^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$", options: NSRegularExpressionOptions(0), error: nil) {
369-
if expression.matchesInString(ipv4, options: NSMatchingOptions(0), range: NSMakeRange(0, ipv4.utf16Count)).count == 1 {
369+
if expression.matchesInString(ipv4, options: NSMatchingOptions(0), range: NSMakeRange(0, count(ipv4))).count == 1 {
370370
return .Valid
371371
}
372372
}

JSONSchemaTests/JSONSchemaCases.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@ func JSONFixture(named:String, forObject:AnyObject) -> [[String:AnyObject]] {
2222
var error:NSError?
2323
let object: AnyObject? = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(0), error: &error)
2424
assert(error == nil)
25-
return object as [[String:AnyObject]]
25+
return object as! [[String:AnyObject]]
2626
}
2727

2828
class JSONSchemaCases: XCTestCase {
2929
override class func testInvocations() -> [AnyObject] {
3030
let bundle = NSBundle(forClass: self)
3131
let fileManager = NSFileManager.defaultManager()
32-
let files = fileManager.enumeratorAtPath(bundle.resourcePath!)!.allObjects as [String]
32+
let files = fileManager.enumeratorAtPath(bundle.resourcePath!)!.allObjects as! [String]
3333
let suites = filter(files) { (path) -> Bool in
3434
let blacklist = [
3535
"ref.json",
@@ -93,7 +93,7 @@ struct Test {
9393
}
9494

9595
func makeTest(object:[String:AnyObject]) -> Test {
96-
return Test(description: object["description"] as String, data: object["data"] as AnyObject!, value: object["valid"] as Bool)
96+
return Test(description: object["description"] as! String, data: object["data"] as AnyObject!, value: object["valid"] as! Bool)
9797
}
9898

9999
struct Case {
@@ -109,9 +109,9 @@ struct Case {
109109
}
110110

111111
func makeCase(filename:String)(object:[String:AnyObject]) -> Case {
112-
let description = object["description"] as String
113-
let schema = object["schema"] as [String:AnyObject]
114-
let tests = map(object["tests"] as [[String: AnyObject]], makeTest)
112+
let description = object["description"] as! String
113+
let schema = object["schema"] as! [String:AnyObject]
114+
let tests = map(object["tests"] as! [[String: AnyObject]], makeTest)
115115
let caseName = filename.stringByDeletingPathExtension
116116
return Case(description: "\(caseName) \(description)", schema: schema, tests: tests)
117117
}

0 commit comments

Comments
 (0)