NAME

Parrot::Distribution - Parrot Distribution Directory

SYNOPSIS

use Parrot::Distribution;

my $dist = Parrot::Distribution->new();

DESCRIPTION

Parrot::Distribution knows all kinds of stuff about the contents of the distribution.

This is a subclass of Parrot::Docs::Directory so that it can be used to build the HTML docs. There may come a time when it is necessary to make file_class() and directory_class() dynamic so that different file methods can be used depending on the circumstances.

Class Methods

new()

Searches up the file system tree from the current working directory looking for the distribution directory, and returns it if it finds it. The search is only performed once.

The criterion is that there should be a README file beginning with the words "This is Parrot" in the directory.

Raises an exception if the distribution root is not found.

Instance Methods

c_source_file_directories()
c_header_file_directories()
pmc_source_file_directories()
yacc_source_file_directories()
lex_source_file_directories()
ops_source_file_directories()

Returns the directories which contain source files of the appropriate filetype.

c_source_file_with_name($name)
c_header_file_with_name($name)
pmc_source_file_with_name($name)
yacc_source_file_with_name($name)
lex_source_file_with_name($name)
ops_source_file_with_name($name)

Returns the source file with the specified name and of the appropriate filetype.

c_source_files()
c_header_files()
pmc_source_files()
yacc_source_files()
lex_source_files()
ops_source_files()

Returns a sorted list of the source files listed within the MANIFEST of Parrot. Returns a list of Parrot::IO::File objects of the appropriate filetype.

get_c_language_files()

Returns the C language source files within Parrot. Namely:

C source files *.c
C header files *.h
(f)lex files *.l
yacc/bison files *.y
pmc files *.pmc
ops files *.ops

returns a Parrot::Docs::File object

is_c_exemption()

Determines if the given filename is an exemption to being in the C source. This is to exclude automatically generated C-language files Parrot might have.

get_perl_language_files()

Returns the Perl language source files within Parrot. Namely:

Perl source files *.pl
Perl module files *.pm
.in files *.in
test files *.t
is_perl_exemption()

Determines if the given filename is an exemption to being in the Perl source. This is to exclude automatically generated Perl-language files, and any external modules Parrot might have.

is_perl()

Determines if the given filename is Perl source

file_for_perl_module($module)

Returns the Perl module file for the specified module.

docs_directory()

Returns the documentation directory.

html_docs_directory()

Returns the HTML documentation directory.

delete_html_docs()

Deletes the HTML documentation directory.

gen_manifest_skip

Query the svn:ignore property and generate the lines for MANIFEST.SKIP.

generated_files

Returns a hash where the keys are the files in MANIFEST.generated and the values are the comments.