Revision history for CLI::Framework

0.01    2009-06-18

        Initial release.

0.02    2009-06-18

        Documentation corrections.

0.03    2009-09-20

        * Corrected broken dependencies (Exception::Class)

        * Documentation improvements
            + refined existing documentation
            + added Tutorial

        * Concept of "session" replaced with the "cache" (which can hold data shared
          between separate components of a CLIF application)

        * Now supporting custom error handling capability (new handle_exception() hook)

        * Built-in command CLI::Framework::Command::Menu improved for better
          formatting

        * New features
            + inline declaration of CLIF subclasses (both Application and
              Command classes) is now supported (one file can contain everything)
            + new built-in command CLI::Framework::Command::Alias

        ***
        *** ATTENTION: interface has changed! Most noteworthy changes follow...
        ***

        * REPLACED  CLI::Framework::Application::is_valid_command()
          WITH      is_valid_command_pkg()
          AND       is_valid_command_name()
        * REMOVED   CLI::Framework::Application::command_search_path()
          (no longer needed with the new command registration strategy)
        * CHANGED   CLI::Framework::Application::get_registered_command_names()
          TO        registered_command_names()
        * REMOVED   CLI::Framework::Command::get_registered_command_names()
        * CHANGED   CLI::Framework::Command::get_registered_command()
          TO        registered_command_object()
        * CHANGED   CLI::Framework::Command::get_registered_subcommand()
          TO        registered_subcommand_object()
        * REMOVED   CLI::Framework::Command::register_command()
        * ADDED     CLI::Framework::Command::package_is_registered()
        * CHANGED   CLI::Framework::Application::is_interactive()
          TO        get_interactivity_mode()
        * CHANGED   CLI::Framework::Command::Meta::app() changed
          TO        get_app()
        * REPLACED  CLI::Framework::Application::valid_commands()
          WITH      CLI::Framework::Application::command_map()
                    (a hash mapping command names to package names)

        * CLI::Framework::Application::run() now accepts param 'initialize'

0.04    2010-03-31

        * Fixed inconsistency in exception handling (http://cpanforum.com/posts/12419)

        * Fixed failing tests (some test scripts depended on DBI and DBD::SQLite,
          which are not (and should not be) dependencies of the distribution)

        * Added CLI::Framework package to satisfy CPAN's requirements for
          finding the ABSTRACT for a distribution
            + ***NOTE***: CLIF Application classes can now inherit from
              CLI::Framework instead of CLI::Framework::Application (both work
              equivalently)

        * documentation updates
            + link corrections, better explanation of some concepts
            + moved general framework documentation from
              CLI::Framework::Application POD to CLI::Framework POD
            + added class diagram

        ***
        *** ATTENTION: one (minor) interface change:
        ***
        * in CLI::Framework::Exceptions, changed throw_app_args_exception() to
          throw_invalid_cmd_exception()

0.05    2011-03-10

        * RT #56882: Fixed to use autohistory if the system's local ReadLine
                     supports it.

        * RT #56885: EOF now treated like a quit signal

        *** ATTENTION: updates that affect the interface...

        * RT #56887: The order of the commands shown in the built-in interactive
                     menu is now determined by the order the commands are
                     declared in command_map.

                     The Application hook method "command_map" should now
                     return a (hash-worthy) list, not a HASH ref.
                     
                     To upgrade a CLIF app to be compatible with this release,
                     change the definition of command_map() to return a list
                     (see documentation for CLI::Framework::Application::command_map)
                     and remember to change calls to that method if necessary.

                     Also see the new CLIF Application method, command_map_hashref().

        * New method CLI::Framework::Application::command_map_hashref()
          returns a HASH ref constructed from the command_map() list.