App-Music-ChordPro

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

   "prereqs" : {
      "build" : {
         "requires" : {
            "Data::Printer" : "1.001001",
            "File::Copy" : "2.32",
            "File::HomeDir" : "1.004",
            "File::LoadLines" : "1.047",
            "HarfBuzz::Shaper" : "0.026",
            "IPC::Run3" : "0.049",
            "Image::Info" : "1.41",
            "JSON::XS" : "4.03",
            "JavaScript::QuickJS" : "0.18",
            "LWP::Protocol::https" : "6.14",
            "List::Util" : "1.46",
            "Mozilla::CA" : "20230801",
            "Object::Pad" : "0.818",
            "PDF::API2" : "2.045",
            "Pod::Usage" : "2.03",
            "Ref::Util" : "0.204",
            "Scalar::Util" : "1.63",
            "Storable" : "3.08",

META.json  view on Meta::CPAN

      },
      "runtime" : {
         "requires" : {
            "Data::Printer" : "1.001001",
            "File::Copy" : "2.32",
            "File::HomeDir" : "1.004",
            "File::LoadLines" : "1.047",
            "HarfBuzz::Shaper" : "0.026",
            "IPC::Run3" : "0.049",
            "Image::Info" : "1.41",
            "JSON::XS" : "4.03",
            "JavaScript::QuickJS" : "0.18",
            "LWP::Protocol::https" : "6.14",
            "List::Util" : "1.46",
            "Mozilla::CA" : "20230801",
            "Object::Pad" : "0.818",
            "PDF::API2" : "2.045",
            "Pod::Usage" : "2.03",
            "Ref::Util" : "0.204",
            "Scalar::Util" : "1.63",
            "Storable" : "3.08",

META.json  view on Meta::CPAN

      },
      "test" : {
         "requires" : {
            "Data::Printer" : "1.001001",
            "File::Copy" : "2.32",
            "File::HomeDir" : "1.004",
            "File::LoadLines" : "1.047",
            "HarfBuzz::Shaper" : "0.026",
            "IPC::Run3" : "0.049",
            "Image::Info" : "1.41",
            "JSON::XS" : "4.03",
            "JavaScript::QuickJS" : "0.18",
            "LWP::Protocol::https" : "6.14",
            "List::Util" : "1.46",
            "Mozilla::CA" : "20230801",
            "Object::Pad" : "0.818",
            "PDF::API2" : "2.045",
            "Pod::Usage" : "2.03",
            "Ref::Util" : "0.204",
            "Scalar::Util" : "1.63",
            "Storable" : "3.08",

META.yml  view on Meta::CPAN

author:
  - 'Johan Vromans <jvromans@squirrel.nl>'
build_requires:
  Data::Printer: '1.001001'
  File::Copy: '2.32'
  File::HomeDir: '1.004'
  File::LoadLines: '1.047'
  HarfBuzz::Shaper: '0.026'
  IPC::Run3: '0.049'
  Image::Info: '1.41'
  JSON::XS: '4.03'
  JavaScript::QuickJS: '0.18'
  LWP::Protocol::https: '6.14'
  List::Util: '1.46'
  Mozilla::CA: '20230801'
  Object::Pad: '0.818'
  PDF::API2: '2.045'
  Pod::Usage: '2.03'
  Ref::Util: '0.204'
  Scalar::Util: '1.63'
  Storable: '3.08'

META.yml  view on Meta::CPAN

    file: script/chordpro
    version: v6.101.0
requires:
  Data::Printer: '1.001001'
  File::Copy: '2.32'
  File::HomeDir: '1.004'
  File::LoadLines: '1.047'
  HarfBuzz::Shaper: '0.026'
  IPC::Run3: '0.049'
  Image::Info: '1.41'
  JSON::XS: '4.03'
  JavaScript::QuickJS: '0.18'
  LWP::Protocol::https: '6.14'
  List::Util: '1.46'
  Mozilla::CA: '20230801'
  Object::Pad: '0.818'
  PDF::API2: '2.045'
  Pod::Usage: '2.03'
  Ref::Util: '0.204'
  Scalar::Util: '1.63'
  Storable: '3.08'

Makefile.PL  view on Meta::CPAN

    'HarfBuzz::Shaper'		   => 0.026, # Text::Layout
    'String::Interpolate::Named'   => 1.060,
     # 'SVGPDF'			   => 0.089,
    'Text::Layout'		   => 0.045,

    'Data::Printer'		   => 1.001001,
    'File::Copy'		   => 2.32, # Core
    'File::HomeDir'		   => 1.004,
    'IPC::Run3'			   => 0.049,
    'Image::Info'		   => 1.41,
    'JSON::XS'			   => 4.03,
    'JavaScript::QuickJS'	   => 0.18,
    'LWP::Protocol::https'	   => 6.14, # File::LoadLines
    'List::Util'		   => 1.46,
    'Mozilla::CA'		   => 20230801, # File::LoadLines
    'Object::Pad'		   => 0.818,
    'Pod::Usage'		   => 2.03, # Core
    'Ref::Util'			   => 0.204,
    'Scalar::Util'		   => 1.63,
    'Storable'			   => 3.08,
    'Test::More::UTF8'		   => 0.05,

lib/ChordPro.pm  view on Meta::CPAN

		 $VERSION =~ /_/ ? " (Unsupported development snapshot)" : "",
		 "\n"
		);
    exit $exit if defined $exit;
}

sub app_about {
    my ($fh, $level, $exit) = @_;

    if ( $level > 2 ) {
	require JSON::XS;
	select $fh; $| = 1;	# otherwise no output on MacOS
	print ${fh} ( JSON::XS->new->canonical->
		      # pretty->
		      utf8->convert_blessed->encode(runtime_info()) );
    }
    else {
	print ${fh} <<EndOfAbout,

ChordPro: A lyrics and chords formatting program.

ChordPro will read a text file containing the lyrics of one or many
songs plus chord information. ChordPro will then generate a

lib/ChordPro.pm  view on Meta::CPAN

	require JavaScript::QuickJS;
	$vv->("JavaScript::QuickJS");
    };

    eval {
	require JSON::Relaxed;
	$vv->( "JSON::Relaxed" );
    };

    eval {
	require JSON::XS;
	$vv->("JSON::XS");
    };

    $res->{modules} = [ @p ];

    $res->{metadata} = $::config->{metadata}{keys};

    @p = ( qw(title subtitle),
	   ( grep { !/^(sub)?title$/ } sort(@{$::config->{metadata}{keys}//[]}) ),
	   grep { !/^(sub)?title$/ } (keys(%{ChordPro::Song::_directives()})) );
    $res->{directives} = [ @p ];

lib/ChordPro/Config/Data.pm  view on Meta::CPAN

#! perl		#### THIS IS A GENERATED FILE. DO NO MODIFY

package ChordPro::Config::Data;

use JSON::XS qw();
use JSON::Relaxed::Parser qw();
use feature qw(state);
# Config version.
our $VERSION = 6.081;

sub config {
    state $pp = JSON::XS->new->utf8
	->boolean_values( $JSON::Boolean::false, $JSON::Boolean::true );

    $pp->decode( <<'EndOfJSON' );
{"$schema":"https://chordpro.org/beta/resources/config.schema","a2crd":{"classifier":"pct_chords","infer-titles":true,"tabstop":"8"},"assets":{},"chord-formats":{"common":"%{root|%{}%{qual|%{}}%{ext|%{}}%{bass|/%{}}|%{name}}","nashville":"%{root|%{}%...
EndOfJSON
}

1;

lib/ChordPro/Utils.pm  view on Meta::CPAN

our $json_last;

sub json_load( $json, $source = "<builtin>" ) {

    # We have two JSON parsers: Relaxed and XS.
    # Relaxed accepts a lot of relaxing extensions, but XS is much
    # much faster. So fast, in fact, that trying XS first will be a
    # win in many cases, and a neglectable overhead in the other
    # cases.

    state $jx = JSON::XS->new;
    $jx->relaxed;

    # Glue lines, so we have at lease some relaxation.
    $json =~ s/"\s*\\\r?\n\s*"//g;

    my $data;
    $json_last = "xs";
    eval { $data = $jx->decode($json."\n"); $_json_xs++ };
    return $data if defined $data;

script/cfgboot.pl  view on Meta::CPAN

my $test = 0;			# test mode.

# Process command line options.
app_options();

$trace |= ($debug || $test);

################ The Process ################

use JSON::Relaxed qw();
use JSON::XS qw();
use File::LoadLines;
use Encode qw(decode_utf8);
binmode STDOUT => ':utf8';
binmode STDERR => ':utf8';

my $parser = JSON::Relaxed::Parser->new
  ( booleans => [ $Types::Serialiser::false, $Types::Serialiser::true ] );

my $json = "";
# RJSON files can be concatenated.

script/cfgboot.pl  view on Meta::CPAN

    $json .= loadlines( $file, $opts );
    die( "$file: $opts->{error}\n") if $opts->{error};
}

my $data = $parser->decode($json);
if ( $parser->is_error ) {
    warn( "JSON error: ", $parser->err_msg, "\n" );
    next;
}

my $writer = JSON::XS->new->canonical->utf8(0)->pretty($test)->convert_blessed;
if ( $output && $output ne "-" ) {
    open( my $fd, '>:utf8', $output )
      or die("$output: $!\n");
    select $fd;
}

print <<'EOD';
#! perl		#### THIS IS A GENERATED FILE. DO NO MODIFY

package ChordPro::Config::Data;

use JSON::XS qw();
use JSON::Relaxed::Parser qw();
use feature qw(state);
EOD

print "# Config version.\nour \$VERSION = ", $data->{meta}->{_configversion}, ";\n\n";

print <<'EOD';
sub config {
    state $pp = JSON::XS->new->utf8
	->boolean_values( $JSON::Boolean::false, $JSON::Boolean::true );

    $pp->decode( <<'EndOfJSON' );
EOD

print ( $writer->encode($data), "\n" );

print <<EOD;
EndOfJSON
}

script/rrjson.pl  view on Meta::CPAN

	print "\n" unless $pretty;
    }
    elsif ( $mode eq "rjson" ) {
	print $parser->encode( data => $data,
			       strict => 1,
			       indent => $indent,
			       maybe schema => $schema );
	print "\n" unless $pretty;
    }
    elsif ( $mode eq "json_xs" ) {
	require JSON::XS;
	print ( JSON::XS->new->canonical->utf8(0)->pretty($pretty)
		->boolean_values( $JSON::PP::false, $JSON::PP::true )
		->convert_blessed->encode($data) );
    }

    elsif ( $mode eq "toml" ) {
	require TOML::Tiny;
	my $parser = TOML::Tiny->new();
	print ( TOML::Tiny::to_toml($data) );
    }

t/001_prereq.t  view on Meta::CPAN

    diag("Using $pdfapi $pdfapiv for PDF generation");
}
++$test; use_ok( "Text::Layout",   0.045 );
eval {
    require HarfBuzz::Shaper;
    HarfBuzz::Shaper->VERSION(0.026);
    diag( "Shaping enabled (HarfBuzz::Shaper $HarfBuzz::Shaper::VERSION)" );
    1;
} || diag( "Shaping disabled (HarfBuzz::Shaper not found)" );
++$test; use_ok( "JSON::PP",   2.27203 );
++$test; require_ok( "JSON::XS" ); JSON::XS->VERSION(4.03);
++$test; use_ok( "String::Interpolate::Named", 1.060 );
++$test; use_ok( "File::HomeDir", 1.004 );
++$test; use_ok( "File::LoadLines", 1.047 );
++$test; use_ok( "SVGPDF", 0.080 );
++$test; use_ok( "Image::Info", 1.41 );
++$test; use_ok( "List::Util", 1.33 );
++$test; use_ok( "Storable", 3.08 );
++$test; use_ok( "Object::Pad", 0.818 );
++$test; use_ok( "JavaScript::QuickJS", 0.18 );



( run in 3.782 seconds using v1.01-cache-2.11-cpan-5837b0d9d2c )