/usr/local/CPAN/Data-Maker/Data/Maker/Record.pm


package Data::Maker::Record;
use Moose;
use vars qw( $AUTOLOAD );

our $VERSION = '0.14';

has delimiter => ( is => 'rw' );
has fields => ( is => 'rw', isa => 'ArrayRef', auto_deref => 1 );
has data => ( is => 'rw', isa => 'HashRef' );

sub BUILD {
  my $this = shift;
  if (my $args = shift) {
    if (my $data = $args->{data}) {
      for my $key(keys(%{$data})) {
        $this->{$key} = $data->{$key}; 
      }
    }
  }
}

sub AUTOLOAD {
  my $this = shift;
  my $key = $1 if $AUTOLOAD =~ /(\w+)$/;;
  return $this->{$key};
}

sub delimited {
  my $this = shift;
  return join($this->delimiter, map { 
      if (my $method = $_->{name} ) {
        $this->$method->value;
      }
    } $this->fields);
}

1;