その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

Acme::AjiFry をリリースいたしました

Taiki Kawakami / Acme-AjiFry-0.05 - search.cpan.org

Acme::AjiFry なるCPAN モジュールをリリース致しました。
CPAN Author になってから初のモジュールリリースなので、つまりは処女作です。
処女なのにAcme とはこれ如何に。

Acme::AjiFry とは

アジフライ語に翻訳したり、アジフライ語から翻訳したりしてくれるモジュールです。

「リリース致しました」とか言ってるけど、バージョンが0.05 じゃん

すみません、色々あったのでバージョンが重なってしまいました。
(License がUNKNOWN になっちゃってたり、SYNOPSIS がイカれてたり……そこら辺を直してたらこうなりました)

アジフライ語?

アジフライ語 - アンサイクロペディア
こちらをご参照下さい。

何のためにこのモジュールを?

アジフライ - アンサイクロペディア
これを翻訳して読みたかったから。

だがしかし

アンサイクロペディアの「アジフライ」の項目、アジフライ語自体が間違ってんじゃねーか!!
Acme::AjiFry のバグかと思って焦ったけど、人力翻訳したら記事自体が間違ってやんの!!

人力翻訳……?

人力翻訳しちゃったらAcme::AjiFry の存在意義無いじゃん!!

なので

日本語(ひらがな)をアジフライ語にする、またはその逆を行う"Acme::AjiFry" の他に、
英数字と半角スペースをアジフライ語にする、またはその逆を行う"Acme::AjiFry::EN" と、
use するとそれ以降のソースコードがアジフライ語に変換されてしまう(でも実行できる)"Acme::AjiFry::Perl" をご用意致しました。

英数字・半角スペースとアジフライ語の対応について

オフィシャルには *1、アジフライ語は英数字及び半角スペースに対応していません。
なので、"Acme::AjiFry::EN" と"Acme::AjiFry::Perl" で使用している「英数字及び半角スペース・アジフライ語変換テーブル」は僕が勝手に実装しました。
もはやソースコード自体が対応表みたくなっているので、詳しくはソースを読んでもらえればと思います。

使い方

"Acme::AjiFry" と"Acme::AjiFry::EN" に関してはSYNOPSIS 通りなので、そちらをご参照下さい。
Acme::AjiFry - search.cpan.org
Acme::AjiFry::EN - search.cpan.org

"Acme::AjiFry::Perl" の挙動がちょっとアレなので、補足しておきます。
例えば、
#!/usr/bin/env perl

use utf8;
use strict;
use warnings;
use Acme::AjiFry::Perl;

print "Hello\n";
print "This is\n";
print "Acme::AjiFry::Perl\n";
print "Sample Code!\n";
というコードを実行すると、
$ ./acme_ajifry_perl_test.pl
Hello
This is
Acme::AjiFry::Perl
Sample Code!
という出力が得られます。
更に自身のソースコード
#!/usr/bin/env perl

use utf8;
use strict;
use warnings;
use Acme::AjiFry::Perl;

アジ食え食えアジお刺身フライむむ・・・お刺身むむ・・・アジアジフライ中川"岡星むむ・・・食えアジフライお刺身ドボドボお刺身ドボドボお刺身アジフライ\お刺身むむ・・・";
アジ食え食えアジお刺身フライむむ・・・お刺身むむ・・・アジアジフライ中川"雄山食え食えフライお刺身フライむむ・・・アジむむ・・・中川フライむむ・・・アジむむ・・・\お刺身むむ・・・";
アジ食え食えアジお刺身フライむむ・・・お刺身むむ・・・アジアジフライ中川"山岡ドボドボ食えお刺身お刺身お刺身食えアジフライ::山岡ドボドボフライアジフライフライむむ・・・岡星ドボドボアジお刺身ドボアジフライ::ああドボドボ食えアジフライアジお刺身お刺身ドボドボ\お刺身むむ・・・";
アジ食え食えアジお刺身フライむむ・・・お刺身むむ・・・アジアジフライ中川"ああアジフライ食え食え食えお刺身お刺身アジ食え食えお刺身ドボドボ食えアジフライ中川山岡むむ・・・お刺身アジフライ食えむむ・・・食えアジフライ!\お刺身むむ・・・";
というコードに書き換えます。
で、このコードを実行すると、元のコード同様、
$ ./acme_ajifry_perl_test.pl
Hello
This is
Acme::AjiFry::Perl
Sample Code!
という出力が得られます。
そんな感じです。それ以上の機能は無いです。

ただ、eval に文字列をブチ込んでスクリプトを実行させているので、実装方法としてはアレです。
もちろん、Test::Perl::Critic に怒られます。仕方が無く無視しました。*2

Acme::AjiFry を作成するにあたって参考にしたもの

AAAAAAAAA - search.cpan.org
Acme::Bleach::Numerically - search.cpan.org

大変参考にしましたし、大変勉強になりました。ありがとうございました。
I referenced above modules. And I learned a lot of things from those. Thanks!

(ふろく)リポジトリ

https://github.com/moznion/Acme--AjiFry
こちらになります。

*1:というか、アジフライ語にオフィシャルもアンオフィシャルもあるのかしら?

*2:他に良い実装の方法があれば教えて下さいませ