Jemplate
view release on metacpan or search on metacpan
lib/Jemplate.pm view on Meta::CPAN
Where "compile-opt" can include:
--start-tag
--end-tag
--pre-chomp
--post-chomp
--trim
--any-case
--eval
--noeval
-s, --source
--exclude
For more information use:
perldoc jemplate
...
}
sub main {
my $class = shift;
my @argv = @_;
my ($template_options, $jemplate_options) = get_options(@argv);
my ($runtime, $compile, $list) = @$jemplate_options{qw/runtime compile list/};
if ($runtime) {
print runtime_source_code(@$jemplate_options{qw/runtime ajax json xhr xxx compact/});
return unless $compile;
}
my $templates = make_file_list($jemplate_options->{exclude}, @argv);
print_usage_and_exit() unless @$templates;
if ($list) {
foreach (@$templates) {
print STDOUT $_->{short} . "\n";
}
return;
}
if ($compile) {
my $jemplate = Jemplate->new(%$template_options);
print STDOUT $jemplate->_preamble;
foreach my $template (@$templates) {
my $content = slurp($template->{full});
if ($content) {
print STDOUT $jemplate->compile_template_content(
$content,
$template->{short},
);
}
}
return;
}
print_usage_and_exit();
}
sub get_options {
local @ARGV = @_;
my $runtime;
my $compile = 0;
my $list = 0;
my $start_tag = exists $ENV{JEMPLATE_START_TAG}
? $ENV{JEMPLATE_START_TAG}
: undef;
my $end_tag = exists $ENV{JEMPLATE_END_TAG}
? $ENV{JEMPLATE_END_TAG}
: undef;
my $pre_chomp = exists $ENV{JEMPLATE_PRE_CHOMP}
? $ENV{JEMPLATE_PRE_CHOMP}
: undef;
my $post_chomp = exists $ENV{JEMPLATE_POST_CHOMP}
? $ENV{JEMPLATE_POST_CHOMP}
: undef;
my $trim = exists $ENV{JEMPLATE_TRIM}
? $ENV{JEMPLATE_TRIM}
: undef;
my $anycase = exists $ENV{JEMPLATE_ANYCASE}
? $ENV{JEMPLATE_ANYCASE}
: undef;
my $eval_javascript = exists $ENV{JEMPLATE_EVAL_JAVASCRIPT}
? $ENV{JEMPLATE_EVAL_JAVASCRIPT}
: 1;
my $source = 0;
my $exclude = 0;
my ($ajax, $json, $xxx, $xhr, $compact, $minify);
my $help = 0;
GetOptions(
"compile|c" => \$compile,
"list|l" => \$list,
"runtime|r:s" => \$runtime,
"start-tag=s" => \$start_tag,
"end-tag=s" => \$end_tag,
"trim=s" => \$trim,
"pre-chomp" => \$pre_chomp,
"post-chomp" => \$post_chomp,
"any-case" => \$anycase,
"eval!" => \$eval_javascript,
"source|s" => \$source,
"exclude=s" => \$exclude,
"ajax:s" => \$ajax,
"json:s" => \$json,
"xxx" => \$xxx,
"xhr:s" => \$xhr,
"compact" => \$compact,
"minify:s" => \$minify,
"help|?" => \$help,
) or print_usage_and_exit();
( run in 2.522 seconds using v1.01-cache-2.11-cpan-364913b4093 )