Skip to content

Instantly share code, notes, and snippets.

@initFabian
Last active March 9, 2016 22:18

Revisions

  1. initFabian revised this gist Mar 9, 2016. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions ChainableURLString.swift
    Original file line number Diff line number Diff line change
    @@ -32,6 +32,8 @@ struct AppURL {

    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"

  2. initFabian created this gist Mar 9, 2016.
    43 changes: 43 additions & 0 deletions ChainableURLString.swift
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,43 @@
    /*
    * 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
    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"