mirror of
https://github.com/kataras/iris.git
synced 2026-01-08 12:31:58 +00:00
fix macro registration issue and match by kind for MVC and hero instead of its kind, so custom types like structs can be used without any issues. Add an example on how to register a custom macro it is just few lines and all in one place in this version.
Former-commit-id: 93c439560fcfad820f9f3e39c1d9557c83cef0ee
This commit is contained in:
4
macro/AUTHORS
Normal file
4
macro/AUTHORS
Normal file
@@ -0,0 +1,4 @@
|
||||
# This is the official list of Iris Macro and Route path interpreter authors for copyright
|
||||
# purposes.
|
||||
|
||||
Gerasimos Maropoulos <kataras2006@hotmail.com>
|
||||
27
macro/LICENSE
Normal file
27
macro/LICENSE
Normal file
@@ -0,0 +1,27 @@
|
||||
Copyright (c) 2017-2018 The Iris Macro and Route path interpreter. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following disclaimer
|
||||
in the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* Neither the name of Iris nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
@@ -10,10 +10,10 @@ import (
|
||||
var (
|
||||
// String type
|
||||
// Allows anything (single path segment, as everything except the `Path`).
|
||||
// Its functions can be used by the rest of the macros and param types whenever not available function by name is used.
|
||||
// Because of its "master" boolean value to true (third parameter).
|
||||
String = NewMacro("string", "", true, false, nil).
|
||||
RegisterFunc("regexp", func(expr string) func(string) bool {
|
||||
return MustRegexp(expr)
|
||||
}).
|
||||
RegisterFunc("regexp", MustRegexp).
|
||||
// checks if param value starts with the 'prefix' arg
|
||||
RegisterFunc("prefix", func(prefix string) func(string) bool {
|
||||
return func(paramValue string) bool {
|
||||
@@ -431,21 +431,22 @@ func (ms *Macros) Register(indent, alias string, isMaster, isTrailing bool, eval
|
||||
}
|
||||
|
||||
func (ms *Macros) register(macro *Macro) bool {
|
||||
if macro.Indent() == "" || macro.Evaluator == nil {
|
||||
if macro.Indent() == "" {
|
||||
return false
|
||||
}
|
||||
|
||||
cp := *ms
|
||||
|
||||
for _, m := range cp {
|
||||
|
||||
// can't add more than one with the same ast characteristics.
|
||||
if macro.Indent() == m.Indent() {
|
||||
return false
|
||||
}
|
||||
|
||||
if macro.Alias() == m.Alias() || macro.Alias() == m.Indent() {
|
||||
return false
|
||||
if alias := macro.Alias(); alias != "" {
|
||||
if alias == m.Alias() || alias == m.Indent() {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
if macro.Master() && m.Master() {
|
||||
|
||||
Reference in New Issue
Block a user