All Versions
9
Latest Version
Avg Release Cycle
80 days
Latest Release
613 days ago

Changelog History

  • v3.2.0

    February 16, 2020
  • v3.1.0 Changes

    January 16, 2020

    โž• Add tvOS Support #25
    Thanks @mdyson !

  • v3.0.0 Changes

    August 08, 2019

    Crossroad 3.0.0 includes dramatically changes.

    Careful treating URL in its RFC #18

    According to the URL RFC, URL schemes and hosts must be case-insensitive.
    However, other path components must be case-sensitive.

    Crossroad now treats case-insensitive URL.

    router = DefaultRouter(scheme: "pokedex") router.register([("/pokemons", { context inlet type: Type? = context[parameter: "type"] presentPokedexListViewController(for: type) return true }), // ...])let canRespond25 = router.responds(to: URL(string: "POKEDEX://POKEMONS")!) // Accept!!!
    

    ๐Ÿ‘Œ Support subscript #22

    You can get arguments and parameters via [].

    let pokemonID: Int = context[argument: "pokemonID"]let query: String = context[parameter: "query"]
    

    ๐Ÿ‘ More Support relative path #17

    I recommend to use relative path for routing patterns especially for Universal Links. It should be readable.

    router = DefaultRouter(url: URL(string: "https://my-awesome-pokedex.com")!) router.register([("/pokemons", { context inlet type: Type? = context[parameter: "type"] presentPokedexListViewController(for: type) return true }), // ...])
    

    ๐Ÿ“œ Introduce URLParser #16

    ๐Ÿ“œ In some use cases (such a complex applications), you need to use separated URL parser.
    ๐Ÿ“œ Now, Crossroad 3 provides URLParser to make Context.

    let parser = URLParser\<Void\>()let context = parser.parse(URL(string: "pokedex:/pokemons/25")!, in: URLPattern("pokedex://pokemons/:id")))
    

    ๐Ÿ“‡ Rename Extractable to Parsable #19

    Now rename Extractable to Parsable. You have to use constractors instead of the static methods.

    Before

    public protocol Extractable { static func extract(from: String) -\> Self?}
    

    After

    public protocol Parsable { init?(from: String) }
    
  • v2.0.0

    April 12, 2019
  • v1.0.1 Changes

    July 08, 2018
  • v1.0.0

    May 30, 2018
  • v0.1.0

    May 21, 2018