renamed patternmatch.Pattern.Match() to patternmatch.Pattern.Find()
parent
3cd972d790
commit
aa21183e6a
|
@ -28,7 +28,7 @@ if nil != err {
|
||||||
var userId string
|
var userId string
|
||||||
var vehicleId string
|
var vehicleId string
|
||||||
|
|
||||||
didMatch, err := pattern.Match("/users/bMM_kJFMEV/vehicles/o_bcU.RZGK", &userId, &vehicleId)
|
didMatch, err := pattern.Find("/users/bMM_kJFMEV/vehicles/o_bcU.RZGK", &userId, &vehicleId)
|
||||||
|
|
||||||
if nil != err {
|
if nil != err {
|
||||||
//@TODO
|
//@TODO
|
||||||
|
|
|
@ -6,7 +6,7 @@ package pathmatch
|
||||||
//
|
//
|
||||||
// For example, maybe the uncompiled pattern passed to the pathmatch.Compile() func had
|
// For example, maybe the uncompiled pattern passed to the pathmatch.Compile() func had
|
||||||
// a syntax error in it. Or, also for example, maybe the type of parameter passed to
|
// a syntax error in it. Or, also for example, maybe the type of parameter passed to
|
||||||
// pathmatch.Pattern.Match() was of the wrong type. Etc.
|
// pathmatch.Pattern.Find() was of the wrong type. Etc.
|
||||||
//
|
//
|
||||||
// Example usage of BadRequest with pathmatch.Compile():
|
// Example usage of BadRequest with pathmatch.Compile():
|
||||||
//
|
//
|
||||||
|
@ -32,10 +32,10 @@ package pathmatch
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// Somewhat continuing this example (although without the error in the uncompiled pattern), we might then
|
// Somewhat continuing this example (although without the error in the uncompiled pattern), we might then
|
||||||
// use the pathmatch.Pattern.Match() method, which could also generate an error that fits the BadRequest
|
// use the pathmatch.Pattern.Find() method, which could also generate an error that fits the BadRequest
|
||||||
// interface.
|
// interface.
|
||||||
//
|
//
|
||||||
// Example usage of BadRequest with pathmatch.Pattern.Match():
|
// Example usage of BadRequest with pathmatch.Pattern.Find():
|
||||||
//
|
//
|
||||||
// pattern, err := pathmatch.Compile("/users/{user_id}/cards/{fruit_id}")
|
// pattern, err := pathmatch.Compile("/users/{user_id}/cards/{fruit_id}")
|
||||||
// if nil != err {
|
// if nil != err {
|
||||||
|
@ -61,18 +61,18 @@ package pathmatch
|
||||||
// var userId string
|
// var userId string
|
||||||
// var cardId string
|
// var cardId string
|
||||||
//
|
//
|
||||||
// didMatch, err := pattern.Match("/users/8sN.oP/cards/X3j_T4", userId, cardId)
|
// didMatch, err := pattern.Find("/users/8sN.oP/cards/X3j_T4", userId, cardId)
|
||||||
// if nil != err {
|
// if nil != err {
|
||||||
// switch err.(type) { // ← Note that we are using a Go type-switch here.
|
// switch err.(type) { // ← Note that we are using a Go type-switch here.
|
||||||
//
|
//
|
||||||
// case pathmatch.BadRequest: // ← Here we are detecting if the error returned is a pathmatch.BadRequest.
|
// case pathmatch.BadRequest: // ← Here we are detecting if the error returned is a pathmatch.BadRequest.
|
||||||
//
|
//
|
||||||
// fmt.Printf("Something you did when you called pattern.Match() caused an error. The error message was....\n%s\n", err.Error())
|
// fmt.Printf("Something you did when you called pattern.Find() caused an error. The error message was....\n%s\n", err.Error())
|
||||||
// return
|
// return
|
||||||
//
|
//
|
||||||
// case pathmatch.InternalError:
|
// case pathmatch.InternalError:
|
||||||
//
|
//
|
||||||
// fmt.Printf("It's not your fault; it's our fault. Something bad happened internally when pattern.Match() was running. The error message was....\n%s\n", err.Error())
|
// fmt.Printf("It's not your fault; it's our fault. Something bad happened internally when pattern.Find() was running. The error message was....\n%s\n", err.Error())
|
||||||
// return
|
// return
|
||||||
//
|
//
|
||||||
// default:
|
// default:
|
||||||
|
|
4
doc.go
4
doc.go
|
@ -3,7 +3,7 @@ Package pathmatch provides pattern matching for paths.
|
||||||
|
|
||||||
For example, a path could be a file system path, or a path could be a path from a URL (such as an HTTP or HTTPS based URL).
|
For example, a path could be a file system path, or a path could be a path from a URL (such as an HTTP or HTTPS based URL).
|
||||||
|
|
||||||
The matches can be loaded into variables (when using pathmatch.Match());
|
The matches can be loaded into variables (when using pathmatch.Find());
|
||||||
or can be loaded into a struct (when using pathmatch.Pattern.MatchAndLoad()).
|
or can be loaded into a struct (when using pathmatch.Pattern.MatchAndLoad()).
|
||||||
|
|
||||||
Example Usage:
|
Example Usage:
|
||||||
|
@ -16,7 +16,7 @@ Example Usage:
|
||||||
var userId string
|
var userId string
|
||||||
var vehicleId string
|
var vehicleId string
|
||||||
|
|
||||||
didMatch, err := pattern.Match("/users/bMM_kJFMEV/vehicles/o_bcU.RZGK", &userId, &vehicleId)
|
didMatch, err := pattern.Find("/users/bMM_kJFMEV/vehicles/o_bcU.RZGK", &userId, &vehicleId)
|
||||||
|
|
||||||
if nil != err {
|
if nil != err {
|
||||||
//@TODO
|
//@TODO
|
||||||
|
|
|
@ -21,7 +21,7 @@ import (
|
||||||
//
|
//
|
||||||
// var userId string
|
// var userId string
|
||||||
//
|
//
|
||||||
// didMatch, err := pattern.Match("/users/123", userId)
|
// didMatch, err := pattern.Find("/users/123", userId)
|
||||||
// if nil != err {
|
// if nil != err {
|
||||||
// fmt.Printf("ERROR Matching: %v\n", err)
|
// fmt.Printf("ERROR Matching: %v\n", err)
|
||||||
// return
|
// return
|
||||||
|
@ -34,7 +34,7 @@ import (
|
||||||
// }
|
// }
|
||||||
type Pattern interface {
|
type Pattern interface {
|
||||||
Glob() string
|
Glob() string
|
||||||
Match(string, ...interface{}) (bool, error)
|
Find(string, ...interface{}) (bool, error)
|
||||||
MatchAndLoad(string, interface{}) (bool, error)
|
MatchAndLoad(string, interface{}) (bool, error)
|
||||||
MatchNames() []string
|
MatchNames() []string
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,22 +1,18 @@
|
||||||
package pathmatch
|
package pathmatch
|
||||||
|
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
doesNotMatter = false
|
doesNotMatter = false
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
var (
|
var (
|
||||||
errThisShouldNeverHappen = newInternalError("This should never happen.")
|
errThisShouldNeverHappen = newInternalError("This should never happen.")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func (pattern *internalPattern) Find(path string, args ...interface{}) (bool, error) {
|
||||||
func (pattern *internalPattern) Match(path string, args ...interface{}) (bool, error) {
|
|
||||||
|
|
||||||
s := path
|
s := path
|
||||||
|
|
||||||
|
@ -51,6 +47,5 @@ func (pattern *internalPattern) Match(path string, args ...interface{}) (bool, e
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ func (pattern *internalPattern) MatchAndLoad(path string, strct interface{}) (bo
|
||||||
args = append(args, new(string))
|
args = append(args, new(string))
|
||||||
}
|
}
|
||||||
|
|
||||||
didMatch, err := pattern.Match(path, args...)
|
didMatch, err := pattern.Find(path, args...)
|
||||||
if nil != err {
|
if nil != err {
|
||||||
return doesNotMatter, err
|
return doesNotMatter, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
func TestMatch(t *testing.T) {
|
func TestFind(t *testing.T) {
|
||||||
|
|
||||||
tests := []struct{
|
tests := []struct{
|
||||||
Pattern Pattern
|
Pattern Pattern
|
||||||
|
@ -105,7 +105,7 @@ func TestMatch(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if didMatch, err := test.Pattern.Match(test.Path, test.Args...); nil != err {
|
if didMatch, err := test.Pattern.Find(test.Path, test.Args...); nil != err {
|
||||||
t.Errorf("For test #%d, did not expected an error, but actually got one: %v", testNumber, err)
|
t.Errorf("For test #%d, did not expected an error, but actually got one: %v", testNumber, err)
|
||||||
continue
|
continue
|
||||||
} else if !didMatch {
|
} else if !didMatch {
|
||||||
|
|
Loading…
Reference in New Issue