App-Music-ChordPro
view release on metacpan or search on metacpan
lib/ChordPro/Output/Meta.pm view on Meta::CPAN
$res[-1] =~ s/,$//;
push( @res, "]" );
\@res;
}
sub looks_like_number($v) {
defined($v) && $v =~ /^[-+]?\d+(?:\.\d*)?$/;
}
sub kv( $k, $v ) {
$v = flatten($v);
qquote($k, 1) . " : " . qquote($v, !looks_like_number($v));
}
sub flatten($v) {
return $v unless is_arrayref($v);
return $v->[0] if @$v == 1;
join( $sep, @$v );
}
lib/ChordPro/Output/PDF/Grid.pm view on Meta::CPAN
}
$pr->text( " " . $t->{text}, $x, $y, $fonts->{grid_margin} );
}
}
sub is_bar( $elt ) {
exists( $elt->{class} ) && $elt->{class} eq "bar";
}
# Location and size of vertical bars
sub yh( $y, $h, $pr ) {
my $d = $pr->{ps}->{grids}->{stretch} || 0.825;
return ( $y + 0.9 * $h,
$h * $d * $pr->{ps}->{spacing}->{grid} );
}
sub pr_cellline( $x, $y, $lcr, $sz, $w, $col, $pr ) {
$x -= $w / 2;
$pr->vline( $x, yh($y,$sz,$pr), $w, $col );
}
lib/ChordPro/Paths.pm view on Meta::CPAN
$ENV{uc($packager)."_PACKAGED"};
}
################ Export ################
# For convenience.
use Exporter 'import';
our @EXPORT;
sub CP() { __PACKAGE__->get }
push( @EXPORT, 'CP' );
1;
lib/ChordPro/Utils.pm view on Meta::CPAN
sub propitems_re() {
my $re = join( '|', propitems() );
qr/(?:$re)/;
}
push( @EXPORT, "propitems_re" );
push( @EXPORT_OK, "propitems" );
# For debugging encoding problems.
sub as( $s ) {
return "<undef>" unless defined $s;
$s =~ s{ ( [^\x{20}-\x{7f}] ) }
{ join( '', map { sprintf '\x{%02x}', ord $_ } split //, $1) }gex;
return $s;
}
push( @EXPORT_OK, "as" );
sub enumerated( @s ) {
return "" unless @s;
( run in 2.045 seconds using v1.01-cache-2.11-cpan-4ab04211f4c )