Revision history for Perl extension Hustle::Table
v0.6.0 2023-06-07
[improvements]
- Regular expressions from non core regexp engines are now processed as a
regexp directly. Previously these would not be detected, and assumed a
string to then be compiled into a core regexp
- Added github actions to repo
[tests]
- Added test for regexp matching with a no capture groups
- Added test for regexp matching with a capture group not capturing
[fixes]
- captures are now copied into a new array and not a shared array across the table.
- captures are now returned as per the documentation for regexps with no
captured items (i.e ref to empty array, instead of undef)
- Turn off 'not numeric' warnings in main table code to remove noise when
testing a string input against a numeric matcher
[pod]
- Typo fixes.
- Add a section on new non core Regexp improvements
0.5.5 Wed 17 Aug 2022 15:14:43 AEST
- Added subroutine matching type. A CODE ref can be used to match the input.
Called with the input as the first argument and a reference to the entry value
as the second element
- Fixed bug where default matcher could not be updated with hash or array via
the add method. An exuberant croak test/call prevented the adding of
an entry when the matcher was 'undef'. An undef matcher actually
represents the default matcher (match any). Prior to this fix only
explicit set_default method would update default matcher.
- Fixed documentation around required elements when adding via array
ref should take 3 elements. Was listed as 6
- Reduced scope creation for more performance improvements
0.5.4 Thu 28 Jul 2022 21:40:32 AEST
- Performance improvements
- Dispatcher no longer returns an ref to an empty array
with non regex matcher types.
- Removed superfluous scope creation in dispatcher
- Moved my variable out of dispatcher sub
- Improved dispatch matching performance
- 1.70x approx for static exact matches
- 1.15x approx for regex matches
0.5.2 Wed 22 Jun 2022 07:42:37 AEST
- Compatibility update for Template::Plex v0.4.2
0.5.1 Sat 2 Apr 2022 21:01:36 AEST
- Bump min perl version to 5.26 for @{^CAPTURE} variable
- Fixed issue where a cached entry did not return captures
- Default matcher type is updated to undef to allow cached matcher to do regex match
- Cleaned up tests
0.5.0 Thu 31 Mar 2022 20:15:33 AEST
- Major rewrite
- Simplified and restricted scope
- Table entry stores any scalar value, not just code references
- Regex, begin, end, exact and numeric matchers
- Dispatcher returns matching table entry and regex captures
- Caching always enabled. External management by user application
0.4.1 Mon 7 Mar 2022 17:27:52 AEST
- Remove debugging output which should not have been active
- Remove more unused code
0.4.0 Sat 5 Mar 2022 10:29:11 AEST
- Removed usages of given/when and replaced with if/else/and in generated code
- Matching is now always performed via a regex.
- Uncached "online" dispatcher gained a 10-20% performance boost
- Using Template::Plex template to make the code more readable
- Removed unused code
0.3.0 Fri 10 Sep 2021 11:54:43 AEST
- First argument to dispatched code ref is table entry not string being matched (< v0.2.3)
- Updated test to utilise new first argument
- Spelling fixes
0.2.3 Tue 3 Aug 2021 15:19:45 AEST
- Added simple two element entry add
- Constructor can take default handler directly
- Spelling fixes
0.2.2
- Fix error in existing test script
- Added more comprehensive tests
- Check for valid cache (hash ref) when adding entry
- Check for defined matcher when adding entry
- Allow adding a 'flattened' entry (4 element)
0.2.1 Wed 23 Jun 2021 15:42:57 AEST
- Attempting to fix Tester errors.
- Updated min perl version => 5.24
- Added missing dep common::sense
0.2 Tue 22 Jun 2021 21:32:35 AEST
- Spelling correction
- Documentation formatting and fixes
- Removal of unused exporting code
- Adding missing dependencies on enum in Makefile.PL
- Added MYMETA to distribution
0.1 Tue 22 Jun 2021 13:13:05 AEST
- First release almost ready for CPAN