Data::Dump
for perl6
that's right folks, here's a quicky for your data dump needs. if you have Terminal::ANSIColor installed then the output will be so colorful your eyes might bleed.
feel free to submit bugs or make suggestions, if you submit a bug please provide a concise example that replicates the problem and i'll add some tests and make this thing better.
options
all of these options can be overridden in the DATA_DUMP
environment variable in the format: indent=4,color=false
indent
default: 2
<...>
say Dump({ some => object }, :indent(4));
<...>
max-recursion
default: 50
<...>
say Dump({ some => object }, :max-recursion(3));
<...>
color
default: True
This will override the default decision to use color on the output if Terminal::ANSIColor
is installed. Passing a value of False
will ensure that the output is vanilla.
<...>
say Dump({ some => object }, :color(False));
<...>
gist
default: False
This will override the default object determination and output and use the output of .gist
<...>
say Dump({ some => object}, :gist);
<...>
no-postfix
default: False
This will shorten Str|Int|Rat|Numeric
output from 5.Int|"H".Str
to simply 5|"H"
skip-methods
default: False
This will skip the methods if you dump custom classes.
<...>
say Dump($object, :skip-methods(True));
<...>
overrides
default: {}
This will allow you to override how DD dumps certain types of objects.
Dump($object, overrides => {
Int => sub ($int) { return $int * 2; },
Str => sub ($str) { return "'$str'"; },
# etc.
});
usage
use Data::Dump;
say Dump(%(
key1 => 'value1',
key256 => 1,
));
output:
{
key1 => "value1".Str,
key256 => 1.Int,
}
note: if you have Terminal::ANSIColor installed then it's going to be amazing. so, prepare yourself.
oh you want to Dump
your custom class?
here you go, dude
use Data::Dump;
class E {
has $.public;
has Int $!private = 5;
method r(Str $a) { };
method s($b, :$named? = 5) { };
method e returns Int { say $!private; };
};
say Dump(E.new);
output:
E :: (
$!private => 5.Int,
$!public => (Any),
method e () returns Int {...},
method public () returns Mu {...},
method r (Str $a) returns Mu {...},
method s (Any $b, Any :named($named) = 5) returns Mu {...},
)