Most recent changes on top.

Sun Jul  1 18:42:12 EDT 2007

- Removed test bug.

Mon Jun  6 02:12:02 EDT 2005

- Added README to the manifest...

Sun Jun  5 22:29:59 EDT 2005

- Replace eval's of datatypes to get base data type with
  Scalar::Util. That module is stable enough to be reasonably
  installed along with this one and simplifies this code quite a bit.


Tue Sep 28 14:20:05 EDT 2004

- Fix POD typos.

- Add README

Sat Sep 25 02:44:18 EDT 2004

- Update the Makefile.PL description.

- Added NEXT to the required modules.

Sat Sep 25 01:28:29 EDT 2004

- Single array type didn't cut it. Split them into queue and 
  stack. Both push the data at each step, queue uses EVERY::init
  stack uses EVERY::LAST::init. 

  Difference is that given a base class with qw( a b c ) and 
  derived of qw( d e f ) the stack ends up with qw( d e f a b c )
  where the queue has qw( a b c d e f ).

  From test.pl:

  Given:

	package MyArray;

	use NEXT::init [ qw( a b c ) ];

	package Queue;

	use base qw( MyArray );

	use NEXT::init qw( :type=queue d e f );

	package Stack;

	use base qw( MyArray );

	use NEXT::init qw( :type=stack d e f );

  Running the code:

	my $obj8 = Queue->construct( qw( queue ) );

	my $obj9 = Stack->construct( qw( stack ) );

  Yields:

	Queue vs. Stack:

	bless( [
	  'queue',
	  'd',
	  'e',
	  'f',
	  'a',
	  'b',
	  'c'
	], 'Queue' )


	bless( [
	  'a',
	  'b',
	  'c',
	  'd',
	  'e',
	  'f',
	  'stack'
	], 'Stack' )

- Removed merge, the constructor and a single init are 
  all that's required. 

- *meta is reused for both the data (hash or array) and 
  a method that returns the referent. Main use of the 
  sub is to get something un-blessed to determine the 
  base data type to use for an object.

- init's use @{*$meta} and %{*$meta} to grab current
  values -- original code used the internal data referent
  which led to static data. This allows a class that 
  uses N::i to modify its metadata on the fly and have 
  new object utilize the updated data.

- Base data types (ones without a use base that involves
  N::i) must be passed as referents or specified via 
  :type=[hash|queue|stack]. This ensures that the
  data is initialized properly. Probably the simplest 
  way is to pass the most-basic data as referents in all
  cases and use the 'stack' type only when necessary
  (arrays default to queue). After that use simple lists
  for derived types and let the import handle the rest 
  for itself.

- Comments.

- POD.

Tue Sep  7 18:57:45 EDT 2004

- Replace no strict 'refs' with Symbol.

- Comments.

- Arg's can now be :foo=bar to set base type of object.

- Install &meta to return metadata referent. Allows
  ref $obj->meta to get a base type for data-less objects.


Fri Aug 13 15:10:08 EDT 2004

- Initial release. Code tested in-house,
  interface seems stable.