Groovyを使ってプリキュアを実装した。
groovycure
偉大なる先人としてRuby実装としてrubicure、Python実装としてpycureがあったがGroovyがなかったのでGroovyの勉強がてら作ってみた。
PyCureをパクって参考にして(ほぼ丸写し)同等の機能を載せてみた。
名前はGroovyCure
ちょっと長いのが気に入らない(gcureとかのほうが良かったか?)
まだ、二人で変身等全部は実装していない。
GitHubのREADMEにも書いているが使い方は簡単
まずはインストール
GitHubから落としてきてGradleを使ってMavenのローカルリポジトリに追加
git clone https://github.com/ligun/groovycure.git cd ./groovycure gradle install
使うときはソースコードに
@Grab('groovycure:groovycure') import static groovycure.Precure.precure
と入れて
precure.now() //ハピネスチャージプリキュア
のようにすればいい。
できることは
上記の現在のプリキュアの取得の他
precure.unmarked //ふたりはプリキュア
のように各シリーズの取得(unmarked,maxheart,…,happinesscharge)
各シリーズを取得してメンバーのリストを取得
def unmarked = precure.unmarked println unmarked.member //[nagisa,honoka]
プリキュアに変身
def megumi = precure.happinesscharge.member.megumi println megumi.name //愛乃めぐみ println megumi.transform() //世界に広がるビッグの愛!キュアラブリー! println megumi.name //キュアラブリー
こんなかんじです。
他にも幾つかあるけど(放送期間など)実際に使ってみて確認してね。
他の言語実装にない特徴としては、Groovy製なのでJavaでも動かすことできるよ。(Mavenに入れた時Jarで入るので)
ただ、Groovyの便利な省略(アクセッサーなど)がきかないから
Girl megumi = precure.now().getMember().get("megumi");
みたいに冗長になるけど
今のところ気になるのが他の実装より冗長なこと
Rubyだとgemインストールしてrequireすればいいんだけど、同じようなことやろうとしたらMavenセントラルリポジトリに登録するしかない。MavenはGemよりお堅いイメージあるから気軽に申請できんよなぁ。
それに
require rubicure
とすればいいRubyに比べて、Grabで呼び出してimport staticで登録済みなリストを使えるようにしなければいけないので面倒
ココらへんもう少しどうにかできんかなぁ(使い始めて日が浅いのでもっとマシな方法知ってる方いれば情報お願いします)
あとはGroovyConsoleを使って対話的に使おうとした場合import staticが使えないのでprecureを呼び出すときに毎回Precure.precureとしなければいけない。
今後は二人で変身や長いバージョンの前口上(ドキプリの「愛をなくした~」等)を実装していきたいな。パクリのままじゃ何だしオリジナルな要素も入れてこう。
コメント