Acme-Pinoko

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

NAME
    Acme::Pinoko - Acchonburike!

SYNOPSIS
      use Acme::Pinoko;
      use utf8;

      my $pinoko = Acme::Pinoko->new(%config);
      print $pinoko->say('ピノコ18のレディなのよ');
      # -> ピノコ18のレレイなのよさ

DESCRIPTION
    Acme::Pinoko converts standard Japanese text to Pinoko-ish Japanese
    text.

    Pinoko is a Japanese manga character. She speaks with a lisp and
    therefore her spoken Japanese is slightly different from standard
    Japanese.

METHODS
  $pinoko = Acme::Pinoko->new(%config)
    Creates a new Acme::Pinoko instance.

      my $pinoko = Acme::Pinoko->new(
          parser        => 'Text::MeCab' or 'Text::KyTea',  # default is 'Text::MeCab'
          parser_config => \%parser_config,                 # default is undef
      );

  $pinoko_ish_text = $pinoko->say($text)
    Pinoko says $text.

AUTHOR
    pawa <pawapawa@cpan.org>

SEE ALSO
    <https://en.wikipedia.org/wiki/Black_Jack_%28manga%29#Characters>

LICENSE
    This library is free software; you can redistribute it and/or modify it

benchmark/pinoko_vs_geso.pl  view on Meta::CPAN

cmpthese(
    timethese(-1, {
        'kytea_pinoko'  => \&kytea_pinoko,
        'mecab_pinoko'  => \&mecab_pinoko,
        #'geso'          => \&geso,
    })
);

sub kytea_pinoko
{
    my $result = $kytea_pinoko->say($text);
}

sub mecab_pinoko
{
    my $result = $mecab_pinoko->say($text);
}

=begin
sub geso
{
    my $result = Acme::Ikamusume->geso($text);
}
=end
=cut

lib/Acme/Pinoko.pm  view on Meta::CPAN


=for test_synopsis
my (%config);

=head1 SYNOPSIS

  use Acme::Pinoko;
  use utf8;

  my $pinoko = Acme::Pinoko->new(%config);
  print $pinoko->say('ピノコ18のレディなのよ');
  # -> ピノコ18のレレイなのよさ

=head1 DESCRIPTION

Acme::Pinoko converts standard Japanese text to Pinoko-ish Japanese text.

Pinoko is a Japanese manga character. She speaks with a lisp and
therefore her spoken Japanese is slightly different from standard Japanese.

=head1 METHODS

=head2 $pinoko = Acme::Pinoko->new(%config)

Creates a new Acme::Pinoko instance.

  my $pinoko = Acme::Pinoko->new(
      parser        => 'Text::MeCab' or 'Text::KyTea',  # default is 'Text::MeCab'
      parser_config => \%parser_config,                 # default is undef
  );

=head2 $pinoko_ish_text = $pinoko->say($text)

Pinoko says $text.

=head1 AUTHOR

pawa E<lt>pawapawa@cpan.orgE<gt>

=head1 SEE ALSO

L<https://en.wikipedia.org/wiki/Black_Jack_%28manga%29#Characters>

t/02_say.t  view on Meta::CPAN

use warnings;
use Acme::Pinoko;
use Test::More;


SKIP: {
    eval { require Text::MeCab; };
    skip 'Text::MeCab not installed', 1 if $@;

    my $pinoko = Acme::Pinoko->new;
    is($pinoko->say('ABC'), 'ABC', 'normal text');
    is($pinoko->say(undef), undef, 'undefined text');
    is($pinoko->say(''),    '',    'empty text');
    is($pinoko->say(0),     '0',   'zero');
    is($pinoko->say("\n"),  "\n",  '\n');
    is($pinoko->say("\t"),  "\t",  '\t');
}

SKIP: {
    eval { require Text::KyTea; };
    skip 'Text::KyTea not installed', 1 if $@;

    my $pinoko = Acme::Pinoko->new(parser => 'Text::KyTea');
    is($pinoko->say('ABC'), 'ABC', 'normal text');
    is($pinoko->say(undef), undef, 'undefined text');
    is($pinoko->say(''),    '',    'empty text');
    is($pinoko->say(0),     '0',   'zero');
    is($pinoko->say("\n"),  "\n",  '\n');
    is($pinoko->say("\t"),  "\t",  '\t');
}

done_testing;

t/03_say_mecab.t  view on Meta::CPAN

binmode Test::More->builder->$_ => ':utf8'
    for qw/output failure_output todo_output/;

use Acme::Pinoko;

my $pinoko = Acme::Pinoko->new(parser => 'Text::MeCab');

run
{
    my $block = shift;
    is($pinoko->say($block->input), $block->expected);
};


__DATA__

=== No change
--- input:    せっかくいいとこなのにぃ
--- expected: せっかくいいとこなのにぃ

=== No change

t/04_say_kytea.t  view on Meta::CPAN

binmode Test::More->builder->$_ => ':utf8'
    for qw/output failure_output todo_output/;

use Acme::Pinoko;

my $pinoko = Acme::Pinoko->new(parser => 'Text::KyTea');

run
{
    my $block = shift;
    is($pinoko->say($block->input), $block->expected);
};


__DATA__

=== No change
--- input:    せっかくいいとこなのにぃ
--- expected: せっかくいいとこなのにぃ

=== No change



( run in 0.757 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )