From 3d88fc3ba5e56988dd5886eb7849d9bb43b58ea6 Mon Sep 17 00:00:00 2001 From: Darin McBride Date: Sat, 7 Nov 2015 14:21:14 -0700 Subject: [PATCH] Clean up dumping from commandline for exceptions and such. --- lib/LR.pm | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/lib/LR.pm b/lib/LR.pm index 3a48dbf6..bcaddba5 100644 --- a/lib/LR.pm +++ b/lib/LR.pm @@ -31,7 +31,33 @@ sub _clean(@) [ map { if (blessed $_) { - eval { $_->id } || ref $_ + if (ref =~ /Exception/) + { + $_ + } + else + { + eval { $_->id } || ref $_ + } + } elsif (ref $_ eq 'HASH') { + my $x = $_; + { + map { + my $o = $x->{$_}; + if (eval { $o->can('id') }) + { + $_ => $o->id; + } + elsif ((ref $o) =~ /^Lacuna/) + { + $_ => ref $o; + } + else + { + $_ => $o; + } + } keys %$x + } } else { $_ } @@ -74,7 +100,7 @@ sub call Data::Dump::dd(_clean @_); my $rc = eval { $type->new->$method(_session @_) } || $@; print "RESULT: "; - Data::Dump::dd($rc); + Data::Dump::dd(_clean $rc); } sub jcall -- 2.51.2