Changes for version 1.1.0 - 2026-07-21
- This release entirely belongs to @GWS.
- API Enhancements
- Added new flexible render() method supporting customizable parameters:
- format (e.g., png, svg, pdf, dot, gv).
- driver (e.g., neato, fdp).
- output_file path (with automatic naming fallback if set to undef).
- base64 boolean encoding.
- line_name (optional positional or named parameter).
- The output file name fallback for single lines now includes the map name, too.
- The output file name fallback is cleaned from non-word characters, making file names more readable and preventing clobbering of files outside the current folder even for (hypothetical) malicious tube maps.
- Refactored existing methods as_png() and as_image() to act as clean, modern wrappers around render().
- Added metadata querying methods list_drivers() and list_formats() to list GraphViz capabilities.
- Added helper get_graphviz_supported() using IPC::Run3 and File::Which to introspect local dot binaries.
- Added new flexible render() method supporting customizable parameters:
- Prerequisites
- Bumped minimum Perl requirement to v5.14.
- Added dependency on File::Which and IPC::Run3 (which have always been required implicitly, because GraphViz2 requires them).
- Removed direct usage of Data::Dumper.
- Test Suite
- Reorganised and expanded the test suite into modular scripts under t/:
- t/01-render.t: Comprehensive unit coverage for the new render() parameters, drivers, and output file behavior.
- t/02-as_image.t: Modernised verification of base64 PNG rendering.
- t/03-as_png.t: Validation of raw binary output formatting.
- t/04-as_graph.t: Isolated validation of graph representations.
- t/05-graphviz-meta.t: Verification of GraphViz introspection features.
- t/06-unusual-station-name.t: Cleaned up version of station name parsing using the new render() implementation.
- Removed deprecated monolithic test files t/as_image.t and t/unusual-station-name.t.
- Reorganised and expanded the test suite into modular scripts under t/:
- Others
- Updated README file.
Modules
Graph plugin for Map::Tube.
Helper package for Map::Tube::Plugin::Graph.