Framework that can get parameters from URL Path
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
}
}