🍵 Matcha is Framework that can get parameters from URL Path.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Matcha.xcodeproj
Matcha
MatchaTests
Support Files
.gitignore
.travis.yml
LICENSE
MatchaTea.podspec
README.md
codecov.yml

README.md

🍵 Matcha

Carthage compatible Build Status codecov Version License Platform

What's 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 : If you want to install from CocoaPods, must add MatchaTea to Podfile because there is a Matcha different from this Matcha.

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
    }
}

LICENSE

Under the MIT license. See LICENSE file for details.