# Rubicure (Ruby + Precure) [![Gem Version](https://badge.fury.io/rb/rubicure.svg)](http://badge.fury.io/rb/rubicure) [![Build Status](https://travis-ci.org/sue445/rubicure.png?branch=master)](https://travis-ci.org/sue445/rubicure) [![Code Climate](https://codeclimate.com/github/sue445/rubicure.png)](https://codeclimate.com/github/sue445/rubicure) [![Coverage Status](https://coveralls.io/repos/sue445/rubicure/badge.png)](https://coveralls.io/r/sue445/rubicure) [![Inline docs](http://inch-ci.org/github/sue445/rubicure.svg?branch=master)](http://inch-ci.org/github/sue445/rubicure) All about Japanese battle heroine "Pretty Cure (Precure)". Inspired by [Acme::PrettyCure](http://perl-users.jp/articles/advent-calendar/2010/acme/6) and [pycure](https://github.com/drillbits/pycure). [![Stories in Ready](https://badge.waffle.io/sue445/rubicure.png?label=ready)](http://waffle.io/sue445/rubicure) ## Example ![maho_girls](examples/maho_girls.gif) [examples/maho_girls.rb](examples/maho_girls.rb) ## Requirements * ruby >= 2.2.2 * more: [.travis.yml](.travis.yml) ## Installation Add this line to your application's Gemfile: ```ruby gem 'rubicure' # for ruby 2.2 gem 'backport_dig' ``` And then execute: $ bundle Or install it yourself as: $ gem install rubicure ## Usage ```ruby § irb require "rubicure" ``` ### Select own precure series ```ruby Precure.title #=> "ふたりはプリキュア" Precure.unmarked.title #=> "ふたりはプリキュア" Precure.max_heart.title #=> "ふたりはプリキュア Max Heart" Precure.splash_star.title #=> "ふたりはプリキュア Splash Star" Precure.yes.title #=> "Yes! プリキュア5" Precure.yes_gogo.title #=> "Yes! プリキュア5 Go Go!" Precure.fresh.title #=> "フレッシュプリキュア!" Precure.heart_catch.title #=> "ハートキャッチプリキュア!" Precure.suite.title #=> "スイートプリキュア♪" Precure.smile.title #=> "スマイルプリキュア!" Precure.dokidoki.title #=> "ドキドキ!プリキュア" Precure.happiness_charge.title #=> "ハピネスチャージプリキュア!" Precure.dokidoki #=> {:series_name=>"dokidoki", :title=>"ドキドキ!プリキュア", :started_date=>Sun, 03 Feb 2013, :ended_date=>Sun, 26 Jan 2014, :girls=>["cure_heart", "cure_diamond", "cure_rosetta", "cure_sword", "cure_ace"]} ``` other pattern ```ruby Precure.find(:smile).title #=> "スマイルプリキュア!" ``` and [more aliases!](config/series.yml) ### Get current precure series `Precure#now` (alias to `#current` ) return current precure series ```ruby Precure.now #=> {:series_name=>"go_princess", :title=>"Go!プリンセスプリキュア", :started_date=>Sun, 01 Feb 2015, :girls=>["cure_flora", "cure_mermaid", "cure_twinkle", "cure_scarlet"]} Precure.current #=> {:series_name=>"go_princess", :title=>"Go!プリンセスプリキュア", :started_date=>Sun, 01 Feb 2015, :girls=>["cure_flora", "cure_mermaid", "cure_twinkle", "cure_scarlet"]} # -2013/1/27 : smile precure # 2013/2/5 - : dokidoki precure require "delorean" Delorean.time_travel_to "2013-02-01" Precure.now #=> RuntimeError: Not on air precure! ``` ### Rubicure::Series#on_air? ```ruby Precure.dokidoki.on_air?("2013-12-16") #=> true Precure.smile.on_air?("2013-12-16") #=> false ``` ### Rubicure::Series#girls ```ruby Precure.smile.girls.count #=> 5 Precure.smile.girls.first #=> {:girl_name=>"cure_happy", :human_name=>"星空みゆき", :precure_name=>"キュアハッピー", :cast_name=>"福圓美里", :created_date=>Sun, 05 Feb 2012, :color=>"pink", :transform_message=>"(レディ?)\nプリキュア・スマイルチャージ!\n(ゴー!ゴー!レッツ・ゴー!ハッピー!!)\nキラキラ輝く未来の光! キュアハッピー!\n5つの光が導く未来!\n輝け!スマイルプリキュア!", :extra_names=>["プリンセスハッピー", "ウルトラハッピー"], :attack_messages=>["プリキュア!ハッピーシャワー!!", "開け、ロイヤルクロック!\n(みんなの力を1つにするクル!)\n届け、希望の光!\nはばたけ!光り輝く未来へ!\nプリキュア!ロイヤルレインボーバースト!", "(みんなの力を1つにするクル!)\nプリキュア!ミラクルレインボーバースト!\n輝けー!!\nスマイルプリキュア!!"], :transform_calls=>["smile_charge"]} Precure.smile.girls.map(&:human_name) #=> ["星空みゆき", "日野あかね", "黄瀬やよい", "緑川なお", "青木れいか"] Precure.smile.girls.map(&:precure_name) #=> ["キュアハッピー", "キュアサニー", "キュアピース", "キュアマーチ", "キュアビューティ"] Precure.smile.girls.count #=> 5 ``` ### Select own precure girl ```ruby Cure.lemonade #=> {:girl_name=>"cure_lemonade", :human_name=>"春日野うらら", :precure_name=>"キュアレモネード", :cast_name=>"伊瀬茉莉也", :created_date=>Sun, 18 Feb 2007, :color=>"yellow", :transform_message=>"プリキュア!メタモルフォーゼ!\nはじけるレモンの香り、キュアレモネード!\n希望の力と未来の光!\n華麗に羽ばたく5つの心!\nYes!プリキュア5!", :extra_names=>nil, :attack_messages=>["輝く乙女のはじける力、受けてみなさい!\nプリキュア!プリズム・チェーン!"], :transform_calls=>["metamorphose"]} Cure.pine #=> {:girl_name=>"cure_pine", :human_name=>"山吹祈里", :precure_name=>"キュアパイン", :cast_name=>"中川亜紀子", :created_date=>Sun, 15 Feb 2009, :color=>"yellow", :transform_message=>"チェインジ!プリキュア・ビートアップ!\nイエローハートは祈りのしるし!\nとれたてフレッシュ、キュアパイン!\nレッツプリキュア!", :extra_names=>["キュアエンジェルパイン"], :attack_messages=>["悪いの悪いの飛んでいけ!\nプリキュア!ヒーリングプレアーフレッシュ!"], :transform_calls=>["change_precure_beat_up", "change", "beat_up"]} Cure.sunshine #=> {:girl_name=>"cure_sunshine", :human_name=>"明堂院いつき", :precure_name=>"キュアサンシャイン", :cast_name=>"桑島法子", :created_date=>Sun, 18 Jul 2010, :color=>"yellow", :transform_message=>"(プリキュアの種、いくですぅ!)\nプリキュア!オープンマイハート!\n陽の光浴びる一輪の花! キュアサンシャイン!\nハートキャッチ、プリキュア!", :extra_names=>["スーパーキュアサンシャイン"], :attack_messages=>["花よ、舞い踊れ!\nプリキュア!ゴールドフォルテバースト!!", "花よ、咲き誇れ!\nプリキュア・ハートキャッチ・オーケストラ!!"], :transform_calls=>["open_my_heart"]} Cure.muse #=> {:girl_name=>"cure_muse", :human_name=>"調辺アコ", :precure_name=>"キュアミューズ", :cast_name=>"大久保瑠美", :created_date=>Sun, 16 Oct 2011, :color=>"yellow", :transform_message=>"レッツプレイ!プリキュアモジュレーション!!\n爪弾くは女神の調べ! キュアミューズ!\n届け4人の組曲!スイートプリキュア!", :extra_names=>["クレッシェンドミューズ"], :attack_messages=>["おいで、シリー!\nシの音符の、シャイニングメロディ!\nプリキュア!スパーリングシャワー!!\n三拍子!1、2、3\nフィナーレ!", "届けましょう、希望のシンフォニー!\nプリキュア!スイートセッションアンサンブル!\nクレッシェンド!!\nフィナーレ!"], :transform_calls=>["lets_play_precure_modulation", "lets_play", "modulation"]} Cure.peace #=> {:girl_name=>"cure_peace", :human_name=>"黄瀬やよい", :precure_name=>"キュアピース", :cast_name=>"金元寿子", :created_date=>Sun, 19 Feb 2012, :color=>"yellow", :transform_message=>"(レディ?)\nプリキュア・スマイルチャージ!\n(ゴー!ゴー!レッツ・ゴー!ピース!!)\nピカピカピカリンジャンケンポン! キュアピース!\n5つの光が導く未来!\n輝け!スマイルプリキュア!", :extra_names=>["プリンセスピース", "ウルトラピース"], :attack_messages=>["プリキュア!ピースサンダー!!", "開け、ロイヤルクロック!\n(みんなの力を1つにするクル!)\n届け、希望の光!\nはばたけ!光り輝く未来へ!\nプリキュア!ロイヤルレインボーバースト!", "(みんなの力を1つにするクル!)\nプリキュア!ミラクルレインボーバースト!\n輝けー!!\nスマイルプリキュア!!"], :transform_calls=>["smile_charge"]} Cure.rosetta #=> {:girl_name=>"cure_rosetta", :human_name=>"四葉ありす", :precure_name=>"キュアロゼッタ", :cast_name=>"渕上舞", :created_date=>Sun, 24 Feb 2013, :color=>"yellow", :transform_message=>"プリキュアラブリンク!\nL! O! V! E!\nひだまりポカポカ キュアロゼッタ!\n響け愛の鼓動!ドキドキプリキュア!\n世界を制するのは愛だけです、\nさぁ、あなたも私と愛を育んでくださいな", :extra_names=>nil, :attack_messages=>["カッチカチの!ロゼッタウォール!\n"], :transform_calls=>["love_link"]} Cure.honey #=> {:girl_name=>"cure_honey", :human_name=>"大森ゆうこ", :precure_name=>"キュアハニー", :cast_name=>"北川里奈", :created_date=>Sat, 15 Mar 2014, :color=>"yellow", :transform_message=>"(かわルンルン!)\nプリキュアくるりんミラーチェンジ!\n大地に実る命の光!キュアハニー!\nハピネス注入!幸せチャージ!\nハピネスチャージプリキュア!", :extra_names=>["キュアハニー ポップコーンチア"], :attack_messages=>["命の光を聖なる力へ!\nハニーバトン!\nプリキュア!スパークリングバトンアタック!!\nイエイ!\n命よ、天に帰れ!\n(ゴクラ〜ク…)\n", "(かわルンルン!)\nプリキュアくるりんミラーチェンジ!ポップコーンチア!!\nプリキュア!リボンハートエクスプロージョン!!\nビクトリー!!\n", "(かわルンルン!)\nプリキュアくるりんミラーチェンジ!ココナッツサンバ!!\nプリキュア!マラカスリズムスパーク!!\nマンボ!!\n"], :transform_calls=>["kururin_mirror_change"]} Shiny.luminous #=> {:girl_name=>"shiny_luminous", :human_name=>"九条ひかり", :precure_name=>"シャイニールミナス", :cast_name=>"田中理恵", :created_date=>Sun, 06 Mar 2005, :color=>"yellow", :transform_message=>"ルミナス・シャイニングストリーム!\n輝く命、シャイニールミナス!\n光の心と光の意志、すべてを一つにするために!", :extra_names=>nil, :attack_messages=>["光の意志よ!私に勇気を!希望と力を!!\nルミナス・ハーティエル・アンクション!"], :transform_calls=>["shining_stream"]} Milky.rose #=> {:girl_name=>"milky_rose", :human_name=>"美々野くるみ", :precure_name=>"ミルキィローズ", :cast_name=>"仙台エリ", :created_date=>Sun, 06 Apr 2008, :color=>"purple", :transform_message=>"スカイローズ・トランスレイト!\n青いバラは秘密のしるし! ミルキィローズ!", :extra_names=>nil, :attack_messages=>["邪悪な力を包み込む\nバラの吹雪を咲かせましょう!\nミルキィローズ・ブリザード!"], :transform_calls=>["sky_rose_translate", "translate"]} ``` and [more aliases!](config/girls/) ### Rubicure::Girl ```ruby # these are same yayoi = Cure.peace yayoi = Precure.smile.girls[2] yayoi.name #=> "黄瀬やよい" yayoi.cast_name #=> "金元寿子" yayoi.attack! #=> RuntimeError: require transform yayoi.transform! (レディ?) プリキュア・スマイルチャージ! (ゴー!ゴー!レッツ・ゴー!ピース!!) ピカピカピカリンジャンケンポン! キュアピース! 5つの光が導く未来! 輝け!スマイルプリキュア! # 1st transform yayoi.name #=> "キュアピース" yayoi.attack! プリキュア!ピースサンダー!! # 2nd transform yayoi.transform! yayoi.name #=> "プリンセスピース" yayoi.attack! 開け、ロイヤルクロック! (みんなの力を1つにするクル!) 届け、希望の光! はばたけ!光り輝く未来へ! プリキュア!ロイヤルレインボーバースト! # final transform yayoi.transform! yayoi.name #=> "ウルトラピース" yayoi.attack! (みんなの力を1つにするクル!) プリキュア!ミラクルレインボーバースト! 輝けー!! スマイルプリキュア!! # back to human yayoi.transform!.transform! yayoi.name #=> "プリンセスピース" yayoi.humanize! #=> 0 yayoi.name #=> "黄瀬やよい" ``` ### Specific transform ```ruby Cure.black.dual_aurora_wave! デュアル・オーロラ・ウェイブ!! 光の使者、キュアブラック! ふたりはプリキュア! 闇の力のしもべ達よ! とっととお家に帰りなさい! Cure.luminous.shining_stream! ルミナス・シャイニングストリーム! 輝く命、シャイニールミナス! 光の心と光の意志、すべてを一つにするために! Cure.bloom.dual_spiritual_power! デュアル・スピリチュアル・パワー! 花開け大地に! 輝く金の花! キュアブルーム! ふたりはプリキュア! 聖なる泉を汚す者よ! 阿漕な真似はお止めなさい! Cure.dream.metamorphose! プリキュア!メタモルフォーゼ! 大いなる希望の力、キュアドリーム! 希望の力と未来の光! 華麗に羽ばたく5つの心! Yes!プリキュア5! Milky.rose.sky_rose_translate! スカイローズ・トランスレイト! 青いバラは秘密のしるし! ミルキィローズ! Cure.peach.change_precure_beatup! チェインジ!プリキュア・ビートアップ! ピンクのハートは愛あるしるし! もぎたてフレッシュ、キュアピーチ! レッツプリキュア! Cure.blossom.open_my_heart! (プリキュアの種、いくですぅ!) プリキュア!オープンマイハート! 大地に咲く一輪の花! キュアブロッサム! ハートキャッチ、プリキュア! Cure.melody.lets_play_precure_modulation! レッツプレイ!プリキュアモジュレーション!! 爪弾くは荒ぶる調べ! キュアメロディ! 届け4人の組曲!スイートプリキュア! Cure.happy.smile_charge! (レディ?) プリキュア・スマイルチャージ! (ゴー!ゴー!レッツ・ゴー!ハッピー!!) キラキラ輝く未来の光! キュアハッピー! 5つの光が導く未来! 輝け!スマイルプリキュア! Cure.heart.love_link! プリキュアラブリンク! L! O! V! E! みなぎる愛! キュアハート! 響け愛の鼓動!ドキドキプリキュア! 愛を無くした悲しいジコチューさん、 このキュアハートがあなたのドキドキ取り戻してみせる! Cure.ace.dressup! プリキュアドレスアップ! (キュピラッパー!) 愛の切り札! キュアエース! 響け愛の鼓動!ドキドキプリキュア! 美しさは正義の証し、ウインク一つで、 あなたのハートを射抜いて差し上げますわ Cure.lovely.kururin_mirror_change! (かわルンルン!) プリキュアくるりんミラーチェンジ! 世界に広がるビッグな愛!キュアラブリー! ハピネス注入!幸せチャージ! ハピネスチャージプリキュア! Cure.fortune.kirarin_star_symphony! (かわルンルン!) プリキュアきらりんスターシンフォニー! 夜空にきらめく希望の星!キュアフォーチュン! ハピネス注入!幸せチャージ! ハピネスチャージプリキュア! ``` ### When [Maho Girls PreCure!](https://en.wikipedia.org/wiki/Maho_Girls_PreCure!) ```ruby mirai = Cure.miracle mirai.name # => "朝日奈みらい" mirai.cure_up_rapapa! :diamond # or mirai.transform! :diamond キュアップ・ラパパ! ダイヤ! ミラクル・マジカル・ジュエリーレ! ふたりの奇跡!キュアミラクル! 魔法つかいプリキュア!! mirai.name # => "キュアミラクル(ダイヤスタイル)" mirai.attack! リンクルステッキ! ダイヤ!永遠の輝きを私達の手に! フルフルリンクル! プリキュア!ダイヤモンドエターナル! mirai.humanize! mirai.name # => "朝日奈みらい" mirai.cure_up_rapapa! :ruby # or mirai.transform! :ruby キュアップ・ラパパ! ルビー! ミラクル・マジカル・ジュエリーレ! ふたりの奇跡!キュアミラクル! 魔法つかいプリキュア!! mirai.name # => "キュアミラクル(ルビースタイル)" mirai.attack! リンクルステッキ! ルビー!紅の情熱よ私達の手に! フルフルリンクル! プリキュア!ルビーパッショナーレ! ``` ### full_name When `Rubicure::Girl` has `human_full_name` (i.e. another `human_name`), she returns as `#full_name` ```ruby Cure.princess.human_name # => "白雪ひめ" Cure.princess.full_name # => "ヒメルダ・ウインドウ・キュアクイーン・オブ・ザ・ブルースカイ" Cure.scarlet.human_name # => "紅城トワ" Cure.scarlet.full_name # => "プリンセス・ホープ・ディライト・トワ" ``` `#full_name` returns `#human_name` when she doe's not have `human_full_name` ```ruby Cure.miracle.human_name # => "朝日奈みらい" Cure.miracle.full_name # => "朝日奈みらい" ``` ### Precure allstars ```ruby Precure.all_stars.count Precure.all_stars.map(&:precure_name) # returns current precure count and names Precure.all_stars.include?(Cure.echo) #=> false Precure.all_stars("2013-10-26").count #=> 33 Precure.all_stars(:dx).count #=> 14 Precure.all_stars(:dx2).count #=> 17 Precure.all_stars(:dx3).count #=> 21 Precure.all_stars(:new_stage).count #=> 29 Precure.all_stars(:new_stage).include?(Cure.echo) #=> true Precure.all_stars(:new_stage2).count #=> 32 Precure.all_stars(:new_stage3).count #=> 37 Precure.all_stars(:new_stage3).include?(Cure.echo) #=> true Precure.all_stars(:spring_carnival).count #=> 40 Precure.all_stars(:sing_together_miracle_magic).count #=> 44 Precure.all_stars(:sing_together_miracle_magic).include?(Cure.echo) #=> true ``` and [more aliases!](config/movies.yml) ### `Precure.all_girls` (a.k.a. `Precure.all`) ```ruby Precure.all_girls.count Precure.all_girls.map(&:precure_name) # returns current precure count and names Precure.all_girls("2013-10-26").count #=> 33 Precure.all_girls.include?(Cure.echo) #=> true ``` #### `Precure.all_girls` vs `Precure.all_stars` * `Precure.all_girls` returns all precure. (includes "Kirakira Precure Alamode") * `Precure.all_stars` returns only from "Futari wa Pretty Cure" to "Maho Girls PreCure" ### `Precure.dream_stars` ```ruby Precure.dream_stars.count #=> 12 Precure.dream_stars.map(&:precure_name) #=> ["キュアフローラ", "キュアマーメイド", "キュアトゥインクル", "キュアスカーレット", "キュアミラクル", "キュアマジカル", "キュアフェリーチェ", "キュアホイップ", "キュアカスタード", "キュアジェラート", "キュアマカロン", "キュアショコラ"] ``` ### `Precure.super_stars` ```ruby Precure.super_stars.count #=> 12 Precure.super_stars.map(&:precure_name) #=> ["キュアミラクル", "キュアマジカル", "キュアフェリーチェ", "キュアホイップ", "キュアカスタード", "キュアジェラート", "キュアマカロン", "キュアショコラ", "キュアパルフェ", "キュアエール", "キュアアンジュ", "キュアエトワール"] ``` ### Equivalence ```ruby yayoi = Cure.peace.dup cure_peace = Cure.peace.dup.transform! yayoi == cure_peace #=> true ``` ```ruby precure = Rubicure::Girl.find(:passion) case precure when Precure.dokidoki puts "The girl is a member of Dokidoki! Precure" when Precure.fresh puts "The girl is a member of Fresh Precure!" else puts "The girl is not which member of Dokidoki! Precure and Fresh Precure!" end ``` ### Pikarin janken ```ruby Cure.peace.pikarin_janken ピカピカピカリン ジャンケンポン! (パー) #=> "ピカピカピカリン\nジャンケンポン!\n(パー)\n" Cure.peace.janken ピカピカピカリン ジャンケンポン! (グー) # => "ピカピカピカリン\nジャンケンポン!\n(グー)\n" ``` ### one-liner ``` § ruby -rubicure -e'puts Shiny.luminous.transform_message' ``` ### Enumerable ```ruby Precure.each{|series| puts series.title } ふたりはプリキュア ふたりはプリキュア Max Heart ふたりはプリキュア Splash Star Yes! プリキュア5 Yes! プリキュア5 Go Go! フレッシュプリキュア! ハートキャッチプリキュア! スイートプリキュア♪ スマイルプリキュア! ドキドキ!プリキュア ハピネスチャージプリキュア! #=> [:unmarked, :max_heart, :splash_star, :yes, :yes_gogo, :fresh, :heart_catch, :suite, :smile, :dokidoki, :happiness_charge] Precure.inject([]){|girl_count_of_series, series| girl_count_of_series << series.girls.count; girl_count_of_series } #=> [2, 3, 2, 5, 6, 4, 4, 4, 5, 5, 3] Precure.map(&:title) => ["ふたりはプリキュア", "ふたりはプリキュア Max Heart", "ふたりはプリキュア Splash Star", "Yes! プリキュア5", "Yes! プリキュア5 Go Go!", "フレッシュプリキュア!", "ハートキャッチプリキュア!", "スイートプリキュア♪", "スマイルプリキュア!", "ドキドキ!プリキュア", "ハピネスチャージプリキュア!"] Precure.happiness_charge.map(&:precure_name) => ["キュアラブリー", "キュアプリンセス", "キュアハニー", "キュアフォーチュン"] Precure.map{|series| series.map(&:precure_name) } => [["キュアブラック", "キュアホワイト"], ["キュアブラック", "キュアホワイト", "シャイニールミナス"], ["キュアブルーム", "キュアイーグレット"], ["キュアドリーム", "キュアルージュ", "キュアレモネード", "キュアミント", "キュアアクア"], ["キュアドリーム", "キュアルージュ", "キュアレモネード", "キュアミント", "キュアアクア", "ミルキィローズ"], ["キュアピーチ", "キュアベリー", "キュアパイン", "キュアパッション"], ["キュアブロッサム", "キュアマリン", "キュアサンシャイン", "キュアムーンライト"], ["キュアメロディ", "キュアリズム", "キュアビート", "キュアミューズ"], ["キュアハッピー", "キュアサニー", "キュアピース", "キュアマーチ", "キュアビューティ"], ["キュアハート", "キュアダイヤモンド", "キュアロゼッタ", "キュアソード", "キュアエース"], ["キュアラブリー", "キュアプリンセス", "キュアハニー", "キュアフォーチュン"]] ``` ### Not operator ```ruby passion = Cure.passion passion.name => "東せつな" !passion passion.name => "イース" ``` ```ruby beat = Cure.beat beat.name => "黒川エレン" !beat beat.name => "セイレーン" ``` ```ruby scarlet = Cure.scarlet scarlet.name => "紅城トワ" !scarlet scarlet.name => "トワイライト" ``` ## Color methods ```ruby Cure.peace.color #=> "yellow" Cure.happy.color #=> "pink" Cure.peace.yellow? #=> true Cure.peace.pink? #=> false Cure.happy.pink? #=> true Rubicure::Girl.colors #=> [:black, :blue, :green, :pink, :purple, :red, :white, :yellow] Precure.all_stars.select(&:pink?).map(&:precure_name) #=> ["キュアブルーム", "キュアドリーム", "キュアピーチ", "キュアブロッサム", "キュアメロディ", "キュアハッピー", "キュアハート", "キュアラブリー"] Precure.all_stars.select(&:yellow?).map(&:precure_name) #=> ["シャイニールミナス", "キュアレモネード", "キュアパイン", "キュアサンシャイン", "キュアミューズ", "キュアピース", "キュアロゼッタ", "キュアハニー"] Precure.all_stars.group_by{ |girl| girl.color }.map{ |color, girls| [color, girls.count] }.sort_by{ |color, girl_count| girl_count }.reverse #=> [["pink", 9], ["yellow", 9], ["blue", 8], ["purple", 4], ["red", 4], ["white", 3], ["green", 2], ["black", 1]] ``` ### birthday methods ```ruby Cure.peace.have_birthday? #=> false Cure.twinkle.has_birthday? #=> true Cure.twinkle.birthday #=> "9/12" Date.today #=> Tue, 24 Nov 2015 Cure.twinkle.birthday? #=> false Cure.twinkle.birthday?(Date.parse("2015-9-12")) #=> true Precure.all_stars.select(&:have_birthday?).map(&:human_name) #=> ["美墨なぎさ", "雪城ほのか", "九条ひかり", "日向咲", "美翔舞", "相田マナ", "菱川六花", "四葉ありす", "剣崎真琴", "春野はるか", "海藤みなみ", "天ノ川きらら", "紅城トワ"] Precure.all_stars.select(&:have_birthday?).map(&:human_name).count #=> 13 ``` * `has_birthday?` is alias to `have_birthday?` ## More reference http://rubydoc.info/gems/rubicure/frames ## API Server is available! https://rubicure.herokuapp.com/ ```sh $ curl -s https://rubicure.herokuapp.com/series/go_princess.json | jq . { "series_name": "go_princess", "title": "Go!プリンセスプリキュア", "started_date": "2015-02-01", "girls": [ "cure_flora", "cure_mermaid", "cure_twinkle", "cure_scarlet" ] } $ curl -s https://rubicure.herokuapp.com/girls/cure_twinkle.json | jq . { "girl_name": "cure_twinkle", "human_name": "天ノ川きらら", "precure_name": "キュアトゥインクル", "cast_name": "山村響", "color": "yellow", "created_date": "2015-02-22", "transform_message": "プリキュア!プリンセスエンゲージ!\nきらめく星のプリンセス!キュアトゥインクル!\n強く、やさしく、美しく!\nGo!プリンセスプリキュア!\n冷たい檻に閉ざされた夢、返していただきますわ!\nお覚悟はよろしくて?", "extra_names": null, "attack_messages": [ "エクスチェンジ!モードエレガント!\nキラキラ、星よ!プリキュア・トゥインクル・ハミング!\n(ドリーミング)\nごきげんよう\n" ], "transform_calls": [ "princess_engage" ] } ``` ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create new Pull Request