Skip to content

Instantly share code, notes, and snippets.

@initFabian
Last active March 9, 2016 22:18
Show Gist options
  • Save initFabian/92c8cd6716e03e231a8a to your computer and use it in GitHub Desktop.
Save initFabian/92c8cd6716e03e231a8a to your computer and use it in GitHub Desktop.
Chainable URL String
/*
* Chainable Url String example
* Run in Playground
*/
private var baseURL = "www.example.com"
struct AppURL {
struct User: CustomStringConvertible {
private var userID:String
private var url:String
var Address:String
var Order:String
init(_ uID:String) {
userID = uID
url = baseURL+"/users/\(userID)"
Address = url+"/address"
Order = url+"/orders"
}
var description: String { return url }
}
}
let getUserAddress = AppURL.User("21").Address
let postOrder = AppURL.User("21").Order
// How Im currently doing it.
let getOrder = AppURL.User("21").Order + "/22"
let cancelOrder = AppURL.User("21").Order + "/22" + "/cancel"
let example1 = AppURL.User("21").Order("22") // I want it to return "www.example.com/users/21/orders/22"
let example2 = AppURL.User("21").Order("22").cancel // I want it to return "www.example.com/users/21/orders/22/cancel"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment