CGI-Listman

 view release on metacpan or  search on metacpan

Listman/line.pm  view on Meta::CPAN

by new or this method.

=over

=item Parameters

=over

=item fields

A reference to an ARRAY representing a database record.

=back

=item Return values

This method returns nothing.

=back

=cut

sub set_fields {
  my ($self, $fields_ref) = @_;

  croak "Fields already defined for line.\n"
    if (defined $self->{'data'});

  $self->{'data'} = $fields_ref;
  $self->{'_updated'} = 1;
}

=pod

=head2 update_fields

Since I<set_fields> can only be called once and updating a row requires
some internal handling, you need to use this method whenever you update
a line's data.

=over

=item Parameters

=over

=item fields

A reference to an ARRAY representing a database record.

=back

=item Return values

This method returns nothing.

=back

=cut

sub update_fields {
  my ($self, $fields_ref) = @_;

  delete $self->{'data'}
    if (defined $self->{'data'});

  $self->{'data'} = $fields_ref;
  $self->{'_updated'} = 1;
}

=pod

=head2 line_fields

Use this method whenever you want to access the data encapsulated within
this object. Be careful to not modify the resulting fields unless you
want to do so since it returns the actual data and not a copy.

=over

=item Parameters

This method takes no parameter.

=item Return values

A reference to an ARRAY representing the instance of I<CGI::Listman::line>.

=back

=cut

sub line_fields {
  my $self = shift;

  return $self->{'data'};
}

### private methods

sub _build_from_listman_data {
  my ($self, $listman_data_ref) = @_;

  my @backend_data = @$listman_data_ref;

  my $number = shift @backend_data;
  $number =~ m/^([0-9]*)$/;
  $number = $1 or croak 'Wrong number ("'.$number
    .'") containing non-digit characters'."\n";

  $self->{'number'} = $number;
  $self->{'timestamp'} = shift @backend_data;
  $self->{'seen'} = shift @backend_data;
  $self->{'exported'} = shift @backend_data;
  $self->{'data'} = \@backend_data;

  $self->{'_updated'} = 0;
  $self->{'_new_line'} = 0;
}

1;



( run in 1.736 second using v1.01-cache-2.11-cpan-13bb782fe5a )