App-SimpleScan-Plugin-Snapshot
view release on metacpan or search on metacpan
lib/App/SimpleScan/Plugin/Snapshot.pm view on Meta::CPAN
package App::SimpleScan::Plugin::Snapshot;
our $VERSION = '1.03';
use warnings;
use strict;
use Carp;
use File::Path;
my($snapdir, $snapshot, $snap_prefix, $snap_layout);
sub import {
no strict 'refs';
*{caller() . '::snapshot'} = \&snapshot;
*{caller() . '::snapshots_to'} = \&snapshots_to;
*{caller() . '::snap_prefix'} = \&snap_prefix;
*{caller() . '::snap_layout'} = \&snap_layout;
}
sub snapshot {
my($self, $value) = @_;
$snapshot = $value if defined $value;
$snapshot;
}
sub snap_layout {
my($self, $value) = @_;
$snap_layout = $value if defined $value;
$snap_layout;
}
sub snapshots_to {
my($self, $value) = @_;
$snapdir = $value if defined $value;
$snapdir;
}
sub snap_prefix {
my($self, $value) = @_;
$snap_prefix = $value if defined $value;
$snap_prefix;
}
sub options {
return ('snap_dir=s' => \$snapdir,
'snap_prefix=s' => \$snap_prefix,
'snapshot=s' => \$snapshot,
'snap_layout=s' => \$snap_layout,
);
}
sub validate_options {
my($class, $app) = @_;
if (defined (my $dir = $app->snapshots_to)) {
$app->pragma('snap_dir')->($app, $dir);
}
if (defined (my $prefix = $app->snap_prefix)) {
$app->pragma('snap_prefix')->($app, $prefix);
}
if (defined (my $layout = $app->snap_layout)) {
$app->pragma('snap_layout')->($app, $layout);
}
}
sub pragmas {
return (['snap_dir' => \&snapshot_dir_pragma],
['snapshot' => \&snapshot_pragma],
['snap_prefix' => \&snap_prefix_pragma],
['snap_layout' => \&snap_layout_pragma],
);
}
sub snapshot_dir_pragma {
my ($self, $args) = @_;
$self->stack_code(qq(mech->snapshots_to("$args");\n));
}
( run in 1.380 second using v1.01-cache-2.11-cpan-437f7b0c052 )