Skip to content

michal-josef-spacek/Graph-Reader-UnicodeTree

Repository files navigation

NAME
    Graph::Reader::UnicodeTree - Perl class for reading a graph from unicode
    tree text format.

SYNOPSIS
     use Graph::Reader::UnicodeTree;

     my $obj = Graph::Reader::UnicodeTree->new;
     my $graph = $obj->read_graph($unicode_tree_file);

METHODS
  "new"
     my $obj = Graph::Reader::UnicodeTree->new;

    Constructor. This doesn't take any arguments.

    Returns Graph::Reader::UnicodeTree object.

  "read_graph"
     my $graph = $obj->read_graph($unicode_tree_file);

    Read a graph from the specified file. The argument can either be a
    filename, or a filehandle for a previously opened file.

    Returns Graph object.

UNICODE TREE FILE FORMAT
     Vertices are simple text.
     Edges are '─┬─' or '───' in main line and ' ├─' or ' └─' in other lines.
     Example:
     1─┬─2
       ├─3───4
       ├─5
       ├─6─┬─7
       │   ├─8
       │   └─9
       └─10

EXAMPLE1
     use strict;
     use warnings;

     use Encode qw(decode_utf8 encode_utf8);
     use Graph::Reader::UnicodeTree;
     use IO::Barf qw(barf);
     use File::Temp qw(tempfile);

     # Example data.
     my $data = decode_utf8(<<'END');
     1─┬─2
       ├─3───4
       ├─5
       ├─6─┬─7
       │   ├─8
       │   └─9
       └─10
     END

     # Temporary file.
     my (undef, $tempfile) = tempfile();

     # Save data to temp file.
     barf($tempfile, encode_utf8($data));

     # Reader object.
     my $obj = Graph::Reader::UnicodeTree->new;

     # Get graph from file.
     my $g = $obj->read_graph($tempfile);

     # Clean temporary file.
     unlink $tempfile;

     # Print to output.
     print $g."\n";

     # Output:
     # 1-10,1-2,1-3,1-5,1-6,3-4,6-7,6-8,6-9

EXAMPLE2
     use strict;
     use warnings;

     use Graph::Reader::UnicodeTree;

     if (@ARGV < 1) {
             print STDERR "Usage: $0 data_file\n";
             exit 1;
     }
     my $data_file = $ARGV[0];

     # Reader object.
     my $obj = Graph::Reader::UnicodeTree->new;

     # Get graph from file.
     my $g = $obj->read_graph($data_file);

     # Print to output.
     print $g."\n";

     # Output like:
     # 1-10,1-2,1-3,1-5,1-6,3-4,6-7,6-8,6-9

DEPENDENCIES
    Encode, Graph::Reader, Readonly.

SEE ALSO
    Graph::Reader
        base class for Graph file format readers

    Task::Graph::Reader
        Install the Graph::Reader modules.

REPOSITORY
    <https://github.com/michal-josef-spacek/Graph-Reader-UnicodeTree>

AUTHOR
    Michal Josef Špaček <mailto:skim@cpan.org>

    <http://skim.cz>

LICENSE AND COPYRIGHT
    © Michal Josef Špaček 2013-2021

    BSD 2-Clause License

VERSION
    0.04

About

Perl class for reading a graph from unicode tree text format.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages