NAME¶
UR::Object::Type::ModuleWriter - Helper module for UR::Object::Type responsible
for writing Perl modules
DESCRIPTION¶
Subroutines within this module actually live in the UR::Object::Type namespace;
this module is just a convienent place to collect them. The Module Writer is
used by the class updater system ((UR::Namespace::Command::Update::Classes and
'ur update classes) to add, remove and alter the Perl modules behind the
classes within a Namespace.
METHODS¶
- resolve_module_header_source
-
$classobj->resolve_module_header_source();
Returns a string that represents a fully-formed class definition the the
given class metaobject $classobj.
- resolve_class_description_perl
-
$classobj->resolve_class_description_perl()
Used by resolve_module_header_source(). This method inspects all the
applicable properties of the class metaobject and builds up a string that
gets inserted between the {...} of the class definition string.
- rewrite_module_header
-
$classobj->rewrite_module_header();
This method rewrites an existing Perl module file in place for the class
metaobject, or creates a new file if one does not already exist.
- module_base_name
- Returns the pathname of the class's module relative to the top level
directory of that class's Namespace.
- module_path
- Returns the fully qualified pathname of the class's module.
- module_source_lines
- Returns the text of the class's Perl module as a list of strings.
- module_source
- Returns the text of the class's Perl module as a single string.
- module_header_positions
- Returns a 3-element list ($begin, $end, $use) where $begin is the line
number where the class header begins. $end is the line number where it
ends. $use is the line number where the module declares that it use's a
Namespace.
- module_header_source_lines
- Returns the text of the class's Perl module source where the class
definition is as a list of strings.
- module_header_source
- Returns the text of the class's Perl module source where the class
definition is as a single string.
SEE ALSO¶
UR::Object::Type, UR::Object::Type::Initializer