App-SimpleScan

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

    parsed test spec.

   last_line
    Plugin and core method.

    Current input line setter/getter. Can be used by plugins to look at the
    current line.

   stack_code
    Plugin and core method.

    Adds code to the final output without incrementing the number of tests.
    Does *not* go through code filters, and does *not* increment the test
    count.

   stack_test
    Adds code to the final output and bumps the test count by one. The code
    passes through any plugin code filters.

   tests
    Accessor that stores the test code generated during the run.

EXTENDING SIMPLESCAN
  Adding new command-line options
    Plugins can add new command-line options by defining an "options" class
    method which returns a list of parameter/variable pairs, like those used
    to define options with "Getopt::Long".

    "App::SimpleScan" will check for the "options" method in your plugin
    when it is loaded, and call it to install your options automatically.

  Adding new pragmas
    Plugins can install new pragmas by implementing a "pragmas" class
    method. This method should return a list of array references, with each
    array reference containing a pragma name and a code reference which will
    implement the pragma.

    The actual pragma implementation will, when called by
    "transform_test_specs", receive a reference to the "App::SimpleScan"
    object and the arguments to the pragma (from the pragma line in the
    input) as a string of text. It is up to the pragma to parse the string;
    the use of "expand_backticked" is recommended for pragmas which take a
    variable number of arguments, and wish to adhere to the same syntax that
    standard substitutions use.

PLUGIN SUMMARY
    Standard plugin methods that App::SimpleScan will look for; none of
    these is required, though you should choose to implement the ones that
    you actually need.

  Basic callbacks
   init
    The "init" class method is called by "App:SimpleScan" when the plugin
    class is loaded; the "App::SimpleScan" object is suppled to allow the
    plugin to alter or add to the contents of the object. This allows
    plugins to export methods to the base class, or to add instance
    variables dynamically.

    Note that the class passed in to this method is the class of the
    *plugin*, not of the caller ("App::SimpleScan" or a derived class). You
    should use caller() if you wish to export subroutines into the package
    corresponding to the base class object.

   pragmas
    Defines any pragmas that this plugin implements. Returns a list of names
    and subroutine references. These will be called with a reference to the
    "App::SimpleScan" object.

   filters
    Defines any code filters that this plugin wants to add to the output
    filter queue. These methods are called with a copy of the
    App::SimpleScan object and an array of code that is about to be stacked.
    The filter should return an array containing either the unaltered code,
    or the code with any changes the plugin sees fit to make.

    If your filter wants to stack tests, it should call "stack_code" and
    increment the test count itself (by a call to test_count); trying to use
    "stack_test" in a filter will cause it to be called again and again in
    an infinite recursive loop.

   test_modules
    If your plugin generates code that requires other Perl modules, its
    test_modules class method should return an array of the names of these
    modules.

   options
    Defines options to be added to the command-line options. You should
    return an array of items that would be suitable for passing to
    "Getopt::Long", which is what we'll do with them.

   validate_options
    Validate your options. You can access any of the variables you passed to
    "options"; these will be initialized with whatever values "Getopt::Long"
    got from the command line. You should try to ignore invalid values and
    choose defaults for missing items if possible; if not, you should "die"
    with an appropriate message.

  Methods to alter the input stream
   next_line
    If a plugin wishes to read the input stream for its own purposes, it may
    do so by using "next_line". This returns either a string or undef (at
    end of file).

   stack_input
    Adds lines to the input queue ahead of the next line to be read from
    whatever source is supplying them. This allows your plugin to process a
    line into multiple lines "in place".

  Methods for outputting code
    Your pragma will probably use one of the following methods to output
    code:

   stack_code
    A call to "stack_code" will cause the string passed back to be emitted
    immediately into the code stream. The test count will remain at its
    current value.

   stack_test
    "stack_test" will immediately emit the code supplied as its argument,
    and will increment the test count by one. You should use multiple calls
    to "stack_test" if you need to stack more than one test.



( run in 1.136 second using v1.01-cache-2.11-cpan-39bf76dae61 )