Changelog History
Page 1
-
v4.2.0 Changes
May 22, 2022๐ This version adds macOS support and improves dev environments.
What's Changed
- Modify GitHub Action hooks by @giginet in #44
- ๐ Fix sample code in README.md by @simorgh3196 in #45
- ๐ Support macOS by @itaru0724 in #47
๐ New Contributors
- @simorgh3196 made their first contribution in #45
- @itaru0724 made their first contribution in #47
Full Changelog : 4.1.0...4.2.0
-
v4.1.0 Changes
December 02, 2021 -
v4.0.1 Changes
November 24, 2021 -
v4.0.0 Changes
November 20, 2021Crossroad 4.0.0
๐ This release includes breaking API changes. Please read README.
๐ If you have any problems migrating to this version. Feel free to create an issue ๐
-
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 providesURLParserto make Context.let parser = URLParser\<Void\>()let context = parser.parse(URL(string: "pokedex:/pokemons/25")!, in: URLPattern("pokedex://pokemons/:id")))๐ Rename
ExtractabletoParsable#19Now rename
ExtractabletoParsable. 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