MatchaTea

🍵 Matcha is Framework that can get parameters from URL Path.

Showing:

Popularity

Downloads/wk

0

GitHub Stars

56

Maintenance

Last Commit

1yr ago

Contributors

2

Package

Dependencies

0

License

MIT

Categories

Readme

🍵 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 5.0

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.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100