You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ph...@apache.org on 2018/01/23 21:47:24 UTC
nifi-minifi-cpp git commit: MINIFICPP-380 Added missing toLower EL
function
Repository: nifi-minifi-cpp
Updated Branches:
refs/heads/master 465ae42d8 -> 19881b63b
MINIFICPP-380 Added missing toLower EL function
This closes #250.
Signed-off-by: Marc Parisi <ph...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/commit/19881b63
Tree: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/tree/19881b63
Diff: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/diff/19881b63
Branch: refs/heads/master
Commit: 19881b63b570331dfb93cdec47db263df0dc62c3
Parents: 465ae42
Author: Andrew I. Christianson <an...@andyic.org>
Authored: Tue Jan 23 15:12:38 2018 -0500
Committer: Marc Parisi <ph...@apache.org>
Committed: Tue Jan 23 16:47:08 2018 -0500
----------------------------------------------------------------------
extensions/expression-language/Expression.cpp | 8 ++++++++
.../expression-language-tests/ExpressionLanguageTests.cpp | 9 +++++++++
2 files changed, 17 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/19881b63/extensions/expression-language/Expression.cpp
----------------------------------------------------------------------
diff --git a/extensions/expression-language/Expression.cpp b/extensions/expression-language/Expression.cpp
index 2fdc541..de737ed 100644
--- a/extensions/expression-language/Expression.cpp
+++ b/extensions/expression-language/Expression.cpp
@@ -67,6 +67,12 @@ std::string expr_toUpper(const std::vector<std::string> &args) {
return result;
}
+std::string expr_toLower(const std::vector<std::string> &args) {
+ std::string result = args[0];
+ std::transform(result.begin(), result.end(), result.begin(), ::tolower);
+ return result;
+}
+
std::string expr_substring(const std::vector<std::string> &args) {
if (args.size() < 3) {
return args[0].substr(std::stoul(args[1]));
@@ -306,6 +312,8 @@ Expression make_dynamic_function(const std::string &function_name,
return make_dynamic_function_incomplete<expr_hostname>(function_name, args, 0);
} else if (function_name == "toUpper") {
return make_dynamic_function_incomplete<expr_toUpper>(function_name, args, 1);
+ } else if (function_name == "toLower") {
+ return make_dynamic_function_incomplete<expr_toLower>(function_name, args, 1);
} else if (function_name == "substring") {
return make_dynamic_function_incomplete<expr_substring>(function_name, args, 2);
} else if (function_name == "substringBefore") {
http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/19881b63/libminifi/test/expression-language-tests/ExpressionLanguageTests.cpp
----------------------------------------------------------------------
diff --git a/libminifi/test/expression-language-tests/ExpressionLanguageTests.cpp b/libminifi/test/expression-language-tests/ExpressionLanguageTests.cpp
index 27d3304..d6ab607 100644
--- a/libminifi/test/expression-language-tests/ExpressionLanguageTests.cpp
+++ b/libminifi/test/expression-language-tests/ExpressionLanguageTests.cpp
@@ -150,6 +150,15 @@ TEST_CASE("ToUpper function w/o whitespace", "[expressionLanguageTestToUpperFunc
REQUIRE("text_before__FLOW_A_ATTR_VALUE_A__text_after" == expr({flow_file_a}));
}
+TEST_CASE("ToLower function", "[expressionLanguageTestToLowerFunction]") { // NOLINT
+ auto expr = expression::compile(R"(text_before${
+ attr_a : toLower()
+ }text_after)");
+ auto flow_file_a = std::make_shared<MockFlowFile>();
+ flow_file_a->addAttribute("attr_a", "__FLOW_A_ATTR_VALUE_A__");
+ REQUIRE("text_before__flow_a_attr_value_a__text_after" == expr({flow_file_a}));
+}
+
TEST_CASE("GetFile PutFile dynamic attribute", "[expressionLanguageTestGetFilePutFileDynamicAttribute]") { // NOLINT
TestController testController;