Acme-Tategaki
view release on metacpan or search on metacpan
lib/Acme/Tategaki.pm view on Meta::CPAN
sub tategaki {
my $text = shift;
$text =~ s/$_\s?/$_ã/g for @punc;
my @text = split /\s/, $text;
return _convert_vertical(@text);
}
sub _convert_vertical {
my @text = @_;
@text = map { [ split //, $_ ] } @text;
@text = transpose_ragged( \@text );
@text = map { [ map {$_ || 'ã' } @$_ ] } @text;
@text = map { join 'ã', reverse @$_ } @text;
for (@text) {
$_ =~ tr/ï¼â¥âï¼âã¼ããââââï¼=,ããããããâ¦/ï¼¼ï¼ï½ï½ï½ï½Â¬âââââ॥॥ï¸ï¸ï¸ï¸ï¸ï¸ï¸ï¸/;
$_ =~ s/ã/â« /g;
$_ =~ s/ã/ â/g;
$_ =~ s/ã/â /g;
$_ =~ s/ï¼»/ââ/g;
$_ =~ s/ï¼½/ââ/g;
$_ =~ s/\[/ââ/g;
$_ =~ s/\]/ââ/g;
t/01_tategaki.t view on Meta::CPAN
use Acme::Tategaki;
use Encode;
use utf8;
filters {
input => [ qw/chomp/ ],
expected => [ qw/chomp/ ],
};
for my $block (blocks) {
is( tategaki(map {decode_utf8 $_} $block->input), decode_utf8 $block->expected );
}
done_testing;
__DATA__
===
--- input
ã»ãããµããã»ãâ
--- expected
ã»ããµãã»
t/02_tategaki_one_line.t view on Meta::CPAN
use Acme::Tategaki;
use Encode;
use utf8;
filters {
input => [ qw/chomp/ ],
expected => [ qw/chomp/ ],
};
for my $block (blocks) {
is( tategaki_one_line(map {decode_utf8 $_} $block->input), decode_utf8 $block->expected );
}
done_testing;
__DATA__
===
--- input
ã»ãããµããã»ãâ
--- expected
ã»
( run in 0.332 second using v1.01-cache-2.11-cpan-65fba6d93b7 )