Skip to content

Commit

Permalink
Merge pull request #92 from mdiep/range-and-nsrange-init
Browse files Browse the repository at this point in the history
[gardening] Use `NSRange.init(_:in:)` and `Range.init(_:in:)`
  • Loading branch information
mdiep authored Nov 16, 2017
2 parents e74848a + 91b8cf1 commit aaa7ade
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions Sources/Tentacle/Response.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,19 @@ let LinksRegex = try! NSRegularExpression(pattern: "(?<=\\A|,) *<([^>]+)>( *; *\
let LinkParamRegex = try! NSRegularExpression(pattern: "; *(\\w+) *= *\"([^\"]+)\"")

/// Returns any links, keyed by `rel`, from the RFC 5988 link header.
private func linksInLinkHeader(_ header: NSString) -> [String: URL] {
private func linksInLinkHeader(_ header: String) -> [String: URL] {
var links: [String: URL] = [:]
for match in LinksRegex.matches(in: header as String, range: NSRange(location: 0, length: header.length)) {
let URI = header.substring(with: match.range(at: 1))
let params = header.substring(with: match.range(at: 2)) as NSString
for match in LinksRegex.matches(in: header, range: NSRange(header.startIndex..., in: header)) {
let URI = String(header[Range(match.range(at: 1), in: header)!])
let params = String(header[Range(match.range(at: 2), in: header)!])
guard let url = URL(string: URI) else { continue }

var relName: String? = nil
for match in LinkParamRegex.matches(in: params as String, range: NSRange(location: 0, length: params.length)) {
let name = params.substring(with: match.range(at: 1))
for match in LinkParamRegex.matches(in: params, range: NSRange(params.startIndex..., in: params)) {
let name = params[Range(match.range(at: 1), in: params)!]
if name != "rel" { continue }

relName = params.substring(with: match.range(at: 2))
relName = String(params[Range(match.range(at: 2), in: params)!])
}

if let relName = relName {
Expand Down Expand Up @@ -59,7 +59,7 @@ public struct Response {
self.rateLimitReset = headerFields["X-RateLimit-Reset"]
.flatMap { TimeInterval($0) }
.map { Date(timeIntervalSince1970: $0) }
self.links = linksInLinkHeader(headerFields["Link"] as NSString? ?? "")
self.links = linksInLinkHeader(headerFields["Link"] as String? ?? "")
}
}

Expand Down

0 comments on commit aaa7ade

Please sign in to comment.