Here are some notes which I have made which may prove useful in the refactoring of Parrot::Distribution. I hope that I have grepped and acked accurately, but I'm not guaranteeing 100% accuracy.

kid51


NAME
    Parrot::Distribution refactoring notes

ANALYSIS OF PACKAGE
    * used by:

        * packages:

            * Parrot::Docs::POD2HTML
            * Parrot::Docs::Section::C
            * Parrot::Docs::Section::Compilers
            * Parrot::Docs::Section::Config
            * Parrot::Docs::Section::Parrot
            * Parrot::Docs::Section::PMCs

        * tests:

            * t/codingstd/c_code_coda.t
            * t/codingstd/c_indent.t
            * t/codingstd/c_parens.t
            * t/codingstd/c_struct.t
            * t/codingstd/cppcomments.t
            * t/codingstd/cuddled_else.t
            * t/codingstd/fixme.t
            * t/codingstd/perlcritic.t
            * t/codingstd/tabs.t
            * t/codingstd/trailing_space.t
            * t/distro/manifest_skip.t
            * t/perl/Parrot_Distribution.t

        * tools

            * tools/dev/gen_manifest_skip.pl

ANALYSIS OF PACKAGES IN INHERITANCE TREE
  Parrot::Docs::Directory
    * inherits from:

        * Parrot::IO::Directory

    * uses:

        * Parrot::Docs::File
            There are no current calls to this package. It's only mentioned
            inside the currently unused file_class() subroutine.

    * used by:

        * packages:

            * Parrot::Distribution
            * Parrot::Docs::Item
            * Parrot::Docs::Section

        * tests:

            * t/perl/Parrot_Distribution.t
            * t/perl/Parrot_Docs.t

        * tools

            * tools/docs/pod_errors.pl

    * comments:

        *   Has two apparently unused subroutines: file_class() and
            directory_class(). These are not methods, are not listed in any
            @EXPORT (there is none), and are not called elsewhere within the
            package. Why retain them?

        *   Has no constructor of its own, so it must use
            Parrot::IO::Directory (or one of that package's ancestors).

        *   Has only one method: files_of_type(), which takes one argument.
            This method calls methods from other packages, including:

            * files()
            * is_of_type()
            * directories()
            * name()
            * directories()
            * files_of_type()

  Parrot::Docs::File
    * inherits from:

        * Parrot::IO::File

    * uses:

        * Pod::Simple::Checker
            One fully qualified call to Pod::Simple::Checker::new inside
            check_pod().

        * Parrot::Docs::POD2HTML
            One fully qualified call to Parrot::Docs::POD2HTML::new inside
            pod_as_html().

    * methods:

        * type_for_suffix()
        * type_for_name()
        * type()
        * is_of_type()
        * check_pod()
        * contains_pod()
        * num_pod_errors()
        * pod_errors()
        * pod_as_html()
        * is_docs_link()
        * title()
        * short_description()

    * used by

        * packages:

            * Parrot::Docs::Directory

        * tests:

            * t/perl/Parrot_Docs.t

  Parrot::Docs::POD2HTML
    * inherits from:

        * Pod::Simple::HTML

    * uses:

        * Parrot::Docs::HTMLPage
            One fully qualified call to each of
            Parrot::Docs::HTMLPage::header and ::footer.

    * methods:

        * type_for_suffix()
        * type_for_name()
        * type()
        * is_of_type()
        * check_pod()
        * contains_pod()
        * num_pod_errors()
        * pod_errors()
        * pod_as_html()
        * is_docs_link()
        * title()
        * short_description()

    * used by:

        * packages:

            * Parrot::Docs::File
            * Parrot::Docs::HTMLPage
            * Parrot::Docs::Item

        * tests

            * t/perl/Parrot_Docs.t

  Parrot::Docs::HTMLPage
    * inherits from:
        Does not inherit -- but doesn't have its own constructor, either!

    * methods

        * header()
        * footer()

    * used by:

        * packages:

            * Parrot::Docs::POD2HTML
            * Parrot::Docs::Section

    * comment
        There is no current rationale for these functions to be methods.
        They could simply be functions exported by this package and imported
        by other packages on request.

  Parrot::IO::Directory
    * inherits from:

        * Parrot::IO::Path

    * uses:

        * Parrot::IO::File
            Imports_unspecified, but file_with_class calls
            Parrot::IO::File::new().

    * methods:

        * directory_with_path()
        * file_with_path()
        * tmp_directory()

    * instance methods:

        * create_path()
        * relative_path()
        * parent()
        * file_and_directory_names()
        * file_and_directory_paths()
        * file_paths()
        * directory_paths()
        * file_exists_with_name()
        * directory_exists_with_name()
        * files()
        * directories()
        * file_suffixes()
        * files_with_suffix()
        * path_for_directory_with_name()
        * path_for_file_with_name()
        * directory_with_name()
        * file_with_name()
        * existing_directory_with_name()
        * existing_file_with_name()
        * path_for_directory_with_relative_path()
        * path_for_file_with_relative_path()
        * relative_path_is_directory()
        * relative_path_is_file()
        * directory_with_relative_path()
        * file_with_relative_path()
        * delete()
        * delete_contents()

    * used by:

        * packages:

            * Parrot::Docs::Directory
            * Parrot::IO::File

        * tests:

            * t/perl/Parrot_IO.t

    * comments:

        *   Two subroutines used internally for on-the-fly generation of new
            methods:

            * directory_class()
            * file_class()

        *   Has constructor, which takes one argument ($path). The
            constructor calls SUPER::new.

  Parrot::IO::Path
    * inherits from:
        does not inherit; uses some Perl 5 core modules

    * methods:

        * new()
        * create_path()
        * path()
        * name()
        * name_without_suffix()
        * suffix()
        * has_suffix()
        * parent_path()
        * stat()
        * delete()

    * used by:

        * packages:

            * Parrot::IO::Directory
            * Parrot::IO::File

        * tests:

            * t/perl/Parrot_IO.t

  Parrot::IO::File
    * inherits from:

        * Parrot::IO::Path

    * uses:

        * Parrot::IO::Directory
            one fully qualified call to Parrot::IO::Directory::new() inside
            parent()

    * comments:

        *   has constructor, which takes one argument ($path); the
            constructor calls SUPER::new

    * methods:

        * tmp_file()
        * new()
        * create_path()
        * parent()
        * read()
        * write()
        * append()
        * is_executable()
        * modified_since()
        * svn_id()
        * has_svn_id()
        * svn_version()
        * is_hidden()
        * is_generated()
        * delete()

    * used by:

        * packages:

            * Parrot::Docs::File
            * Parrot::IO::Directory

        * tests:

            * t/perl/Parrot_IO.t

Reply via email to