Apache-SWIT
view release on metacpan or search on metacpan
lib/Apache/SWIT/Maker/Conversions.pm view on Meta::CPAN
sub conv_module_contents {
my ($module_class, $str) = @_;
return <<ENDM;
use strict;
use warnings FATAL => 'all';
package $module_class;
$str
1;
ENDM
}
sub conv_silent_system {
my $res = `$_[0] 2>&1`;
$? and die "Unable to do $_[0]:\n$res";
}
sub _capitalize {
my ($l, $rest) = ($_[0] =~ /(\w)(\w*)/);
return uc($l) . $rest;
}
sub conv_table_to_class {
my $t = shift or confess "No table was given";
return join('', map { _capitalize($_) } split('_', $t));
}
sub conv_make_full_class {
my ($root, $prefix, $class) = @_;
my $res;
if ($class =~ s/^$root\:://) {
$res = $root . "::$class";
} else {
$res = $root . "::$prefix\::$class";
}
return $res;
}
sub conv_next_dual_test {
my $max = 0;
foreach (split("\n", $_[0])) {
/\/dual\/(\d\d\d).*\.t\b/ or next;
next if $max > $1;
$max = $1;
}
return sprintf("%03d", $max + 10);
}
sub conv_class_to_app_name {
my $class = lc(shift);
$class =~ s/::/_/g;
return $class;
}
sub conv_forced_write_file {
my ($to_conf, $str) = @_;
# ExtUtils::Install changes permissions to readonly
my $readonly = ! -w $to_conf;
chmod 0644, $to_conf if $readonly;
write_file($to_conf, $str);
chmod 0444, $to_conf if $readonly;
}
sub conv_eval_use {
my $c = shift;
eval "use $c";
confess "Cannot use $c: $@" if $@;
return $c;
}
sub conv_file_to_class {
my $file = shift;
$file =~ s#^lib/##;
$file =~ s#/#::#g;
$file =~ s#\..+##;
return $file;
}
sub conv_class_to_entry_point {
my ($c, $rc) = @_;
$rc ||= ".+::UI";
$c =~ s/^$rc\:://;
$c =~ s#::#/#g;
return lc($c);
}
1;
( run in 0.814 second using v1.01-cache-2.11-cpan-39bf76dae61 )