TL;DR
経緯
普段から仕事でPerlを書いている僕がAcmeの存在を知ったきっかけはつい最近で隣の席のエンジニアリーダー氏の机にあったAcme大全2015を見たことだった。
知らない人のためにざっくりと紹介するとこのAcmeモジュールとはPerlの世界におけるジョークモジュールの名前空間でまさに「技術の無駄遣い」そのもの。詳しくは、
あたりを見て欲しい。
Acmeモジュールのくだらなさにはまった僕は、色々と調べているうちに面白いモジュールたちに出会った。それが
といったキャラクターや実在のアイドルのデーターベースの役割をなすモジュールたちだ。なるほど、こんなに 実用性のない 単純で面白いモジュールが出ているなら僕でも作れるなーと思い、
「よしAcme::Nogizaka46作るかー!」
となったのが今から1週間ほど前。
..........
しかし、すでにAcme::Nogizaka46は存在していることがわかった。
なるほどー、アイドルネタは諦めて某クソマンガのAcmeモジュールでも作るかーと思った矢先、上のブログで引用されているこの文章が目に止まった。
Acmeシリーズは二つ、Acme::MorningMusume と Acme::AKB48 があります。その Acmeが存在するアイドル2ユニットに共通していえることの一つに、どちらも紅白歌合戦に参加したことがあることが言えます。つまるところ、日本のAcme::アイドルが作られたのユニットは100%紅白出場している
なるほど、そう言う経緯でAcme::MomoiroCloverやAcme::Nogizaka46が作られているのであれば彼女たちのがあっても良いな、と思い作ろうと思ったのがAcme::Keyakizaka46というわけだ。
(彼女たちの場合は出場願掛けではなく、すでに出場しているが…。)
準備
ベースとなるメソッドはAcme::MorningMusumeやAcme::Nogizaka46を再利用させていただくことにするとは言え、メンバー一人一人の情報はこちらで集計しなければいけない。
ということで、公式サイトから情報を引っ張ってくる簡単なスクレイピング用スクリプトを書いた。
Pythonで書いたのはBeautiful Soupというライブラリが使い慣れていたから。
(コードは本当に書き捨てなので汚さとかは勘弁してほしい。)
という事でこれにて欅坂とけやき坂のメンバー情報はすぐに集められた。
実装?
特に新しいことはしていない。欅坂はまだ卒業メンバーも出ていない(要出典)ので、その辺のロジックを抜いたのとあとは誕生日から年齢の計算をするロジックをもっと単純にしたくらいである。あとselectメソッドでcenterを指定すると強制的に平手友梨奈の情報が返ってくる。
テストもいくつか追加した。欅坂で一番身長が高いのは羽生ちゃんで、これはしばらく更新されないだろうからベタ打ちで書いている。(笑)
[参考]
Minilaでリリース
自分で書いたテストが無事通ればあとはCPANに上げるだけ。でも待ってくれ??ここからの知識がこの時点で皆無だった僕は一瞬途方にくれることになった。
が、さすがPerl、枯れ切った言語と揶揄されるだけあって少しググれば湯水のごとく情報が出てくる。
どうやらMinilaというモジュールオーサリングツールを使えば初心者でも簡単にCPANに自作モジュールをあげられることがわかった。
手順は以下の記事が参考になった。
要は完成したら minil test
してminil dist
して minil release
すればよい。
エラーが出てもメッセージが親切なのでつまづくことは少ないはずだ。
一点。上の記事にもあるが ~/.pause
にPAUSSEアカウントのユーザ情報を載せておかないと上手くいかないことに注意。
Missing ~/.pause file or your ~/.pause file is wrong. You should put ~/.pause file in following format. user {{YOUR_PAUSE_ID}} password {{YOUR_PAUSE_PASSWORD}}
(用意しておかないとこんなエラーが出る。親切。)
それから今回はPODの書き方が一番戸惑ったのだがMinilaを使うとtestの時点で文法チェックしてくれるのでありがたい。
あとはPAUSEからメールが来たりなんなりするけど特につまづくことはないはず。
寝てCPANに出てくるのを待つだけ。
どーんっ!完成。
これから
制作期間5時間程度で作ったモジュールではあるが、欅坂というか坂道グループ全体で今年?来年?合同オーディションがあることが発表されたばっかりなのですぐに修正を入れる必要が出て来そう。
欅坂はもう良くないですか...
また、当初やろうと思っていたグループ内ユニットの情報をまだ入れていないのでこれもやりたいと思っている。
ゆいちゃんずとかゆいちゃんずとか。
さて、要領は掴んだので今度はクソマンガのクソAcmeモジュールでも作るかー。