All Versions
9
Latest Version
Avg Release Cycle
80 days
Latest Release
1865 days ago
Changelog History
Changelog History
-
v3.2.0
February 16, 2020 -
v3.1.0 Changes
January 16, 2020 -
v3.0.0 Changes
August 08, 2019Crossroad 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 providesURLParser
to make Context.let parser = URLParser\<Void\>()let context = parser.parse(URL(string: "pokedex:/pokemons/25")!, in: URLPattern("pokedex://pokemons/:id")))
๐ Rename
Extractable
toParsable
#19Now rename
Extractable
toParsable
. 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- ๐ Support omission a URL Scheme on URLPattern. Type scheme once only by rob-nash ยท Pull Request #5 ยท giginet/Crossroad
-
v1.0.0
May 30, 2018 -
v0.1.0
May 21, 2018