From b9b30a4bd139b0b8d1e154551a5e539c07abdbb1 Mon Sep 17 00:00:00 2001 From: Jeremy Wall Date: Tue, 15 Jan 2019 19:31:55 -0600 Subject: [PATCH] FEATURE: Add a module for stripping NULL fields from a tuple. --- std/tests/tuples_test.ucg | 5 +++++ std/tuples.ucg | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/std/tests/tuples_test.ucg b/std/tests/tuples_test.ucg index 7ec9f03..b94cb52 100644 --- a/std/tests/tuples_test.ucg +++ b/std/tests/tuples_test.ucg @@ -14,4 +14,9 @@ assert t.equal{ assert t.equal{ left = tpl.iter{tpl={foo=1, bar=2}}.result, right = [["foo", 1], ["bar", 2]], +}; + +assert t.equal{ + left = tpl.strip_nulls{tpl={foo="bar", bar=NULL}}.result, + right = {foo="bar"}, }; \ No newline at end of file diff --git a/std/tuples.ucg b/std/tuples.ucg index a2d9b1f..54157a0 100644 --- a/std/tuples.ucg +++ b/std/tuples.ucg @@ -29,4 +29,14 @@ let iter = module{ }; let result = reduce reducer.result [], (mod.tpl); +}; + +let strip_nulls = module{ + tpl = NULL, +} => { + let filterer = macro(name, value) => { + result = value != NULL, + }; + + let result = filter filterer.result (mod.tpl); }; \ No newline at end of file