Alvis-Convert
view release on metacpan or search on metacpan
lib/Alvis/Wikipedia/Variables.pm view on Meta::CPAN
{
my $self=shift;
my $errcode=shift;
my $errmsg=shift;
if (!defined($errcode))
{
confess("set_err_state() called with an undefined argument.");
}
if (exists($ErrMsgs{$errcode}))
{
if ($errcode==$ERR_OK)
{
$self->{errstr}="";
}
else
{
$self->{errstr}.=" " . $ErrMsgs{$errcode};
if (defined($errmsg))
{
$self->{errstr}.=" " . $errmsg;
}
}
}
else
{
confess("Internal error: set_err_state() called with an " .
"unrecognized argument ($errcode).")
}
}
sub clearerr
{
my $self=shift;
$self->{errstr}="";
}
sub errmsg
{
my $self=shift;
return $self->{errstr};
}
##########################################################################
#
# Public methods
#
##########################################################################
sub new
{
my $proto=shift;
my $class=ref($proto)||$proto;
my $parent=ref($proto)&&$proto;
my $self={};
bless($self,$class);
$self->_set_err_state($ERR_OK);
$self->_init(@_);
$self->{parser}=Alvis::Wikipedia::WikitextParser->new();
if (!defined($self->{parser}))
{
$self->_set_err_state($ERR_PARSER);
return undef;
}
$self->{templates}=Alvis::Wikipedia::Templates->new();
if (!defined($self->{templates}))
{
$self->_set_err_state($ERR_TEMPL);
return undef;
}
return $self;
}
sub _init
{
my $self=shift;
if (defined(@_))
{
my %args=@_;
@$self{ keys %args }=values(%args);
}
}
sub add_template
{
my $self=shift;
my $name=shift;
my $def=shift;
if (!$self->{templates}->add($name,$def))
{
$self->_set_err_state($ERR_TEMPL_ADD,
"Name:\"$name\", Definition:\"$def\".");
return 0;
}
return 1;
}
sub dump_templates
{
my $self=shift;
my $f=shift;
if (!$self->{templates}->dump($f))
{
$self->_set_err_state($ERR_TEMPL_DUMP,$self->{templates}->errmsg());
return 0;
}
return 1;
( run in 1.557 second using v1.01-cache-2.11-cpan-39bf76dae61 )