おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

gimei v1.5.0をリリースしました

先月にgimei のv1.4.0を、昨日にv.1.5.0をリリースしていました。それぞれの変更についてまとめてみます。

v1.4.0

gimeiはランダムに生成した名前を返すライブラリです。姓や名だけがほしいときはそれぞれ次のようにlastメソッドとfirstメソッドが使えます。

Gimei.last.to_s #=> "藤田"
Gimei.first.to_s #=> "太志"

また、それらのエイリアスとしてfamily, givenもあります。

Gimei.family.to_s #=> "二宮"
Gimei.given.to_s #=> "徹二"

gimeiを普通に使うと、あらかじめ用意している配列からsampleで名前を選ぶので、同じ名前が続けて二回出力されることは確率的にはゼロではありません。それを避けたいときに使えるuniqueというメソッドを用意しています。

Gimei.unique.name.to_s #=> "堀内 七虹"

uniqueを使い続けて、gimeiが用意している名前が尽きるとエラーになります。なので適切なタイミングでGimei.unique.clearをして、「これまで利用した名前のリスト」をクリアしてあげると便利です。

clearに引数を渡さないとすべてのリストを消去しますが、次のように引数を渡すと特定の「これまで利用した名前のリスト」に絞って消去することができます。

Gimei.unique.clear(:first) # Gimei.unique.first の結果を消去

と、ここまでが変更に関する前提知識の紹介でした。

Gimei.unique.givenのように名前を生成したときにそれだけをクリアしたいときは、これまでGimei.unique.clear(:first)のようにエイリアス元を指定しないと意味がない状態だったのを、Gimei.unique.clear(:given)でもよいようにしたのがv1.4.0の変更です。

PRはこれ:family, :givenのaliasをclearでも使えるようにする by izumitomo · Pull Request #67 · willnet/gimei

v1.5.0

v1.5.0は内部的な改善です。きっかけは開発版RubyでCIを動かすと失敗していたことでした。

Ruby 3.4のテストが失敗する · Issue #68 · willnet/gimei

gimeiは漢字、フリガナ、ふりがな以外にもローマ字による出力が可能です。

Gimei.name.romaji #=> "Hitomi Ooba"

これまで、これはromajiというgemを利用してふりがなを変換して生成していました。そしてromajiはnkfに依存しており、nkfがRuby3.4からdefault gemではなくなることからromajiのrequireに失敗するようになっていたのでした。

そもそも漢字、フリガナ、ふりがなはYAMLでデータを持っているのにローマ字だけ動的に生成するのが一貫性がない、と感じていたところだったのでこの期にromajiの依存をなくしたいな、と思っていたところそのものズバリのPRを頂いたのでマージしてv1.5.0にしました。

PRはこれ Romajiによる変換後のデータをymlに追加 by atolix · Pull Request #69 · willnet/gimei

というわけで

ちょっとずつですが改善していっています。どうぞご利用ください。