diff options
Diffstat (limited to 'lib/JSON/Dumper/Compact.pm')
-rw-r--r-- | lib/JSON/Dumper/Compact.pm | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/JSON/Dumper/Compact.pm b/lib/JSON/Dumper/Compact.pm index ff82f72..2b4c5a7 100644 --- a/lib/JSON/Dumper/Compact.pm +++ b/lib/JSON/Dumper/Compact.pm @@ -4,7 +4,7 @@ use JSON::MaybeXS; use Mu::Tiny; use Class::Method::Modifiers; -our $VERSION = '0.005002'; +our $VERSION = '0.006000'; $VERSION =~ tr/_//d; extends 'Data::Dumper::Compact'; @@ -46,6 +46,16 @@ sub _format_blessed { ] ]); } +sub _format_ref { + my ($self, $payload) = @_; + my %subst = ('/' => '~1', '~' => '~0'); + my @path = map { (my $x = $_->[1]) =~ s{[/~]}{$subst{$_}}eg; $x } @$payload; + return $self->format([ hash => [ + [ '$ref' ], + { '$ref' => [ string => join('/', '#', @path) ] }, + ] ]); +} + sub encode { shift->dump(@_) } sub decode { |