Acme-Nyaa
view release on metacpan or search on metacpan
lib/Acme/Nyaa.pm view on Meta::CPAN
package Acme::Nyaa;
use strict;
use warnings;
use utf8;
use 5.010001;
use Encode;
use Module::Load;
use version; our $VERSION = qv('0.0.10');
my $Default = 'ja';
sub new {
# Constructor of Acme::Nyaa
my $class = shift;
my $argvs = { @_ };
return $class if ref $class eq __PACKAGE__;
$argvs->{'objects'} = [];
$argvs->{'language'} ||= $Default;
$argvs->{'loaded-languages'} = [];
$argvs->{'objectid'} = int rand 2**24;
$argvs->{'encoding'} = q();
$argvs->{'utf8flag'} = undef;
my $nyaan = bless $argvs, __PACKAGE__;
my $klass = $nyaan->loadmodule( $argvs->{'language'} );
my $this1 = $nyaan->findobject( $klass, 1 );
$nyaan->{'subclass'} = $klass;
return $nyaan;
}
sub subclass {
my $self = shift;
return $self->{'subclass'};
}
sub language {
my $self = shift;
my $lang = shift // $self->{'language'};
return $self->{'language'} if $lang eq $self->{'language'};
return $self->{'language'} unless $lang =~ m/\A[a-zA-Z]{2}\z/;
my $nekoobject = undef;
my $referclass = $self->loadmodule( $lang );
return $self->{'language'} unless length $referclass;
return $self->{'language'} if $referclass eq $self->subclass;
$nekoobject = $self->findobject( $referclass, 1 );
return $self->{'language'} unless ref $nekoobject eq $referclass;
$self->{'language'} = $lang;
$self->{'subclass'} = $referclass;
return $self->{'language'};
}
sub objects {
my $self = shift;
$self->{'objects'} ||= [];
return $self->{'objects'};
}
sub cat {
my $self = shift;
my $text = shift // return q();
my $neko = $self->findobject( $self->subclass, 1 );
return $text unless ref $neko;
return $neko->cat( $text );
}
sub neko {
my $self = shift;
my $text = shift // return q();
my $neko = $self->findobject( $self->subclass, 1 );
return $text unless ref $neko;
return $neko->neko( $text );
}
sub nyaa {
my $self = shift;
my $text = shift // q();
my $neko = $self->findobject( $self->subclass, 1 );
( run in 1.912 second using v1.01-cache-2.11-cpan-ceb78f64989 )