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 )