Provided by: libsharyanto-utils-perl_0.53-1_all bug

NAME

       SHARYANTO::Role::Doc::Section - Role for class that generates documentation with sections

VERSION

       version 0.53

DESCRIPTION

       SHARYANTO::Role::Doc::Section is a role for classes that produce documentation with
       sections. This role provides a workflow for parsing and generating sections, regulating
       indentation, and a "gen_doc()" method.

       To generate documentation, first you provide a list of section names in "doc_sections".
       Then you run "gen_doc()", which will call "gen_doc_section_SECTION()" method for each
       section consecutively, which is supposed to append lines of text to "doc_lines". Finally
       all the added lines is concatenated together and returned by "gen_doc()".

       This module uses Log::Any for logging.

       This module uses Moo for object system.

ATTRIBUTES

   doc_sections => ARRAY
       Should be set to the names of available sections.

   doc_lines => ARRAY
   doc_indent_level => INT
   doc_indent_str => STR (default '  ' (two spaces))
       Character(s) used for indent.

METHODS

   add_doc_section_before($name, $anchor)
   add_doc_section_after($name, $anchor)
   delete_doc_section($name)
   inc_doc_indent([N])
   dec_doc_indent([N])
   gen_doc() => STR
       Generate documentation.

       The method will first initialize "doc_lines" to an empty array "[]" and "doc_indent_level"
       to 0.

       It will then call "before_gen_doc" if the hook method exists, to allow class to do stuffs
       prior to document generation. Perinci::To::Text uses this, for example, to retrieve
       metadata from Riap server.

       Then, as described in "DESCRIPTION", for each section listed in "doc_sections" it will
       call "gen_doc_section_SECTION".

       After that, it will call "after_gen_doc" if the hook method exists, to allow class to do
       stuffs after document generation.

       Lastly, it returns concatenated "doc_lines".

SEE ALSO

       This role is used, among others, by: "Perinci::To::*" modules.

       SHARYANTO::Role::Doc::Section::AddTextLines which provides "add_doc_lines" to add text
       with optional text wrapping.

AUTHOR

       Steven Haryanto <stevenharyanto@gmail.com>

COPYRIGHT AND LICENSE

       This software is copyright (c) 2013 by Steven Haryanto.

       This is free software; you can redistribute it and/or modify it under the same terms as
       the Perl 5 programming language system itself.

FUNCTIONS

       None are exported by default, but they are exportable.