Matcha
Matcha is Framework that can get parameters from URL Path. It does not have Router, so simple.
It can use like following:
let url = URL(string: "https://example.com/user/1/settings")!
let matcha = Matcha(url: url, pattern: "/user/{userID}/settings")
matcha?.value(of: "userID") // "1"
matcha?.value(at: 0) // "1"
Requirements
- Swift 4.1
How to Install
CocoaPods
Add the following to your Podfile
:
pod "MatchaTea"
:warning: WARNING : If you want to install from
CocoaPods
, must addMatchaTea
to Podfile because there is aMatcha
different from thisMatcha
.
Carthage
Add the following to your Cartfile
:
github "cats-oss/Matcha"
How to use Matcha
If you have already known information of URL Path, create the instance with the pattern.
let url = URL(string: "https://example.com/user/1/settings")!
let matcha = Matcha(url: url, pattern: "/user/{userID}/settings")
Then, can get matched values.
matcha?.value(of: "userID") // "1"
matcha?.value(at: 0) // "1"
matcha?["userID"] // "1"
matcha?[0] // "1"
If you do not know any information of URL Path, match with the pattern after create the instance using the URL.
if let url = url {
let matcha = Matcha(url: url)
if matcha.matched("/") != nil {
// to root
} else if matcha.matched("/notification") != nil {
// to notification
} else if let id = matcha.matched("/user/{userID}")?["userID"] {
// to user with id
}
}