mirror of
https://github.com/pantor/inja.git
synced 2026-08-28 18:07:33 +00:00
fix mac os x callback without parent bug
This commit is contained in:
+3
-3
@@ -604,14 +604,14 @@ public:
|
|||||||
*/
|
*/
|
||||||
static Regex function_regex(std::string name, int number_arguments) {
|
static Regex function_regex(std::string name, int number_arguments) {
|
||||||
std::string pattern = name;
|
std::string pattern = name;
|
||||||
pattern.append("\\(");
|
pattern.append("(?:\\(");
|
||||||
for (int i = 0; i < number_arguments; i++) {
|
for (int i = 0; i < number_arguments; i++) {
|
||||||
if (i != 0) pattern.append(",");
|
if (i != 0) pattern.append(",");
|
||||||
pattern.append("(.*)");
|
pattern.append("(.*)");
|
||||||
}
|
}
|
||||||
pattern.append("\\)");
|
pattern.append("\\))");
|
||||||
if (number_arguments == 0) { // Without arguments, allow to use the callback without parenthesis
|
if (number_arguments == 0) { // Without arguments, allow to use the callback without parenthesis
|
||||||
pattern = "(?:" + name + "|" + pattern + ")";
|
pattern.append("?");
|
||||||
}
|
}
|
||||||
return Regex{"\\s*" + pattern + "\\s*"};
|
return Regex{"\\s*" + pattern + "\\s*"};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -245,7 +245,7 @@ TEST_CASE("callbacks") {
|
|||||||
CHECK( env.render("{{ double(age) }}", data) == "56" );
|
CHECK( env.render("{{ double(age) }}", data) == "56" );
|
||||||
CHECK( env.render("{{ half(age) }}", data) == "14" );
|
CHECK( env.render("{{ half(age) }}", data) == "14" );
|
||||||
CHECK( env.render("{{ double-greetings }}", data) == "Hello Hello!" );
|
CHECK( env.render("{{ double-greetings }}", data) == "Hello Hello!" );
|
||||||
// CHECK( env.render("{{ double-greetings() }}", data) == "Hello Hello!" );
|
CHECK( env.render("{{ double-greetings() }}", data) == "Hello Hello!" );
|
||||||
CHECK( env.render("{{ multiply(4, 5) }}", data) == "20.0" );
|
CHECK( env.render("{{ multiply(4, 5) }}", data) == "20.0" );
|
||||||
CHECK( env.render("{{ multiply(3, 4, 5) }}", data) == "60.0" );
|
CHECK( env.render("{{ multiply(3, 4, 5) }}", data) == "60.0" );
|
||||||
CHECK( env.render("{{ multiply }}", data) == "1.0" );
|
CHECK( env.render("{{ multiply }}", data) == "1.0" );
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ TEST_CASE("match-functions") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("create-regex-functions") {
|
TEST_CASE("create-regex-functions") {
|
||||||
CHECK( inja::Parser::function_regex("upper", 1).pattern() == "\\s*upper\\((.*)\\)\\s*" );
|
CHECK( inja::Parser::function_regex("upper", 1).pattern() == "\\s*upper(?:\\((.*)\\))\\s*" );
|
||||||
CHECK( inja::Parser::function_regex("upper", 0).pattern() == "\\s*(?:upper|upper\\(\\))\\s*" );
|
CHECK( inja::Parser::function_regex("upper", 0).pattern() == "\\s*upper(?:\\(\\))?\\s*" );
|
||||||
CHECK( inja::Parser::function_regex("lower", 2).pattern() == "\\s*lower\\((.*),(.*)\\)\\s*" );
|
CHECK( inja::Parser::function_regex("lower", 2).pattern() == "\\s*lower(?:\\((.*),(.*)\\))\\s*" );
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user