Go to file
woxtu 662da02a0d Update README 2018-03-15 01:56:24 +09:00
RouteKit.xcodeproj Add Navigator 2018-03-15 01:54:23 +09:00
Sources/RouteKit Add Navigator 2018-03-15 01:54:23 +09:00
Tests/RouteKitTests Add Router 2018-03-14 01:51:27 +09:00
.gitignore Initial commit 2018-03-02 02:30:49 +09:00
LICENSE-MIT Add LICENSE 2018-03-15 01:43:44 +09:00
README.md Update README 2018-03-15 01:56:24 +09:00

README.md

RouteKit

Type-safe URL routing for Swift.

Usage

struct UserIndex : Route {
    let path = "/users"

    func map(to url: URL, parameters: [String : String], queries: [String : String]) -> UIViewController {
        return UserIndexViewController()
    }
}

struct UserDetail : Route {
    let path = "/users/{id}"

    struct Parameters : Decodable {
        let id: Int
    }

    func map(to url: URL, parameters: Parameters, queries: [String : String]) -> UIViewController {
        return UserDetailViewController(id: parameters.id)
    }
}

// Use `Navigator` (for iOS)
Navigator.append(route: UserIndex())
Navigator.append(route: UserDetail())

Navigator.push(url: URL(string: "/users/42")!, animated: true)
Navigator.present(url: URL(string: "/users/42")!, animated: true)

// Use `Router`
let router = Router<UIViewController>()
router.append(route: UserIndex())
router.append(route: UserDetail())

router.push(url: URL(string: "/users/42")!) // Return `UserDetailViewController`

License

Licensed under the MIT license.