🍵 Matcha is Framework that can get parameters from URL Path.
Swift Ruby Objective-C
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Matcha.xcodeproj Add project Jul 22, 2018
Matcha Add project Jul 22, 2018
MatchaTests Add project Jul 22, 2018
Support Files Add project Jul 22, 2018
.gitignore Initial commit Jul 22, 2018
.travis.yml Add travis yml Jul 22, 2018
LICENSE Update LICENSE Jul 23, 2018
MatchaTea.podspec Add podspec Jul 23, 2018
README.md Update README.md Jul 23, 2018
codecov.yml Add codecov yml Jul 22, 2018

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.