Revision history for Map::Tube

2.37    Sat Dec 07 16:38:20 2014
        - Removed 'use utf8;' line from all the packages of the distribution Map-Tube.

2.36    Sat Dec 07 14:15:00 2014
        - Added new attribute 'utf8' to Map::Tube which default to true.
        - Also added new mandatory attribute 'utf8' which inherits the setting of 'utf8' attribute of Map::Tube.
        - Now utf8 encode/decode happens depending on this new attribute.

2.35    Sat Dec 07 11:45:00 2014
        - Updated method Map::Tube::get_shortest_route() to decode (utf8) the station names.
        - Updated method Map::Tube::Node::to_string() to encode (utf8) the response.
        - Marked method Map::Tube::get_all_routes() as EXPERIMENTAL.
        - Added package Encode as pre-requisite in the Makefile.PL file.
        - Updated pod document to reflect the change in behaviour of the two methods
          Map::Tube::get_shortest_route() and Map::Tube::get_all_routes().

2.34    Fri Dec 05 21:19:00 2014
        - Fixed the pod tag for method link() in the package Map::Tube::Node.

2.33    Fri Dec 05 19:36:00 2014
        - Tidied up the pod document of Map::Tube and removed "NOTE".
        - Corrected the pod tag for "METHODS" and method id() in the package Map::Tube::Node.
        - Added section "DESCRIPTION" in the package Map::Tube::Table.
        - Corrected the pod tag for method nodes() in the package Map::Tube::Route.

2.32    Fri Dec 05 15:30:00 2014
        - Made all the attributes of class Map::Tube::Node as required mandatory.
        - Documented all methods exposed by class Map::Tube::Node.
        - Made attribute 'id' as required mandatory for class Map::Tube::Table.
        - Added two attributes 'from' and 'to' to the class Map::Tube::Route.
        - Made all attributes as required mandatory for class Map::Tube::Route.
        - Made slight improvement to the method get_shortest_route() and get_all_routes().
        - Documented the method get_all_routes().

2.31    Wed Dec 03 21:00:00 2014
        - Added the feature to accept case insensitive station name.
        - Also added Map::Tube::Berlin to the list of package taking the role Map::Tube.

2.30    Wed Dec 03 14:40:00 2014
        - Fixed the performance issue raised in the ticket RT: 100677.
        - Updated pod document about the methods exposed by the Map::Tube.

2.29    Wed Dec 03 00:40:00 2014
        - Cosmetics changes to the pod document of package Map::Tube.

2.28    Tue Dec 02 22:02:00 2014
        - Added method validate_map_data() to the package Map::Tube, to validate the map data.
          Post loading map data, it checks if all the nodes are defined and throw error if found
          any missing.
        - Removed SIGNATURE file from the distribution.

2.27    Sun Nov 30 11:19:10 2014
        - Refactored code in a big way to be more OO style.
        - Added new package Map::Tube::Table to represent table in the map.
        - Added new method Map::Tube::get_routes() to get all possible routes between two nodes.
        - Updated method Map::Tube::get_shortest_route() to return list of objects of type Map::Tube::Node.
        - Updated method Map::Tube::Node::to_string() to return the node line along with the name.

2.26    Sat Aug 30 02:45:00 2014
        - Added key "META_MERGE" key on condition (ExUtils::MakeMake->VERSION(6.46).

2.25    Sat Aug 16 10:22:18 2014
        - Added section "REPOSITORY" to the pod document.
        - Added key "META_MERGE" to Makefile.PL file.

2.24    Fri Aug 08 23:38:09 2014
        - Removed Build.PL script.
        - Tidied up README file.

2.23    Fri Jul 25 16:48:13 2014
        - Streamlined version to all modules
        - Minor cosmetic changes

2.22    Mon Jul 07 20:41:00 2014
        - Added 'namespace::clean' as pre-requisite to Build.PL and Makefile.PL

2.21    Sun Jul 06 04:10:09 2014
        - Tidied up the pod documemt

2.20    Sat Jul 05 22:13:15 2014
        - Complete revamp of the original Map::Tube. Converted into Role (Moo).

2.19    Mon Mar 28 13:14:15 2011
        - Updated Copyright information.

2.18    Wed Mar 09 18:44:17 2011
        - Changed the description of the module slightly.

2.17    Wed Mar 02 11:43:20 2011
        - Removed "-T" from the first line of 00-load.t, pod.t, manifest.t
          and 00-signature.t. It appears to me that Mac OS X doesn't like it,
          for some reason.

2.16    Wed Mar 02 10:22:19 2011
        - Cleaned up Makefile.PL as CPAN Testers have complained about it.

2.15    Mon Feb 28 12:17:00 2011
        - Removed "create_makefile_pl" from the Build.PL
        - Arranged Makefile.PL as it's no longer be auto built.

2.14    Mon Feb 28 11:49:10 2011
        - Added DISCLAIMER section to the pod.

2.13    Fri Feb 04 18:55:43 2011
        - Added MYMETA.json to MANIFEST.SKIP as some CPAN Testers not happy on GNU/Linux
          OS Version 2.6.32-2-amd64, Perl version (5.13.2, 5.13.6, 5.13.7, 5.13.8, 5.13.9,
          5.8.9) as reported on Friday, 4th February 2011 (6.13pm) UK TIME.

2.12    Fri Feb 04 16:46:59 2011
        - Corrected the year part of last release in the 'Changes' file.
        - Also fixed the pod for method show_map_chart() as it was generating incorrect
          html on install.

2.11    Fri Feb 04 15:40:21 2011
        - Now allows multiple spaces if node's name consists of two or more words and
          fix it automatically for user.
        - Now trims any space at the beginning and at the end of node's name.
        - Added unit test test-case-21.t for the above changes.
        - Updated pod for method get_shortest_route() to reflect aboove changes.
        - Updated pod for method show_map_chart() to show output as well in this case.
        - Added test case in the test-case-00.t about testing node's definition after
          setting node mappings.

2.10    Mon Dec 06 18:33:46 2010
        - Renamed key _follow to _follow_me.
        - Renamed key _element to _nodes.
        - Renamed key _node to _mappings.
        - Renamed key _line to _lines.
        - Renamed method get_name() to get_node_name().
        - Renamed method get_element to get_nodes().
        - Renamed method set_lines() to set_node_lines().
        - Renamed method get_lines() to get_node_lines().
        - Renamed method set_node() to set_node_mappings().
        - Renamed method get_node() to get_node_mappings().
        - Renamed method set_default_node() to set_default_node_definitions().
        - Renamed method init() to load_node_mappings().
        - Renamed method load_element() to load_nodes().
        - Renamed method load_line() to load_node_lines().
        - Renamed method upcase_element_name() to upcase_node_names().
        - Renamed internal method _initialize() to _init().
        - Renamed internal method _initialize_table() to _init_table().
        - Updated internal method _get_next_node(), _sanity_check() and _process_node()
          to reflect the above changes.
        - Updated the unit test test-case-00.t, test-case-14.t and test-case-20.t to
          reflect the above changes.
        - Updated pod to reflect the above changes.

2.09    Fri Dec 03 19:07:21 2010
        - Added to setup line information for user defined nodes.
        - Added to check the line information irrespective of whether following the line or not.
        - Updated pod for method set_node() regarding mapping checks.
        - Minor changes to the error message thrown during data checks.
        - Modified method load_method() to be able to load user data.
        - Added unit test for missing map information.

2.08    Fri Nov 26 09:48:59 2010
        - Updated pod for method init().

2.07    Thu Nov 25 18:43:19 2010
        - Updated pod for method upcase_element_name().

2.06    Wed Nov 24 09:40:11 2010
        - Added SIGNATURE to the distribution.
        - Added unit test for SIGNATURE file.

2.05    Wed Nov 24 09:04:05 2010
        - Removed all internal methods detail from the pod.

2.04    Tue Nov 23 16:03:25 2010
        - Removed test for boilerplate.
        - Method get_next_node() is now turned into internal method _get_next_node().
        - Method sanity_check() is now turned into internal method _sanity_check().

2.03    Thu Nov 19 10:13:49 2010
        - Removed the constraint on node code to be a string. Now node code can
          be a STRING or NUMBER.
        - Added unit test test-case-20.t to test this new feature.
        - Added internal method _is_same().
        - Added internal method _is_number().
        - Updated pod about the change in behaviour of node code.

2.02    Fri Nov 12 09:42:39 2010
        - Added Metropolitan line fast train mapping.
        - Fixed the missing mapping between HOH and M09.
        - Added unit test test-case-18.t and test-case-19.t for the mapping.

2.01    Wed Nov 10 16:30:51 2010
        - Added Overground line data.
        - Added unit test case for Overground line data.
        - Fixed unit test test-case-03.t, test-case-04.t, test-case-07.t and test-case-08.t
          with regard to addition of more data.
        - Updated pod regarding Overground line data.

2.0     Wed Nov 10 13:22:09 2010
        - Added DLR line data.
        - Added unit test for DLR line data.

1.9     Wed Nov 10 09:46:11 2010
        - Removed the debug parameter from the constructor.
        - By default debug is turned off.
        - Removed unit test to validate the debug parameter for constructor.
        - Added method set_debug() to control the debug flag.

1.8     Wed Nov 10 09:27:57 2010
        - Added Waterloo & City line data.
        - Fixed method _process_node() for silly bug.
        - Added unit test for Waterloo & City line data.
        - Fixed unit test test-case-05.t and test-case-06.t with regard to addition of more data.

1.7     Tue Nov 09 16:01:29 2010
        - Updated pod about the "Famous Software Award" given by Download.FamousWhy.com.

1.6     Tue Nov 09 13:40:28 2010
        - Added MANIFEST.SKIP to the MANIFEST file.
        - Factor out the initilization functionality into a seperate method.
        - Added example to the method get_next_node() in the pod.
        - Added example to the method get_tube_lines() in the pod.
        - Added data validation to the method set_line().
        - Added new method sanity_check() to the sanity check on the data.
        - Corrected the node code for Holborn.
        - Remove invalid node code P28.
        - Corrected map definition for node code M22.
        - Added map definition for node code M21, KSG, WBM and ESQ.
        - Fixed map definition for KCS, missing ESQ from the list.
        - Changed the structure of Line information.

1.5     Fri Nov 05 16:54:11 2010
        - Added boilerplate.t to the MANIFEST.
        - Renamed the unit test case appropriately.
        - Modified manifest.t to test MANIFEST everytime.
        - Added Tube line definitions.
        - Added the ability to define line definitions for user node.
        - Now get_shortest_route() dump the time taken to find the shortest route.
        - Added get_next_node(), which checks wether to follow the line or not.
        - Added follow_me(), to enable the follow tube line switch. However it's not documented.
        - Added get_tube_lines() to return the lines list of given node.
        - Added get_line() to return the line informations.
        - Added set_line() to allow user to define their own line informations.
        - Added load_line() to load the default line informations.
        - Modified Build.PL and Makefile.PL to include Time::HiRes as requirement.
        NOTE: Follow line functionality is not yet fully functional.

1.4     Tue Nov 02 18:06:15 2010
        - Validate the parameter passed to the constructor.
        - Added unit test to validate the parameter passed to the constructor.
        - Fixed the example code in the pod.
        - Added example for method get_name() in the pod.
        - Added example for method init(), load_element() and upcase_element_name() in the pod.

1.3     Tue Nov 02 15:31:22 2010
        - Major changes to the method _process_node().
        - Added example to each method defined in the pod.
        - POD for method show_map_chart() arranged correctly.
        - Added unit test to validate code passed to get_name().

1.2     Mon Nov 01 09:45:41 2010
        - Renamed method _get_name() to get_name() and made it public.
        - Added method set_default_node() to override the user defined node.
        - Minor data cleanup.

1.1     Fri Oct 29 16:30:04 2010
        - Fixed the pod regarding method name for get_node() and get_element().
        - Added unit test for method set_node().

1.0     Fri Oct 29 12:03:43 2010
        - Made the lookup case insensitive.
        - Added ability to define user own node mapping.
        - Added unit test for case insensitive lookup.
        - Added unit test for user defined mapping.

0.09    Fri Oct 29 09:38:10 2010
        - Added Picadilly line data.
        - Added unit test for Picadilly line data.
        - Corrected spelling of Oxford Circus.
        - Corrected spelling of King's Cross St. Pancras.

0.08    Thu Oct 28 18:04:35 2010
        - Added Northern line data.
        - Added unit test for Northern line data.
        - Fixed the unit test test-case-05.t
        - Fixed the unit test test-case-06.t with regard to addition of more data.
        - Fixed the node code for few members of Bakerloo, Central, Jubilee and Victoria line.
        - Fixed the mapping of Bakerloo, Central, Jubilee and Victoria line.
        - Fixed some of the junction mapping as well as added new junction mapping.

0.07    Thu Oct 28 15:53:19 2010
        - Added Metropolitan line data.
        - Added unit test for Metropolitan line data.
        - Fixed the test-case-09.t with regard to addition of more data.

0.06    Thu Oct 28 10:51:01 2010
        - Removed the test code from the pod.
        - Added DESCRIPTION to the pod as suggesed by Peter Makholm.
        - Removed the 'sleep' from get_shortest_route() as suggested by Peter Makholm.
        - Added Readonly as pre-requisite in the Build.PL to make CPAN Testers happy.
        - Added Module::Build v0.36 as pre-requisite to get intalldeps options during build.
        - Updated README regarding pre-requisite installation.

0.05    Wed Oct 27 15:55:29 2010
        - Added District line data.
        - Added Hammersmith & City line data.
        - Fixed Central line data as Fairlop and Hainault both had the same node code.
        - Added method get_node() and get_element() to the Tube::Map module.
        - Fixed the unit test test-case-03.t with regard to addition of more data.

0.04    Wed Oct 27 11:03:34 2010
        - Added node validations.
        - Added unit test for validation functionality.
        - Changed the signature of few methods defined in Map::Tube.
        - Updated the unit test to reflect the changes in the method signature.
        - Updated the perldoc for Map::Tube.
        - Updated the perldoc for Map::Tube::Node.

0.03    Tue Oct 26 16:29:11 2010
        - Added Circle line data.

0.02    Tue Oct 26 11:08:21 2010
        - Added Central line data.

0.01    Mon Oct 25 14:30:11 2010
        - Module Created.
