先月に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
というわけで
ちょっとずつですが改善していっています。どうぞご利用ください。