Acme-AsciiArtinator
view release on metacpan or search on metacpan
lib/Acme/AsciiArtinator.pm view on Meta::CPAN
than
print@o=(map ... )
even through the latter code is a little shorter.
=back
=head1 OPTIONS
The C<asciiartinate> method supports the following options:
=over 4
=item art_file => filename
=item art_string => string
=item art => string
Specifies the ASCII artwork that we'll try to embed code into.
At least one of C<art>, C<art_string>, C<art_file> must be
specified.
=item code_file => filename
=item code_string => string
=item code => string
Specifies the Perl code that we will try to embed into the
art. At least one of C<code>, C<code_string>, C<code_file>
must be specified.
=item output => filename
Specifies the output file for the embedded code. If omitted,
output is written to the file "ascii-art.pl" in the current
directory.
=item compile_check => 0 | 1
Runs the Perl interpreter with the C<-cw> flags on the
original code string and asserts that the code compiles.
=item debug => 0 | 1
Causes the ASCII Artinator to display verbose messages
about what it is trying to do while it is doing what it
is trying to do.
=item test_argv1 => [ @args ], test_argv2 => [ @args ] , test_argv3 => ...
Executes the original and the artinated code and compares the output
to make sure that the artination process did not change the
behavior of the code. A separate test will be conducted for
every C<test_argvE<lt>NNNE<gt>> parameter passed to the
C<asciiartinate> method. The arguments associated with each
parameter will be passed to the code as command-line arguments.
=item test_input1 => [ @data ], test_input2 => [ @data ], test_input3 => ...
Executes the original and the artinated code and compares the output
to make sure that the artination process did not change the
behavior of the code. A separate test will be conducted for
every C<test_inputE<lt>NNNE<gt>> parameter passed to the
C<asciiartinate> method. The data associated with each
parameter will be passed to the standard input of the code.
=back
=head1 TODO
Lots of future enhancements are possible:
=over 4
=item * Use new ways of padding code
=back
=over 4
=item * Take big blocks of filler and fill them with something else. Random quoted strings.
=back
=over 4
=item * Try to align whitespace in the code with whitespace in the art.
=back
=over 4
=item * Have a concept of "grayspace" in the artwork. These are positions where
we can put either whitespace or a character from the code, whichever makes it
easier to align the code.
=back
=over 4
=item * Optionally implement some "best practices" automatically to make the code
more flexible without changing its behavior.
=back
=head1 BUGS
Probably lots.
=head1 SEE ALSO
If you liked this module, you might also get a kick out of L<Acme::EyeDrops>.
=head1 AUTHOR
Marty O'Brien, E<lt>mob@cpan.orgE<gt>
=head1 LICENSE AND COPYRIGHT
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.8 or,
at your option, any later version of Perl 5 you may have available.
( run in 2.054 seconds using v1.01-cache-2.11-cpan-364913b4093 )