JSON-Eval
view release on metacpan or search on metacpan
=========
Created: 2019-10-24
Home page: <https://metacpan.org/release/JSON-Eval>
Bug tracker: <http://rt.cpan.org/Dist/Display.html?Queue=JSON-Eval>
Maintainer: Toby Inkster (TOBYINK) <tobyink@cpan.org>
0.002 2019-10-27
[ Packaging ]
- Add dependency on PadWalker.
0.001 2019-10-27 Initial release
}
},
"develop" : {
"recommends" : {
"Dist::Inkt" : "0.001"
}
},
"runtime" : {
"requires" : {
"JSON::MaybeXS" : "0",
"PadWalker" : "0",
"perl" : "5.008006"
}
},
"test" : {
"requires" : {
"Test::Fatal" : "0",
"Test::More" : "0.96"
}
}
},
- inc
- t
- xt
optional_features: {}
provides:
JSON::Eval:
file: lib/JSON/Eval.pm
version: '0.002'
requires:
JSON::MaybeXS: '0'
PadWalker: '0'
perl: '5.008006'
resources:
Identifier: http://purl.org/NET/cpan-uri/dist/JSON-Eval/project
bugtracker: http://rt.cpan.org/Dist/Display.html?Queue=JSON-Eval
homepage: https://metacpan.org/release/JSON-Eval
license: http://dev.perl.org/licenses/
repository: git://github.com/tobyink/p5-json-eval.git
version: '0.002'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
x_static_install: 1
Makefile.PL view on Meta::CPAN
"meta-spec" => {
url => "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
version => 2,
},
"name" => "JSON-Eval",
"no_index" => { directory => ["eg", "examples", "inc", "t", "xt"] },
"prereqs" => {
configure => { requires => { "ExtUtils::MakeMaker" => 6.17 } },
develop => { recommends => { "Dist::Inkt" => 0.001 } },
runtime => {
requires => { "JSON::MaybeXS" => 0, "PadWalker" => 0, "perl" => 5.008006 },
},
test => { requires => { "Test::Fatal" => 0, "Test::More" => 0.96 } },
},
"provides" => {
"JSON::Eval" => { file => "lib/JSON/Eval.pm", version => 0.002 },
},
"release_status" => "stable",
"resources" => {
bugtracker => { web => "http://rt.cpan.org/Dist/Display.html?Queue=JSON-Eval" },
homepage => "https://metacpan.org/release/JSON-Eval",
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<http://dev.perl.org/licenses/>
dc:title "the same terms as the perl 5 programming language system itself".
<http://purl.org/NET/cpan-uri/dist/JSON-Eval/project>
a doap:Project;
dc:contributor <http://purl.org/NET/cpan-uri/person/tobyink>;
doap-deps:develop-recommendation [ doap-deps:on "Dist::Inkt 0.001"^^doap-deps:CpanId ];
doap-deps:runtime-requirement [ doap-deps:on "perl 5.008006"^^doap-deps:CpanId ], [ doap-deps:on "JSON::MaybeXS"^^doap-deps:CpanId ], [ doap-deps:on "PadWalker"^^doap-deps:CpanId ];
doap-deps:test-requirement [ doap-deps:on "Test::Fatal"^^doap-deps:CpanId ], [ doap-deps:on "Test::More 0.96"^^doap-deps:CpanId ];
doap:bug-database <http://rt.cpan.org/Dist/Display.html?Queue=JSON-Eval>;
doap:created "2019-10-24"^^xsd:date;
doap:developer <http://purl.org/NET/cpan-uri/person/tobyink>;
doap:download-page <https://metacpan.org/release/JSON-Eval>;
doap:homepage <https://metacpan.org/release/JSON-Eval>;
doap:license <http://dev.perl.org/licenses/>;
doap:maintainer <http://purl.org/NET/cpan-uri/person/tobyink>;
doap:name "JSON-Eval";
doap:programming-language "Perl";
doap:file-release <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-Eval-0.001.tar.gz>;
doap:revision "0.001"^^xsd:string.
<http://purl.org/NET/cpan-uri/dist/JSON-Eval/v_0-002>
a doap:Version;
dc:identifier "JSON-Eval-0.002"^^xsd:string;
dc:issued "2019-10-27"^^xsd:date;
doap-changeset:changeset [
doap-changeset:item [
a doap-changeset:Packaging;
rdfs:label "Add dependency on PadWalker.";
];
];
doap-changeset:released-by <http://purl.org/NET/cpan-uri/person/tobyink>;
doap:file-release <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/JSON-Eval-0.002.tar.gz>;
doap:revision "0.002"^^xsd:string.
<http://purl.org/NET/cpan-uri/person/tobyink>
a foaf:Person;
foaf:mbox <mailto:tobyink@cpan.org>;
foaf:name "Toby Inkster";
lib/JSON/Eval.pm view on Meta::CPAN
local $_;
return { map { $_ => ref($o->{$_})?$self->eval_object($o->{$_}):$o->{$_} } keys %$o };
}
$o;
}
sub deparse_object {
my $self = shift;
my ($o) = @_;
if (ref $o eq 'CODE') {
require PadWalker;
my $lexicals = PadWalker::closed_over($o);
if (keys %$lexicals) {
require Carp;
Carp::croak("Cannot serialize coderef that closes over lexical variables to JSON: ".join ",", sort keys %$lexicals);
}
require B::Deparse;
my $dp = 'B::Deparse'->new;
$dp->ambient_pragmas(strict => 'all', warnings => 'all');
return { '$eval' => 'sub ' . $dp->coderef2text($o) };
}
if (ref $o eq 'ARRAY') {
( run in 0.538 second using v1.01-cache-2.11-cpan-05444aca049 )