From 641ee92aa1697472e1bdda979d9246ded64524a8 Mon Sep 17 00:00:00 2001 From: coffeepots Date: Tue, 24 Apr 2018 16:28:01 +0100 Subject: [PATCH] Updated multiRemove macro --- eth-rpc/server/servertypes.nim | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/eth-rpc/server/servertypes.nim b/eth-rpc/server/servertypes.nim index edba4a6..8829701 100644 --- a/eth-rpc/server/servertypes.nim +++ b/eth-rpc/server/servertypes.nim @@ -66,16 +66,20 @@ proc sharedRpcServer*(): RpcServer = result = sharedServer macro multiRemove(s: string, values: varargs[string]): untyped = - ## wrapper for multiReplace - result = newStmtList() - var call = newNimNode(nnkCall) - call.add(ident"multiReplace") - call.add(s) + ## Wrapper for multiReplace + var + body = newStmtList() + multiReplaceCall = newCall(ident"multiReplace", s) + + body.add(newVarStmt(ident"eStr", newStrLitNode(""))) + let emptyStr = ident"eStr" for item in values: + # generate tuples of values with the empty string `eStr` let sItem = $item - # generate tuples with empty strings - call.add(newPar(newStrLitNode(sItem), newStrLitNode(""))) - result.add call + multiReplaceCall.add(newPar(newStrLitNode(sItem), emptyStr)) + + body.add multiReplaceCall + result = newBlockStmt(body) macro on*(server: var RpcServer, path: string, body: untyped): untyped = var paramTemplates = newStmtList()