Revision history for Perl module List::Objects::WithUtils 2.006001 2013-12-26 - Add array->intersection(), array->diff(), hash->diff() 2.005001 2013-12-22 - Add array->indexes() (from List::MoreUtils) - Add array->last_index, array->last_where - array->first moved to array->first_where; backwards compatible ->first remains for now, but may be eventually placed in a warn-then-remove deprecation cycle. - Add array->first_index (same as ->firstidx); these changes should add some sanity to first/last method naming (first_where, first_index, last_where, last_index) 2.004003 2013-12-19 - Run non-XS List::UtilsBy tests if Test::Without::Module is available 2.004002 2013-12-17 - Use List::UtilsBy::XS if available (TOBYINK rt#91461) 2.004001 2013-12-15 - Add array->rotate(), array->rotate_in_place() - Optimize hash->new() 2.003001 2013-12-14 - Add hash->intersection() - Minor optimizations - Fix unnecessary List::Objects::Types dep in some tests 2.002005 2013-12-13 - Fix single-arg array->splice() 2.002004 2013-12-06 - Minor low-level behavior changes; bring Role::Hash in line with Role::Array blessed_or_pkg & ->copy - Test coverage improvements 2.002003 2013-12-06 - Bad import args now die rather than warn - Optimize methods returning arrays - hash->new() matches array->new() behavior - Test coverage improvements 2.002002 2013-11-22 - Drop Hash::Util in favor of tied immutable hashes; these now work just like immutable array types (and no longer throw an exception on unknown key fetches) 2.002001 2013-10-27 - Add ->is_mutable / ->is_immutable methods - Add array->kv() - Add array->elements() (This is the same as '->all', but it's natural for people coming from Moose and similar to the perl6 'elems' method.) 2.001001 2013-10-03 - Import all constructor functions by default (via 'use List::Objects::WithUtils') - Add 'immhash' immutable hashes - Add 'immarray_of' and 'immhash_of' immutable type-checking lists - New array methods: delete_when(), end(), inflate() - hash()->clear returns the hash object - Immutable array behavior should now work consistently across any perl version; no longer mucking about with Internals::SvREADONLY - Immutable & type-checking behavior moved to roles - Role::WithJunctions moved to Role::Array::WithJunctions - t/ reorganized to be slightly more managable 1.012001 2013-09-16 - Add hash->kv_sort() 1.011001 2013-09-08 - Depend on newer Type::Tie (we need SPLICE) 1.011000 2013-09-05 - Add 'hash_of' (List::Objects::WithUtils::Hash::Typed) (Toby Inkster - github PR #3) These hashes perform type-checking on their values via Type::Tie. - List::Objects::WithUtils/Lowu now accept ':functions' import tag (':all' without autobox) - Array::Type now uses a Type::Tie tied array (Toby Inkster - github PR #2) This is faster (no more overload or method overrides), and allows for 'push @$typedarr, $foo' with type coercion/checking. 1.010002 2013-09-04 - Fix array->tuples() to skip adding unnecessary undefs - Fix immarray->tuples() 1.010001 2013-09-01 - Fix array_of() assertions on non-coercible types 1.010000 2013-09-01 - Add 'array_of' (List::Objects::WithUtils::Array::Typed) These array-type objects perform Type::Tiny-compatible type-checking against their elements (when constructed and when elements are added). - Add array()->tuples (with Type::Tiny support) - Add array()->validated($type) 1.009005 2013-09-01 - Add array()->mapval (borrowed from Data::Munge) - Drop minimum Perl prereq to perl-5.6 1.009004 2013-08-23 - Pass tests on 5.19.3 - carp() on unknown import tags 1.009003 2013-08-10 - Fix ->flatten(_all) on 5.8 1.009002 2013-08-09 - No code changes. Fix 'Changes' to match CPAN::Changes::Spec, courtesy of Sergey Romanov -> https://github.com/avenj/list-objects-withutils/pull/1 1.009001 2013-08-09 - Fix ->flatten(_all) behavior regarding ARRAY-type objects; consumers of List::Objects::WithUtils::Role::Array are flattened, other ARRAY-type objects should be left alone.` 1.009000 2013-08-02 - Add array()->random - POD fixes 1.008000 2013-07-06 - Add array()->flatten($depth) 1.007000 2013-06-30 - Backwards incompatible change; the return value of hash->set() is now the object, in order to be consistent with array->set() - Fix hash->get(@keys) return value - Add array()->flatten_all - Reorganize Role::Array POD 1.006001 2013-06-22 - Fix ->inflate() on autoboxed hashes; add test for same. 1.006000 2013-06-22 - Add hash->inflate() to simplify creating little struct-like objects out of hashes. - Add a ->TO_JSON method to array and hash objects. (Serializing these objects to JSON is a pretty common use case for me.) 1.005000 2013-06-21 - Turn junctions into List::Objects::WithUtils::Array subclasses, allowing easier junction manipulation. - Minor ->sort() optimization. 1.004000 2013-06-19 - Implement streamlined junctions. This removes Sub::Exporter from the dependency chain; additionally, we do not need the extra methods - and probably do not want the smart-match support - provided by Perl6::Junction and Syntax::Keyword::Junction. 1.003001 2013-06-16 - Missing dep on 'parent' 1.003000 2013-06-16 - Add 'use Lowu;' shortcut to import all available functionality. - Add autoboxing support via List::Objects::WithUtils::Autobox and make autoboxing available via "use List::Objects::WithUtils 'autobox'" (as well as the 'use Lowu;' shortcut) - More flexible import() in List::Objects::WithUtils; allows for exporting selected functionality to designated target packages. - Added 'all'/':all' import tags to List::Objects::WithUtils; bare import list still just enables array/immarray/hash, 'all' adds autoboxing. - Add array()->export to line up with hash()->export. - POD improvements. 1.002002 2013-06-15 - Fix CarpLevel for unimplemented immutable array object methods 1.002001 2013-06-03 - Simplify read-only array constructor - Cleanups / test tweaks 1.002000 2013-06-03 - Add immarray() immutable array objects - Add hash->copy() to match array->copy() - Add array->head(), array->tail() methods - POD, test fixups 1.001001 2013-06-02 - Sanity check ->mesh() arguments. - Other minor cleanups. 1.001000 2013-06-02 - Add array->part() 1.000003 2013-06-02 - Add array->mesh() 1.000002 2013-05-19 - Documentation tweaks. 1.000001 2013-05-10 - Minor documentation fix (->natatime's iterator returns a list, not an ARRAY) 1.000000 2013-05-05 - Documentation shuffle. - No functional changes. 0.003000 2013-03-16 - Add hash->sliced() 0.002004 2013-03-14 - Documentation fixes. 0.002003 2013-03-10 - Fix missing POD for array->natatime with coderef callback. 0.002002 2013-03-10 - POD cleanups, some small fixes. - New release tests and rectify missing test for array->join 0.002001 2013-03-10 - Missing dependency in dist.ini 0.002000 2013-03-10 - Add Junctions via Role::WithJunctions ( array->any_items / array->all_items ) 0.001001 2013-03-10 - Initial release