Revision history for Perl module Module::Generic 0.15.1 2021-06-20T10:19:58+0900 - Resubmission due to bundling error 0.15.0 2021-04-18T12:05:35+0900 - Corrected a minor bug in Module::Generic::Dynamic, ignoring now fields that do not contain any valid chracter to become a method - Added method as_array(), offset() and merge() in Module::Generic::Array - Added method empty() in Module::Generic::Array as an alias to reset() - Added methods as_array(), as_number(), join() and prepend() in Module::Generic::Scalar - Added method as_array(), as_scalar() in Module::Generic::Number - Added method as_array() and as_scalar() in Module::Generic::Boolean - Added support for changing the offset position in a for loop in Module::Generic::Array by returning a scalar reference of an integer - Added the return method in Module::Generic::Array to end embedded loops. - Added methods even, odd, remove and unique (based on List::Util::uniq) in Module::Generic::Array - Added TO_JSON to Module::Generic::Array, Module::Generic::Hash and Module::Generic::Scalar to allow its object to be encoded with JSON. You still need to set the convert_blessed JSON property to true though: my $j = JSON->new->convert_blessed; - In Module::Generic::Array, the following methods have been changed to return a Module::Generic::Scalar object in object context and if the value retrieved from the array is not a reference of any sort: first, get, index, last, pop, shift. The splice method has been modified to return a new Module::Generic::Array object in object context when only an offset and length, or just an offset was provided. - Added support method _is_class_loadable in Module::Generic to check if a module can be loaded without loading it - Added support method _get_args_as_array in Module::Generic - Corrected an obscure bug in clone() when using Want. - Added method new_null in Module::Generic - Added modules Module::Generic::File and Module::Generic::Finfo to deal with files - Added inline class Module::Generic::Scalar::IO that inherits from IO::Scalar and enables to print to scalar - Added module Module::Generic::SharedMem for easy-to-use shared memory interface 0.14.2 2021-04-03T17:22:00+0900 - Corrected a bug in _set_get_scalar_as_object to accept overloaded objects that implement stringification - Corrected a bug in _set_get_hash 0.14.1 2021-03-31T14:50:43+0900 - Correcting a test unit in datetime and upgrading version numbers for sub modules 0.14.0 2021-03-20T21:43:18+0900 - Added Module::Generic::Datetime and split inline modules to their own files - Added method _get_args_as_hash to get methods parameters as hash reference whether they were provided initially as such or not 0.13.6 2021-02-14T13:01:16+0900 - Improved test unit for cygwin not supporting crypt 0.13.5 2021-02-06T11:46:18+0900 - Corrected a mising require for DateTime::Format::Strptime - Improved the _warnings_is_enabled helper method 0.13.4 2021-01-25T18:47:55+0900 - Moved the requirement on Apache module to the BEGIN block as it should. 0.13.3 2020-12-08T11:12:15+0900 - Removed method message_switch - Added method _set_get_object_without_init for object that cannot just simply be initiated without specific parameters, such as Apache2::RequestRec. 0.13.2 2020-11-20T22:14:54+0900 - Corrected method _set_get_class_array when testing if data received are an array - Added parameter alias 'package' to parameter 'class' in _set_get_class - Added data type alias in _set_get_class for convenience. - Corrected pass_error to create an error object when it is passed a string rather than an error object. - Expanded method _parse_timestamp to include keyword 'now', relative timestamp and unix timestamp. 0.13.1 2020-09-20T08:12:16+0900 - Updated the error method to accept and use an Exception object as parameter - Updated the method throw in Module::Generic::Exception to either take a string and instantiate a new exception object or use the current one. - Improved the error() method to better report from the start of the call stack, excluding internal package and better handling exception object - Added "prefix" option in method Module::Generic::message to specify something else than "##" when displaying debugging message. - Updated clear_error to return $self instead of just 1 and allow chaining - Improved message_switch to avoid replacing existing message method - Modified __create_class that was missing the handling of object_array_object type of method. - Modified as_hash so that DateTime object are converted to string 0.13.0 2020-07-10T10:30:10+0900 - Added alias method _set_get_number_as_object for convenience and pointing to _set_get_number - Added the method append in Module::Generic::Scalar - Added an iterator class with Module::Generic::Iterator and Module::Generic::Iterator::Element - Added methods index, iterator and pos in Module::Generic::Array - Improved documentation for Module::Generic::Array - Corrected 2 typos in pod for Module::Generic::Scalar - Added method _set_get_lvalue to make it easy to implement object oriented lvalue methods - Changed the _set_get_number so that now it can also be accesed as lvalue - Added method is_even and is_odd to Module::Generic::Number - Added helper method _to_array_object to make it easy to create array object out of any parameters - Added method "has" as an alias to method "exists" to Module::Generic::Array and Module::Generic::Hash - dump now() uses Data::Dump instead of Data::Printer that offers a cleaner output - Added method map() map_array and map_hash in Module::Generic::Hash - Modified method as_hash in Module::Generic::Array to take an optional hash reference of options - Module::Generic::Hash object can now be instantiated with no hash provided. Before it required an hash reference to be provided to instantiate the object. - corrected methods map_array() and map_hash() in Module::Generic::Hash - Updated _set_get_url to better capture all kinds of url 0.12.16 2020-06-17T15:03:17+0900 - Added the helper method _is_a to simplify the check for object class - Added method get() and list() in Module::Generic::Array - Added method tr in Module::Generic::Scalar - Corrected error in exiting a for/foreach loop in Module::Generic::Array - Switched clone() method to using XS module Clone::clone() - Added methods new_array, new_hash, new_number and new_scalar in Module::Generic to make it more convenient to create object from those classes - Added some missing documentation to Module::Generic::Scalar 0.12.15 2020-06-16T12:22:19+0900 - Fixed some test units 0.12.14 2020-05-28T05:46:04+0900 - Tweaked Module::Generic::Number::_set_get_prop in my last desperate attempt to correct this tedious bug. Should fix RT #132714 0.12.13 2020-05-27T13:58:324+0900 - Corrected (hopefully) an issue whereby some undefined hash keys would not be undefined affecting test unit 0.12.12 2020-05-25T13:55:00+09:00 - Corrected issues with Number::Format whereby it would revert to some default, so made all of the Number::Format argument explicit, even setting them to '' to avoid Number::Format from using its inadequate default - Implemented a workaround to Number::Format on Windows whereby some of the POSIX::localconv values are -1. When there is no value, such as when the locale is C or when it is on Windows (value being -1), then numeric values default to 0 - Improved test units for when running on Windows Strawberry 0.12.11 2020-05-25T14:56:154+0900 0.12.10 2020-05-24T13:00:034+0900 - Corrected bug in test unit for Module::Generic::Number. Fix bug RT #132671 - Updated Module::Generic::Scalar to return undef when creating an object with an undefined value. Fix bug RT #132681 (https://rt.cpan.org/Ticket/Display.html?id=132681) 0.12.9 2020-05-23T15:00:574+0900 - Corrected bug in test unit for Module::Generic::Number 0.12.8 2020-05-22T16:15:004+0900 - Change POSIX requirement to version 1.53_01 and perl minimum version to v5.26.1 0.12.7 2020-05-22T16:15:004+0900 - Corrected RT bug #132664 https://rt.cpan.org/Public/Bug/Display.html?id=132664 in Module::Number::init 0.12.6 2020-05-21T14:52:004+0900 - Corrected a small bug in creating a Number::Format object. 0.12.5 2020-05-20T23:22:004+0900 - Change from TryCatch to Nice::Try because TryCatch got broken with release of Devel::Declare version 0.006020 0.12.4 2020-05-16T17:22:004+0900 - Specified more clearly version 0.006019 for Devel::Declare, because upper version break TryCatch 0.12.3 2020-05-16 - Corrected minor issues at line at lines 5428 and 5430 where a typo existed 0.12.2 2020-05-05 - Added Module::Generic::Number, its test units and pod documentations - _set_get_number now sets and gets a Module::Generic::Number instead of Text::Number - Added Module::Generic::Hash providing an object oriented approach to hash while stil enabling direct access as usual - Added missing test units 0.12.1 2020-05-03 - Corrected issue when @_ contains an undef value in __instantiate_object 0.12.0 2020-05-01 - Added colour_closest, colour_format, colour_parse and message_colour - Added missing pod documentation 0.11.9 2020-04-27 - Removed some ambiguity in the use of shift 0.11.8 2020-04-25 - Changed init when an object preset value looks like a package name, this now also requires that the package be loaded to consider it as a package requirement. Example: $self->{url} = 'URI'; requires an object URI for the object property 'url' - error() method now respect the 'no warnings' pragma - If 'no warnings' is set, an error wil still be set, but no warning will be printed out on STDERR 0.11.7 2020-03-30 0.11.6 2020-03-27 0.11.5 2020-03-27 0.11.4 2020-03-27 0.11.3 2020-03-26 0.11.2 2020-03-06 0.11.1 2020-02-04 0.11.0 2020-02-04 0.10.2 2020-01-11 0.10.1 2020-01-10 0.10.0 2020-01-07 0.9.0 2020-01-04 0.8.0 2020-01-01 0.7.2 2019-12-28 0.7.1 2019-12-27 0.7.0 2019-12-25 0.6.11 2019-12-13 0.6.10 2019-11-28 0.6.9 2019-11-27 0.6.8 2019-11-14 0.6.7 2019-11-08 0.6.6 2019-11-03 - Adjusted the functionning of _set_get_hash_as_object so that it always returns an object even when there was no data. This is to avoid the perl error of "Can't call method "this_property" on an undefined value" when doing something like my_dynamic_hash->this_property 0.6.5 2019-11-02 - Added an inline package Module::Generic::Boolean to handle boolean value and the _set_get_boolean method - Added the use of Class::Load for loading dynamically packages as used in _instantiate_object - Added the methods true, false under Module::Generic to be used in _set_get_boolean and _is_class_loaded and _load_class which are wrappers for Class::Load::is_class_loaded and Class::Load::load_class 0.6.4 2019-10-31 - Added handling of undef passed as a parameter to some of the _set_get_* methods 0.6.3 2019-10-23 - Add _set_get_hash_as_object with recursive processing 0.6.1 2019-10-19 0.5.5 2919-10-13 0.2.0 2019-08-28 - Switched from Class::Struct to inner package for management of exceptions for better granularity 0.1.0 2019-08-26 - Initial version from pre-existing work done