Dancer2-Serializer-JSONMaybeXS/lib/Dancer2/Serializer/JSONMaybeXS.pm
package Dancer2::Serializer::JSONMaybeXS;
use Moo;
use JSON::MaybeXS ();
our $VERSION = '0.003';
with 'Dancer2::Core::Role::Serializer';
has '+content_type' => ( default => sub {'application/json;charset=UTF-8'} );
sub BUILD {
warnings::warnif('deprecated',
'Dancer2::Serializer::JSONMaybeXS is deprecated and should no longer be used');
}
sub serialize {
my ($self, $entity, $options) = @_;
my $config = $self->config;
foreach (keys %$config) {
$options->{$_} = $config->{$_} unless exists $options->{$_};
}
$options->{utf8} = 1 if !defined $options->{utf8};
JSON::MaybeXS->new($options)->encode($entity);
}
sub deserialize {
my ($self, $entity, $options) = @_;
$options->{utf8} = 1 if !defined $options->{utf8};
JSON::MaybeXS->new($options)->decode($entity);
}
1;
=head1 NAME
Dancer2::Serializer::JSONMaybeXS - (DEPRECATED) Serializer for handling JSON data
=head1 SYNOPSIS
use Dancer2;
set serializer => 'JSONMaybeXS';
=head1 DESCRIPTION
This is a DEPRECATED serializer engine for the L<Dancer2> web framework.
L<Dancer2> now uses L<JSON::MaybeXS> natively in the default
L<Dancer2::Serializer::JSON> (as of version C<0.201000>), so this module is no
longer needed.
=head1 BUGS
Report any issues on the public bugtracker.
=head1 AUTHOR
Dan Book <dbook@cpan.org>
=head1 COPYRIGHT AND LICENSE
This software is Copyright (c) 2016 by Dan Book.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)
=head1 SEE ALSO
L<Dancer2::Serializer::JSON>