use strict;
use warnings;
package App::Addex::AddressBook;
{
$App::Addex::AddressBook::VERSION = '0.025';
}
# ABSTRACT: the address book that addex will consult
use App::Addex::Entry;
use Carp ();
sub new {
my ($class, $arg) = @_;
Carp::croak "no addex argument provided" unless $arg->{addex};
bless { addex => $arg->{addex} } => $class;
}
sub addex { $_[0]->{addex} }
sub entries {
Carp::confess "no behavior defined for virtual method entries";
}
1;
__END__
=pod
=head1 NAME
App::Addex::AddressBook - the address book that addex will consult
=head1 VERSION
version 0.025
=head1 METHODS
=head2 new
my $addr_book = App::Addex::AddressBook->new(\%arg);
This method returns a new AddressBook. Its implementation details are left up
to the subclasses, but it must accept a hashref as its first argument.
Valid arguments are:
addex - required; the App::Addex object using this address book
=head2 addex
my $addex = $addr_book->addex;
This returns the App::Addex object with which the address book is associated.
=head2 entries
my @entries = $addex->entries;
This method returns the entries in the address book as L<App::Addex::Entry>
objects. Its behavior in scalar context is not yet defined.
This method should be implemented by a address-book-implementation-specific
subclass.
=head1 AUTHOR
Ricardo SIGNES <rjbs@cpan.org>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2006 by Ricardo SIGNES.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut