Alvis-Convert
view release on metacpan or search on metacpan
lib/Alvis/Wikipedia/Templates.pm view on Meta::CPAN
sub _set_err_state
{
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 errmsg
{
my $self=shift;
return $self->{errstr};
}
sub clearerr
{
my $self=shift;
$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->_init(@_);
$self->{parser}=Alvis::Wikipedia::WikitextParser->new();
if (!defined($self->{parser}))
{
$self->_set_err_state($ERR_PARSER);
return undef;
}
return $self;
}
sub _init
{
my $self=shift;
$self->{maxExpandedTextSize}=1000000;
$self->{maxNofExpansions}=10000;
if (defined(@_))
{
my %args=@_;
@$self{ keys %args }=values(%args);
}
}
sub dump
{
my $self=shift;
my $f=shift;
if (!defined($self->{defs}))
{
$self->_set_err_state($ERR_UNDEF_DUMP);
return 0;
}
my %defs=%{$self->{defs}};
if (store(\%defs,$f))
{
return 1;
}
else
{
$self->_set_err_state($ERR_STORE,"File:\"$f\".");
return 0;
}
}
sub load
{
my $self=shift;
my $f=shift;
my $defs=retrieve($f);
if (!defined($defs))
{
$self->_set_err_state($ERR_RETRIEVE,"File:\"$f\".");
return 0;
( run in 2.292 seconds using v1.01-cache-2.11-cpan-5837b0d9d2c )