Provided by: libur-perl_0.410-1_all bug

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