Skip to content
/ Matcha Public
forked from cats-oss/Matcha

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

License

Notifications You must be signed in to change notification settings

ca-love/Matcha

 
 

Repository files navigation

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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 87.3%
  • Ruby 7.7%
  • Objective-C 5.0%