From be18df6dcdce1b4a733dff11dc04cd5f913cb002 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Tue, 14 Jan 2020 18:23:50 +0100 Subject: [PATCH] observable: allow dumping multiple values without a formatter Currently, Observable:dump does not work well with multiple values and no formatter. We can skip tostring and just unpack the values into print in order to improve the behavior. --- rx.lua | 8 ++++++-- src/observable.lua | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/rx.lua b/rx.lua index bef15ac..8df9147 100644 --- a/rx.lua +++ b/rx.lua @@ -283,9 +283,13 @@ end -- @arg {function=tostring} formatter - A function that formats one or more values to be printed. function Observable:dump(name, formatter) name = name and (name .. ' ') or '' - formatter = formatter or tostring - local onNext = function(...) print(name .. 'onNext: ' .. formatter(...)) end + local onNext + if formatter then + onNext = function(...) print(name .. 'onNext: ' .. formatter(...)) end + else + onNext = function(...) print(name .. 'onNext: ', ...) end + end local onError = function(e) print(name .. 'onError: ' .. e) end local onCompleted = function() print(name .. 'onCompleted') end diff --git a/src/observable.lua b/src/observable.lua index ec792c5..9b55707 100644 --- a/src/observable.lua +++ b/src/observable.lua @@ -188,9 +188,13 @@ end -- @arg {function=tostring} formatter - A function that formats one or more values to be printed. function Observable:dump(name, formatter) name = name and (name .. ' ') or '' - formatter = formatter or tostring - local onNext = function(...) print(name .. 'onNext: ' .. formatter(...)) end + local onNext + if formatter then + onNext = function(...) print(name .. 'onNext: ' .. formatter(...)) end + else + onNext = function(...) print(name .. 'onNext: ', ...) end + end local onError = function(e) print(name .. 'onError: ' .. e) end local onCompleted = function() print(name .. 'onCompleted') end