/usr/share/perl5/Magpie/Transformer/JSON.pm is in libmagpie-perl 1.141660-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | package Magpie::Transformer::JSON;
$Magpie::Transformer::JSON::VERSION = '1.141660';
use Moose;
# ABSTRACT: JSON Ouput Transformer
extends 'Magpie::Transformer';
use Scalar::Util qw(blessed);
use Magpie::Constants;
use JSON;
__PACKAGE__->register_events(qw(transform));
sub load_queue { return qw(transform) }
sub transform {
my $self = shift;
return DECLINED if $self->resource->isa('Magpie::Resource::Abstract');
if ( $self->resource->has_data ) {
my $data = $self->resource->data;
my $json_string = undef;
if ( blessed $data) {
if ($data->does('Data::Stream::Bulk') ) {
my @objects = ();
while ( my $block = $data->next ) {
foreach my $object (@$block) {
my $data
= $object->can('pack') ? $object->pack : {%$object};
push @objects, JSON::encode_json($data);
}
}
$json_string = '[' . ( join ', ', @objects ) . ']';
}
else {
$json_string = JSON->new->utf8->allow_blessed->convert_blessed->encode($data);
}
}
else {
$json_string
= JSON::encode_json($data);
}
$self->response->content_type('application/json');
$self->response->content_length( length($json_string) );
$self->resource->data($json_string);
}
return OK;
}
1;
=pod
=head1 NAME
Magpie::Transformer::JSON - JSON Ouput Transformer
=head1 VERSION
version 1.141660
=head1 AUTHORS
=over 4
=item *
Kip Hampton <kip.hampton@tamarou.com>
=item *
Chris Prather <chris.prather@tamarou.com>
=back
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Tamarou, LLC.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
__END__
|