JSON-Eval

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

=========

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

META.json  view on Meta::CPAN

         }
      },
      "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"
         }
      }
   },

META.yml  view on Meta::CPAN

    - 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",

doap.ttl  view on Meta::CPAN

@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.ttl  view on Meta::CPAN

	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 )