くりにっき

フルスタックキュアエンジニアです

rubicureでプリキュアの誕生日を手軽に調べる #cure_advent

はじめに

これは「プリキュア Advent Calendar 2015」の16日目です

www.adventar.org

15日目

16日目:rubicureでプリキュアの誕生日を手軽に調べる

12/16はキュアピースの中の人の金元寿子さんのお誕生日です。おめでとうございます!!!!

嫁の集合写真

声優さんに誕生日があるのと同様、プリキュアにも誕生日はあります。

昨日はキュアスカーレットこと紅城トワ様の誕生日でした

f:id:sue445:20151215234055p:plain

ただし設定は一部のプリキュアにしか存在しません。

rubicure v0.3.0で誕生日を取得できるようになったので使い方を紹介します

github.com

基本的な使い方

have_birthday?, has_birthday?

誕生日が存在するかどうか取得できます

Cure.peace.have_birthday?
#=> false

Cure.twinkle.have_birthday?
#=> true

has_birthday?have_birthday? のaliasなのでどっち使ってもいいです

birthday

誕生日が存在するプリキュアには birthday メソッドが実装されていて誕生日が取得できます

Cure.twinkle.birthday
#=> "9/12"

birthday?

Date.today
#=> Wed, 16 Dec 2015
Cure.twinkle.birthday?
#=> false

Cure.twinkle.birthday?(Date.parse("2015-9-12"))
#=> true

引数に渡した日付*1が誕生日かどうか取得できます

ちなみに昨日(12/15)はキュアスカーレットの誕生日でした

誕生日の貴重な実行結果です。ご査収ください *2 f:id:sue445:20151215233052p:plain

応用的な使い方

誕生日が存在するプリキュアを一括取得するためのサンプルコードです

Precure.all_stars.select(&:have_birthday?).map(&:human_name)
#=> ["美墨なぎさ", "雪城ほのか", "九条ひかり", "日向咲", "美翔舞", "相田マナ", "菱川六花", "四葉ありす", "剣崎真琴", "春野はるか", "海藤みなみ", "天ノ川きらら", "紅城トワ"]

pp Precure.all_stars.select(&:have_birthday?).map{ |girl| [girl.human_name, girl.birthday] }
[["美墨なぎさ", "10/10"],
 ["雪城ほのか", "4/4"],
 ["九条ひかり", "9/9"],
 ["日向咲", "8/7"],
 ["美翔舞", "11/20"],
 ["相田マナ", "8/4"],
 ["菱川六花", "9/17"],
 ["四葉ありす", "5/28"],
 ["剣崎真琴", "11/4"],
 ["春野はるか", "4/10"],
 ["海藤みなみ", "7/20"],
 ["天ノ川きらら", "9/12"],
 ["紅城トワ", "12/15"]]

Precure.all_stars.select(&:have_birthday?).map(&:human_name).count
#=> 13

参考文献

プリキュアの誕生日はこちらのデータを参考にしています

dic.nicovideo.jp

rubicureには各種便利な機能が揃っているので是非皆さんもお使いください

17日目

*1:引数がない場合はDate.today

*2: nil をつけてるのは出力が多すぎてコンソールが流れるため