Developer-Dashboard
view release on metacpan or search on metacpan
lib/Developer/Dashboard/Zipper.pm view on Meta::CPAN
# __cmdx($type, $code)
# Returns a shell pipeline string that decodes an encoded payload.
# Input: type string and code string.
# Output: shell command string.
sub __cmdx {
my ( $type, $code ) = @_;
my $token = zip($code) || { raw => '' };
return "printf '%s' " . quotemeta( $token->{raw} ) . " | base64 -d | gunzip";
}
# _cmdx($type, $code)
# Returns older shell execution tuple values.
# Input: type string and code string.
# Output: list of shell tuple values.
sub _cmdx {
my ( $type, $code ) = @_;
my $switch = $type eq 'perl' ? '-e' : '-c';
return ( $type, $switch, __cmdx( $type, $code ) );
}
# _cmdp($type, $code)
# Returns older shell pipeline tuple values.
# Input: type string and code string.
# Output: list of pipeline tuple values.
sub _cmdp {
my ( $type, $code ) = @_;
return ( __cmdx( $type, $code ), $type );
}
1;
__END__
=head1 NAME
Developer::Dashboard::Zipper - older token encoding and ajax URL compatibility helpers
=head1 SYNOPSIS
use Developer::Dashboard::Zipper qw(zip unzip Ajax);
my $token = zip("print qq{ok\\n};");
=head1 DESCRIPTION
This module recreates the small token and ajax helper surface expected by
older bookmark code without carrying forward any project-specific logic.
=head1 FUNCTIONS
=head2 zip, unzip, acmdx, Ajax, __cmdx, _cmdx, _cmdp
Encode and decode token payloads and generate older-style ajax links. Saved
bookmark Ajax file handlers are stored under the dashboards ajax tree as
executable files so the web runtime can run them as real processes.
=for comment FULL-POD-DOC START
=head1 PURPOSE
This module keeps the older bookmark and Ajax helper compatibility surface alive. It builds tokenised URLs, saved Ajax endpoints, and helper snippets such as C<Ajax()> while routing the actual encoding work through the modern codec module.
=head1 WHY IT EXISTS
It exists because older bookmarks still expect the historical helper names and URL-building patterns. Keeping those wrappers in one module preserves compatibility without forcing newer runtime code to keep re-implementing the old API directly.
=head1 WHEN TO USE
Use this file when changing older Ajax helper behavior, saved Ajax file validation, token URL generation, or the compatibility wrappers that older bookmark instructions still reference.
=head1 HOW TO USE
Import the specific helper you need, such as C<zip>, C<unzip>, or C<Ajax>, and let this module generate the compatibility structure or snippet. Newer code should prefer the lower-level runtime and codec modules where possible.
=head1 WHAT USES IT
It is used by older bookmark pages, by saved Ajax compatibility paths, by page-runtime helper injection, and by tests that guard the backward-compatible helper layer.
=head1 EXAMPLES
Example 1:
perl -Ilib -MDeveloper::Dashboard::Zipper -e 1
Do a direct compile-and-load check against the module from a source checkout.
Example 2:
prove -lv t/21-refactor-coverage.t t/00-load.t
Run the focused regression tests that most directly exercise this module's behavior.
Example 3:
HARNESS_PERL_SWITCHES=-MDevel::Cover prove -lr t
Recheck the module under the repository coverage gate rather than relying on a load-only probe.
Example 4:
prove -lr t
Put any module-level change back through the entire repository suite before release.
=for comment FULL-POD-DOC END
=cut
( run in 1.071 second using v1.01-cache-2.11-cpan-39bf76dae61 )