| JSON-CPAN-Meta documentation | Contained in the JSON-CPAN-Meta distribution. |
Module::Build::JSONMETA - (depreacted) write META.json instead of META.yml
Achtung! This library will soon be obsolete as Module::Build moves to use the official CPAN::Meta::Spec JSON files.
This interface may be changed in the future if someone with more Module::Build expertise steps forward.
----- in Build.PL -----
use Module::Build;
use Module::Build::JSONMETA;
my $class = Module::Build->subclass(
code => Module::Build::JSONMETA->code,
);
my $build = $class->new( ... );
$build->create_build_script;
| JSON-CPAN-Meta documentation | Contained in the JSON-CPAN-Meta distribution. |
use strict; use warnings; package Module::Build::JSONMETA; BEGIN { our $VERSION = '7.001'; }
my $CODE; BEGIN { $CODE = <<'END_CODE'; sub new { my $class = shift; my $self = $class->SUPER::new(@_); $self->metafile('META.json') if $self->metafile eq 'META.yml'; return $self; } sub write_metafile { my ($self) = @_; my $data = {}; $self->prepare_metadata($data); $data->{generated_by} = GENERATED_BY; require JSON; JSON->VERSION(2); my $json = JSON->new->ascii(1)->pretty->encode($data); my $metafile = $self->metafile; open my $fh, '>', $metafile or die "can't open $metafile for writing: $!"; print {$fh} "$json\n" or die "can't print metadata to $metafile: $!"; close $fh or die "error closing $metafile: $!"; $self->{wrote_metadata} = 1; $self->_add_to_manifest('MANIFEST', $metafile); } END_CODE my $generated_by = join ' version ', __PACKAGE__, __PACKAGE__->VERSION; $CODE =~ s/GENERATED_BY/q{$generated_by}/; } sub code { $CODE } 1;