NAME
Clownfish::File - Structured representation of the contents of a Clownfish source file.
DESCRIPTION
An abstraction representing a file which contains Clownfish code.
METHODS
new
my $file_obj = Clownfish::File->new(
source_class => 'Crustacean::Lobster', # required
);
source_class - The class name associated with the source file, regardless of how what classes are defined in the source file. Example: If source_class is "Foo::Bar", that implies that the source file could be found at 'Foo/Bar.cfh' within the source directory and that the output C header file should be 'Foo/Bar.h' within the target include directory.
add_block
$file_obj->add_block($block);
Add an element to the blocks array. The block must be either a Clownfish::Class, a Clownfish::Parcel, or a Clownfish::CBlock.
blocks
my $blocks = $file->blocks;
Return all blocks as an arrayref.
classes
my $classes = $file->classes;
Return all Clownfish::Class blocks from the file as an arrayref.
get_modified set_modified
Accessors for the file's "modified" property, which is initially false.
get_source_class
Accessor.
c_path h_path cfh_path
# '/path/to/Source/Class.c', etc.
my $c_path = $file->c_path('/path/to');
my $h_path = $file->h_path('/path/to');
my $cfh_path = $file->cfh_path('/path/to');
Given a base directory, return a path name derived from the File's source_class with the specified extension.
guard_name
# e.g. "H_CRUSTACEAN_LOBSTER"
my $guard_name = $file->guard_name
Return a string used for an include guard in a C header, unique per file.
guard_start
Return a string opening the include guard.
guard_close
Return a string closing the include guard. Other classes count on being able to match this string.