0.395 2019-11-26 Released-By: PERLANCAR; Urgency: low - No functional changes. - [doc] Mention Bencher::Scenarios::DataCleansing. 0.394 2019-09-01 Released-By: PERLANCAR; Urgency: low - No functional changes. - [ux] Warn when user calls new() without customizing option; recommend her to use get_cleanser() instead. 0.393 2019-09-01 Released-By: PERLANCAR; Urgency: medium - [Incompatible change] No longer convert JSON::PP::Boolean objects to 1/0 when cleaning for JSON output, as they are properly converted to JSON booleans. - [Incompatible change] No longer handle JSON::XS::Boolean or Cpanel::JSON::XS::Boolean objects, as these are normally not produced. - [Bugfix] FromJSON: Fix converting JSON boolean objects. Boolean check on JSON::PP::Boolean objects only works when JSON::PP or JSON::XS etc has been loaded to provide the overloading; otherwise, all JSON::PP::Boolean objects will be converted to 1. We now compare the scalar-deref of them first so regardless of whether any of the abovementioned modules has been loaded. 0.392 2019-08-08 Released-By: PERLANCAR; Urgency: medium - Rename module Data::Clean::JSON -> Data::Clean::ForJSON to be clearer. Rename dist from Data-Clean-JSON to Data-Clean-ForJSON. 0.391 2018-10-09 Released-By: PERLANCAR - No functional changes. - [doc] Explain more about cloning circular references. 0.390 2018-10-09 Released-By: PERLANCAR - Bump prereq version Data::Clean to 0.500, which replaces cloning module of choice from Data::Clone to Sereal::Dclone because the former croaks on JSON::PP::Boolean (scalar-ref) objects. - [Incompatible change] Data::Clean::JSON: flatten JSON::PP::Boolean objects to 1/0 to prevent problem with some clone modules. - [test] Add tests with various clone modules. 0.38 2017-01-15 Released-By: PERLANCAR - [dist] Force update Data::Clean to 0.48. 0.37 2016-09-28 Released-By: PERLANCAR - Convert bigints (Math::BigInt objects) into strings. 0.36 2016-05-27 Released-By: PERLANCAR - Introduce shortcut non-OO functions: clean_json_in_place, clone_and_clean_json. 0.35 2016-05-21 Released-By: PERLANCAR - [Bugfix] Previous release did not correctly set recurse object option, the correct option is !recurse_obj (wrong Data::Clean documentation). - [dist] Bump prereq version Data::Clean to 0.35. 0.34 2016-05-21 Released-By: PERLANCAR - [Incompatible change] By default now recurses into object (see !recurse_object option in Data::Clean documentation). 0.33 2016-04-14 Released-By: PERLANCAR - Split Data::Clean::Base to its own dist as Data::Clean, rebase on Data::Clean. 0.32 2016-03-30 Released-By: PERLANCAR - Avoid perl undef warning because Scalar::Util::reftype() might return undef. 0.31 2016-03-30 Released-By: PERLANCAR - Introduce option "!recurse_obj" to recurse into hash-/array-based objects. 0.30 2016-03-09 Released-By: PERLANCAR - Remove usage of JSON module in test, handle Cpanel::JSON::XS::Boolean. 0.29 2016-01-20 Released-By: PERLANCAR - Stringify version objects. - [Bugfix] Stringifying Regexp erroneously becomes literal 'Regexp' instead of its stringified value because we generate a new 'if' clause when it should be 'elsif'. - Bump prereq version Log::Any::IfLOG to 0.07. 0.28 2015-06-10 Released-By: PERLANCAR - No functional changes. - Mention Data::Abridge. 0.27 2015-06-08 Released-By: PERLANCAR - No functional changes. - Re-release to show up in MetaCPAN index. 0.26 2015-05-23 Released-By: PERLANCAR - No functional changes. - [Bugfix] Don't assume Scalar::Util's blessed has been imported. 0.25 2015-05-23 Released-By: PERLANCAR - Put generated cleanser code in 'src', for other tools that might need it (e.g. Perinci::CmdLine::Inline). 0.24 2015-03-26 Released-By: PERLANCAR - Change the default clone limit from 50 to 1, as this is now the more sensible default now that the previous release has fixed clone limit counting for converted objects. 0.23 2015-03-26 Released-By: PERLANCAR - Don't count object converted into non-ref into clone limit. This solves the problem of only a few DateTime/Time::Moment/other objects being converted into timestamps (if they happen to be referenced twice or more in the data structure, triggering the circular check and quickly hitting the clone limit), because even after each object is converted into a non-ref value, the old ref is still counted. The new release now compares the ref() of the new converted value when doing circular check. 0.22 2015-03-26 Released-By: PERLANCAR - Convert Time::Moment objects like DateTime objects (convert them to epoch value), BTW the fallback unbless routine in Function::Fallback::CoreOrPP seems to have a problem in unblessing Time::Moment objects, but it doesn't have a problem unblessing other blessed scalar refs. 0.21 2015-03-26 Released-By: PERLANCAR - No functional changes. - Replace Log::Any with Log::Any::IfLOG. 0.20 2014-12-10 Released-By: PERLANCAR - No functional changes. - Use new name of renamed/split module SHARYANTO::String::Util -> String::LineNumber & String::PerlQuote. 0.19 2014-11-13 Released-By: PERLANCAR - Avoid perl undef warning & syntax error in generated code [CT]. 0.18 2014-11-12 Released-By: PERLANCAR - No functional changes. - Make Acme::Damn and Data::Clone optional prereqs [#98887]. 0.17 2014-11-07 Released-By: PERLANCAR - Remove unneeded dep. 0.16 2014-04-10 Released-By: SHARYANTO - No functional changes. - Replace Acme::Damn and Data::Clone with Function::Fallback::CoreOrPP. 0.15 2014-02-13 Released-By: SHARYANTO [INCOMPATIBLE CHANGES] - Default command for circular is changed from [replace_with_ref=>'CIRCULAR'] to ['clone']. I believe this is more useful for common cases, e.g. when $ref is [1] then {a=>$ref, b=>$ref} will become {a=>[1], b=>[1]} instead of {a=>[1], b=>'CIRCULAR'}. 0.14 2014-02-13 Released-By: SHARYANTO [ENHANCEMENTS] - Add command: clone (for -circular). 0.13 2013-10-31 Released-By: SHARYANTO [ENHANCEMENTS] - Allow opt '' to process non-references (e.g. numbers, strings, other simple scalars). 0.12 2013-10-31 Released-By: SHARYANTO - No functional changes. - Add some more tests. [BUG FIXES] - Properly quote string in 'replace_with_str' command. [SECURITY] - Check syntax of function and method name in 'call_func' and 'call_method'. 0.11 2013-10-15 Released-By: SHARYANTO - Introduce get_cleanser() to get singleton instance. 0.10 2013-10-14 Released-By: SHARYANTO - Split functionality of JSON::{PP,XS}::Boolean handling to Data::Clean::FromJSON. 0.09 2013-10-14 Released-By: SHARYANTO - No functional changes. Revert back some code. 0.08 2013-10-14 (SHARYANTO) - Get well soon, dad! - Handle JSON::{XS,PP}::Boolean objects (convert to 1/0). 0.07 2013-09-11 Released-By: SHARYANTO - No functional changes. Replace Data::Structure::Util's unbless() with Acme::Damn's damn() because the former currently fails to build on Windows (I'm currently trying to make Perinci::CmdLine work on Windows). 0.06 2013-08-07 Released-By: SHARYANTO [INCOMPATIBLE CHANGES] - Now by default clean objects by unblessing them instead of turning them into class-name strings. - No longer log cleanser code by default. You need to enable using LOG_CLEANSER_CODE. [ENHANCEMENTS] - Add command: unbless. 0.05 2012-08-05 Released-By: SHARYANTO - Fix circular handling. 0.04 2012-08-04 Released-By: SHARYANTO - More documentation. - Handle circular references. 0.03 2012-08-03 Released-By: SHARYANTO - No functional changes. Fix English (cleaner -> cleanser). 0.02 2012-08-03 Released-By: SHARYANTO - Tweak default settings. - Add basic tests. 0.01 2012-08-03 Released-By: SHARYANTO - First release. Incomplete and no tests yet.