rubicure 2.1.5 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d5325d7d6724b38dc1f08ceb7959dfd876cdc8ff49f49120c1dc39b51eb3bd3
4
- data.tar.gz: 1a6a234cd75c4e56390fe48099f27eb8ffd84fb88fa957fbc3cb7a23e0c870cd
3
+ metadata.gz: 3250322e7a94ee22cbd05cfde9c0948c4dfa42471ed4606b4abb900c700dca9a
4
+ data.tar.gz: f899f29dc91ab6b4e442e2d61431c66e35db8cb0a904dce80f5fc0a0e781e0d6
5
5
  SHA512:
6
- metadata.gz: fdcdf6de885c0fae474ccccef23e7012408d808b6292e4cc7a04f1cd664392a7f1a44db240472606b2fb26a67ba10ef3d7399daad6975cd3cedf5fece8cd4703
7
- data.tar.gz: 1e31f4d6b8da0dfa82de842470ef587d134a8f4ad15b77a74610e9e148a8f525965e7023a297b1f596f94dcc815373c099802f78a7ba67fb7f37cea73c549fb6
6
+ metadata.gz: '058852c8614f08b374b5b34ceef8205b444e9cf9fdbceaaa4acd3f66a0ed8ed8f263d0ec9b6a6d3f871be13994e8f287fea417123cfe81128cd57c22808a6994'
7
+ data.tar.gz: fa08d1ac2232596608510d5fd619c65798265146086f0464cae3c6b2a4f3da6f4fcfe481d8eab7b0d317c20413174c51dbc9d5d13480521b9ec64f9593f4b463
@@ -27,11 +27,10 @@ jobs:
27
27
 
28
28
  matrix:
29
29
  ruby:
30
- - ruby:2.4
31
- - ruby:2.5
32
30
  - ruby:2.6
33
31
  - ruby:2.7
34
32
  - ruby:3.0
33
+ - ruby:3.1
35
34
  - rubylang/ruby:master-nightly-bionic
36
35
  include:
37
36
  - ruby: rubylang/ruby:master-nightly-bionic
data/.rubocop.yml CHANGED
@@ -9,7 +9,7 @@ inherit_gem:
9
9
  - "config/performance.yml"
10
10
 
11
11
  AllCops:
12
- TargetRubyVersion: 2.4
12
+ TargetRubyVersion: 2.6
13
13
  NewCops: enable
14
14
 
15
15
  Layout/HashAlignment:
data/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  ## master
2
- [full changelog](http://github.com/sue445/rubicure/compare/v2.1.5...master)
2
+ [full changelog](http://github.com/sue445/rubicure/compare/v3.1.0...master)
3
+
4
+ ## v3.1.0
5
+ [full changelog](http://github.com/sue445/rubicure/compare/v3.0.1...v3.1.0)
6
+
7
+ * Add DeliciousParty:heart:Precure
8
+ * https://github.com/sue445/rubicure/pull/261
9
+
10
+ ## v3.0.1
11
+ [full changelog](http://github.com/sue445/rubicure/compare/v3.0.0...v3.0.1)
12
+
13
+ * Add `ended_date` of Tropical-Rouge! Precure
14
+ * https://github.com/sue445/rubicure/pull/260
15
+ * Fixed. Couldn't call `#precure_operation!` and `#precure_tropical_change!`
16
+ * https://github.com/sue445/rubicure/pull/264
17
+ * Randomized Tropical-Rouge! Precure's `#transform!` (a.k.a. `#precure_tropical_change!`) transformation message
18
+ * https://github.com/sue445/rubicure/pull/263
19
+
20
+ ## v3.0.0
21
+ [full changelog](http://github.com/sue445/rubicure/compare/v2.1.5...v3.0.0)
22
+
23
+ ### Breaking changes :bomb:
24
+ * Supports ruby 3.1+ and drop ruby < 2.6
25
+ * https://github.com/sue445/rubicure/pull/259
3
26
 
4
27
  ## v2.1.5
5
28
  [full changelog](http://github.com/sue445/rubicure/compare/v2.1.4...v2.1.5)
data/Gemfile CHANGED
@@ -2,8 +2,3 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in rubicure.gemspec
4
4
  gemspec
5
-
6
- if Gem::Version.create(RUBY_VERSION) < Gem::Version.create("2.5.0")
7
- # activesupport v6.0.0+ requires Ruby 2.5.0+
8
- gem "activesupport", "< 6.0.0"
9
- end
data/README.md CHANGED
@@ -118,7 +118,7 @@ and [more aliases!](config/series.yml)
118
118
 
119
119
  ```ruby
120
120
  >> Precure.now
121
- => {:series_name=>"tropical_rouge", :title=>"トロピカル~ジュ!プリキュア", :started_date=>#<Date: 2021-02-28 ((2459274j,0s,0n),+0s,2299161j)>, :girls=>["cure_summer", "cure_coral", "cure_papaya", "cure_flamingo", "cure_lamer"]}
121
+ => {:series_name=>"delicious_party", :title=>"デリシャスパーティ♡プリキュア", :started_date=>#<Date: 2022-02-06 ((2459617j,0s,0n),+0s,2299161j)>, :girls=>["cure_precious", "cure_spicy", "cure_yumyum"]}
122
122
 
123
123
  # -2013/1/27 : smile precure
124
124
  # 2013/2/5 - : dokidoki precure
@@ -418,6 +418,15 @@ Go!プリンセスプリキュア!
418
418
  プリキュア!ルビーパッショナーレ!
419
419
  ```
420
420
 
421
+ ### When [Tropical-Rouge! Precure](https://en.wikipedia.org/wiki/Tropical-Rouge!_Pretty_Cure)
422
+ In Tropical Rouge Precure's `#transform!` (a.k.a. `#precure_tropical_change!`), the transformation message will be randomized as in the original work.
423
+
424
+ Example
425
+
426
+ ![tropical_rouge](examples/tropical_rouge.gif)
427
+
428
+ [examples/tropical_rouge.rb](examples/tropical_rouge.rb)
429
+
421
430
  ### full_name
422
431
  When `Rubicure::Girl` has `human_full_name` (i.e. another `human_name`), she returns as `#full_name`
423
432
 
@@ -607,19 +616,20 @@ Go!プリンセスプリキュア
607
616
  スター☆トゥインクルプリキュア
608
617
  ヒーリングっど♥プリキュア
609
618
  トロピカル~ジュ!プリキュア
610
- => [:unmarked, :max_heart, :splash_star, :yes, :yes_gogo, :fresh, :heart_catch, :suite, :smile, :dokidoki, :happiness_charge, :go_princess, :maho_girls, :a_la_mode, :hugtto, :star_twinkle, :healingood, :tropical_rouge]
619
+ デリシャスパーティ♡プリキュア
620
+ => [:unmarked, :max_heart, :splash_star, :yes, :yes_gogo, :fresh, :heart_catch, :suite, :smile, :dokidoki, :happiness_charge, :go_princess, :maho_girls, :a_la_mode, :hugtto, :star_twinkle, :healingood, :tropical_rouge, :delicious_party]
611
621
 
612
622
  >> Precure.inject([]){|girl_count_of_series, series| girl_count_of_series << series.girls.count; girl_count_of_series }
613
- => [2, 3, 2, 5, 6, 4, 4, 4, 5, 5, 4, 4, 3, 6, 5, 5, 4, 5]
623
+ => [2, 3, 2, 5, 6, 4, 4, 4, 5, 5, 4, 4, 3, 6, 5, 5, 4, 5, 3]
614
624
 
615
625
  >> Precure.map(&:title)
616
- => ["ふたりはプリキュア", "ふたりはプリキュア Max Heart", "ふたりはプリキュア Splash☆Star", "Yes! プリキュア5", "Yes! プリキュア5 Go Go!", "フレッシュプリキュア!", "ハートキャッチプリキュア!", "スイートプリキュア♪", "スマイルプリキュア!", "ドキドキ!プリキュア", "ハピネスチャージプリキュア!", "Go!プリンセスプリキュア", "魔法つかいプリキュア!", "キラキラ☆プリキュアアラモード", "HUGっと!プリキュア", "スター☆トゥインクルプリキュア", "ヒーリングっど♥プリキュア", "トロピカル~ジュ!プリキュア"]
626
+ => ["ふたりはプリキュア", "ふたりはプリキュア Max Heart", "ふたりはプリキュア Splash☆Star", "Yes! プリキュア5", "Yes! プリキュア5 Go Go!", "フレッシュプリキュア!", "ハートキャッチプリキュア!", "スイートプリキュア♪", "スマイルプリキュア!", "ドキドキ!プリキュア", "ハピネスチャージプリキュア!", "Go!プリンセスプリキュア", "魔法つかいプリキュア!", "キラキラ☆プリキュアアラモード", "HUGっと!プリキュア", "スター☆トゥインクルプリキュア", "ヒーリングっど♥プリキュア", "トロピカル~ジュ!プリキュア", "デリシャスパーティ♡プリキュア"]
617
627
 
618
628
  >> Precure.happiness_charge.map(&:precure_name)
619
629
  => ["キュアラブリー", "キュアプリンセス", "キュアハニー", "キュアフォーチュン"]
620
630
 
621
631
  >> Precure.map{|series| series.map(&:precure_name) }
622
- => [["キュアブラック", "キュアホワイト"], ["キュアブラック", "キュアホワイト", "シャイニールミナス"], ["キュアブルーム", "キュアイーグレット"], ["キュアドリーム", "キュアルージュ", "キュアレモネード", "キュアミント", "キュアアクア"], ["キュアドリーム", "キュアルージュ", "キュアレモネード", "キュアミント", "キュアアクア", "ミルキィローズ"], ["キュアピーチ", "キュアベリー", "キュアパイン", "キュアパッション"], ["キュアブロッサム", "キュアマリン", "キュアサンシャイン", "キュアムーンライト"], ["キュアメロディ", "キュアリズム", "キュアビート", "キュアミューズ"], ["キュアハッピー", "キュアサニー", "キュアピース", "キュアマーチ", "キュアビューティ"], ["キュアハート", "キュアダイヤモンド", "キュアロゼッタ", "キュアソード", "キュアエース"], ["キュアラブリー", "キュアプリンセス", "キュアハニー", "キュアフォーチュン"], ["キュアフローラ", "キュアマーメイド", "キュアトゥインクル", "キュアスカーレット"], ["キュアミラクル", "キュアマジカル", "キュアフェリーチェ"], ["キュアホイップ", "キュアカスタード", "キュアジェラート", "キュアマカロン", "キュアショコラ", "キュアパルフェ"], ["キュアエール", "キュアアンジュ", "キュアエトワール", "キュアマシェリ", "キュアアムール"], ["キュアスター", "キュアミルキー", "キュアソレイユ", "キュアセレーネ", "キュアコスモ"], ["キュアグレース", "キュアフォンテーヌ", "キュアスパークル", "キュアアース"], ["キュアサマー", "キュアコーラル", "キュアパパイア", "キュアフラミンゴ", "キュアラメール"]]
632
+ => [["キュアブラック", "キュアホワイト"], ["キュアブラック", "キュアホワイト", "シャイニールミナス"], ["キュアブルーム", "キュアイーグレット"], ["キュアドリーム", "キュアルージュ", "キュアレモネード", "キュアミント", "キュアアクア"], ["キュアドリーム", "キュアルージュ", "キュアレモネード", "キュアミント", "キュアアクア", "ミルキィローズ"], ["キュアピーチ", "キュアベリー", "キュアパイン", "キュアパッション"], ["キュアブロッサム", "キュアマリン", "キュアサンシャイン", "キュアムーンライト"], ["キュアメロディ", "キュアリズム", "キュアビート", "キュアミューズ"], ["キュアハッピー", "キュアサニー", "キュアピース", "キュアマーチ", "キュアビューティ"], ["キュアハート", "キュアダイヤモンド", "キュアロゼッタ", "キュアソード", "キュアエース"], ["キュアラブリー", "キュアプリンセス", "キュアハニー", "キュアフォーチュン"], ["キュアフローラ", "キュアマーメイド", "キュアトゥインクル", "キュアスカーレット"], ["キュアミラクル", "キュアマジカル", "キュアフェリーチェ"], ["キュアホイップ", "キュアカスタード", "キュアジェラート", "キュアマカロン", "キュアショコラ", "キュアパルフェ"], ["キュアエール", "キュアアンジュ", "キュアエトワール", "キュアマシェリ", "キュアアムール"], ["キュアスター", "キュアミルキー", "キュアソレイユ", "キュアセレーネ", "キュアコスモ"], ["キュアグレース", "キュアフォンテーヌ", "キュアスパークル", "キュアアース"], ["キュアサマー", "キュアコーラル", "キュアパパイア", "キュアフラミンゴ", "キュアラメール"], ["キュアプレシャス", "キュアスパイシー", "キュアヤムヤム"]]
623
633
  ```
624
634
 
625
635
  ### Not operator
@@ -687,13 +697,13 @@ Cure.cosmo.name
687
697
  => [:black, :blue, :green, :pink, :purple, :rainbow, :red, :white, :yellow]
688
698
 
689
699
  >> Precure.all_girls.select(&:pink?).map(&:precure_name)
690
- => ["キュアブルーム", "キュアドリーム", "キュアピーチ", "キュアブロッサム", "キュアメロディ", "キュアハッピー", "キュアハート", "キュアラブリー", "キュアフローラ", "キュアミラクル", "キュアホイップ", "キュアエール", "キュアスター", "キュアグレース"]
700
+ => ["キュアブルーム", "キュアドリーム", "キュアピーチ", "キュアブロッサム", "キュアメロディ", "キュアハッピー", "キュアハート", "キュアラブリー", "キュアフローラ", "キュアミラクル", "キュアホイップ", "キュアエール", "キュアスター", "キュアグレース", "キュアプレシャス"]
691
701
 
692
702
  >> Precure.all_girls.select(&:yellow?).map(&:precure_name)
693
- => ["シャイニールミナス", "キュアレモネード", "キュアパイン", "キュアサンシャイン", "キュアミューズ", "キュアピース", "キュアロゼッタ", "キュアハニー", "キュアトゥインクル", "キュアカスタード", "キュアエトワール", "キュアソレイユ", "キュアスパークル", "キュアパパイア"]
703
+ => ["シャイニールミナス", "キュアレモネード", "キュアパイン", "キュアサンシャイン", "キュアミューズ", "キュアピース", "キュアロゼッタ", "キュアハニー", "キュアトゥインクル", "キュアカスタード", "キュアエトワール", "キュアソレイユ", "キュアスパークル", "キュアパパイア", "キュアヤムヤム"]
694
704
 
695
705
  >> Precure.all_girls.group_by{ |girl| girl.color }.map{ |color, girls| [color, girls.count] }.sort_by{ |color, girl_count| [girl_count, color] }.reverse
696
- => [["yellow", 14], ["pink", 14], ["blue", 12], ["purple", 10], ["red", 8], ["white", 5], ["green", 4], ["rainbow", 2], ["black", 1]]
706
+ => [["yellow", 15], ["pink", 15], ["blue", 13], ["purple", 10], ["red", 8], ["white", 5], ["green", 4], ["rainbow", 2], ["black", 1]]
697
707
  ```
698
708
 
699
709
  ### birthday methods
@@ -719,12 +729,12 @@ Cure.cosmo.name
719
729
  => true
720
730
 
721
731
  >> Precure.all_girls.select(&:have_birthday?).map(&:human_name)
722
- => ["美墨なぎさ", "雪城ほのか", "九条ひかり", "日向咲", "美翔舞", "相田マナ", "菱川六花", "四葉ありす", "剣崎真琴", "春野はるか", "海藤みなみ", "天ノ川きらら", "紅城トワ", "朝日奈みらい", "十六夜リコ", "宇佐美いちか", "有栖川ひまり", "立神あおい", "琴爪ゆかり", "剣城あきら", "キラ星シエル", "野乃はな", "薬師寺さあや", "輝木ほまれ", "愛崎えみる", "ルールー・アムール", "星奈ひかる", "羽衣ララ", "天宮えれな", "香久矢まどか", "ユニ", "花寺のどか", "沢泉ちゆ", "平光ひなた", "風鈴アスミ", "夏海まなつ", "涼村さんご", "一ノ瀬みのり", "滝沢あすか", "ローラ・ラメール"]
732
+ => ["美墨なぎさ", "雪城ほのか", "九条ひかり", "日向咲", "美翔舞", "相田マナ", "菱川六花", "四葉ありす", "剣崎真琴", "春野はるか", "海藤みなみ", "天ノ川きらら", "紅城トワ", "朝日奈みらい", "十六夜リコ", "宇佐美いちか", "有栖川ひまり", "立神あおい", "琴爪ゆかり", "剣城あきら", "キラ星シエル", "野乃はな", "薬師寺さあや", "輝木ほまれ", "愛崎えみる", "ルールー・アムール", "星奈ひかる", "羽衣ララ", "天宮えれな", "香久矢まどか", "ユニ", "花寺のどか", "沢泉ちゆ", "平光ひなた", "風鈴アスミ", "夏海まなつ", "涼村さんご", "一ノ瀬みのり", "滝沢あすか", "ローラ・ラメール", "和実ゆい", "芙羽ここね", "華満らん"]
723
733
  >> Precure.all_girls.select(&:have_birthday?).sort_by { |girl| Date.parse(girl.birthday) }.map{ |girl| [girl.birthday, girl.human_name] }
724
- => [["1/7", "宇佐美いちか"], ["1/20", "野乃はな"], ["3/9", "花寺のどか"], ["4/4", "雪城ほのか"], ["4/8", "輝木ほまれ"], ["4/10", "春野はるか"], ["4/12", "星奈ひかる"], ["4/16", "有栖川ひまり"], ["5/9", "涼村さんご"], ["5/28", "四葉ありす"], ["6/10", "薬師寺さあや"], ["6/11", "琴爪ゆかり"], ["6/12", "朝日奈みらい"], ["6/30", "ローラ・ラメール"], ["7/7", "羽衣ララ"], ["7/15", "愛崎えみる"], ["7/20", "海藤みなみ"], ["7/30", "キラ星シエル"], ["8/1", "夏海まなつ"], ["8/4", "相田マナ"], ["8/7", "日向咲"], ["8/16", "風鈴アスミ"], ["8/21", "沢泉ちゆ"], ["8/27", "立神あおい"], ["9/8", "天宮えれな"], ["9/9", "九条ひかり"], ["9/12", "天ノ川きらら"], ["9/17", "菱川六花"], ["9/23", "ルールー・アムール"], ["9/24", "剣城あきら"], ["10/4", "平光ひなた"], ["10/10", "美墨なぎさ"], ["10/11", "ユニ"], ["10/15", "滝沢あすか"], ["11/4", "剣崎真琴"], ["11/12", "十六夜リコ"], ["11/20", "美翔舞"], ["11/21", "一ノ瀬みのり"], ["11/23", "香久矢まどか"], ["12/15", "紅城トワ"]]
734
+ => [["1/7", "宇佐美いちか"], ["1/20", "野乃はな"], ["3/9", "花寺のどか"], ["3/13", "芙羽ここね"], ["4/4", "雪城ほのか"], ["4/8", "輝木ほまれ"], ["4/10", "春野はるか"], ["4/12", "星奈ひかる"], ["4/16", "有栖川ひまり"], ["5/9", "涼村さんご"], ["5/28", "四葉ありす"], ["6/10", "薬師寺さあや"], ["6/11", "琴爪ゆかり"], ["6/12", "朝日奈みらい"], ["6/30", "ローラ・ラメール"], ["7/7", "羽衣ララ"], ["7/11", "華満らん"], ["7/15", "愛崎えみる"], ["7/20", "海藤みなみ"], ["7/30", "キラ星シエル"], ["8/1", "夏海まなつ"], ["8/4", "相田マナ"], ["8/7", "日向咲"], ["8/16", "風鈴アスミ"], ["8/21", "沢泉ちゆ"], ["8/27", "立神あおい"], ["8/31", "和実ゆい"], ["9/8", "天宮えれな"], ["9/9", "九条ひかり"], ["9/12", "天ノ川きらら"], ["9/17", "菱川六花"], ["9/23", "ルールー・アムール"], ["9/24", "剣城あきら"], ["10/4", "平光ひなた"], ["10/10", "美墨なぎさ"], ["10/11", "ユニ"], ["10/15", "滝沢あすか"], ["11/4", "剣崎真琴"], ["11/12", "十六夜リコ"], ["11/20", "美翔舞"], ["11/21", "一ノ瀬みのり"], ["11/23", "香久矢まどか"], ["12/15", "紅城トワ"]]
725
735
 
726
736
  >> Precure.all_girls.select(&:have_birthday?).map(&:human_name).count
727
- => 40
737
+ => 43
728
738
  ```
729
739
 
730
740
  * `has_birthday?` is alias to `have_birthday?`
@@ -25,7 +25,7 @@ cure_grace: &cure_grace
25
25
  プリキュア!ヒーリングフラワー!
26
26
  お大事に
27
27
  transform_calls:
28
- - precure_operation
28
+ - operation
29
29
  grace:
30
30
  <<: *cure_grace
31
31
 
@@ -56,7 +56,7 @@ cure_fontaine: &cure_fontaine
56
56
  プリキュア!ヒーリングストリーム!
57
57
  お大事に
58
58
  transform_calls:
59
- - precure_operation
59
+ - operation
60
60
  fontaine:
61
61
  <<: *cure_fontaine
62
62
 
@@ -87,7 +87,7 @@ cure_sparkle: &cure_sparkle
87
87
  プリキュア!ヒーリングフラッシュ!
88
88
  お大事に
89
89
  transform_calls:
90
- - precure_operation
90
+ - operation
91
91
  sparkle:
92
92
  <<: *cure_sparkle
93
93
 
@@ -118,6 +118,6 @@ cure_earth: &cure_earth
118
118
  プリキュア・ヒーリングハリケーン!
119
119
  お大事に
120
120
  transform_calls:
121
- - precure_operation
121
+ - operation
122
122
  earth:
123
123
  <<: *cure_earth
@@ -16,7 +16,40 @@ cure_summer: &cure_summer
16
16
  ドレス!
17
17
  ときめく常夏!キュアサマー!
18
18
  はぁー!
19
- 4人揃って!トロピカル~ジュ!プリキュア!
19
+ ${random_transform_word}
20
+ トロピカル~ジュ!プリキュア!
21
+ random_transform_words: &random_transform_words
22
+ - 4人揃って!
23
+ - 今日も元気だ!
24
+ - よく食べよく寝る!
25
+ - エキストラだよ!
26
+ - 笑顔は100点!
27
+ - 雨にも負けない!
28
+ - 噂も吹き飛ぶ!
29
+ - 悩みも吹き飛ぶ!
30
+ - よいこの友達!
31
+ - 今日も元気だ!
32
+ - 5人揃って!
33
+ - 年中無休だ!
34
+ - 一人迷子だ!
35
+ - お祭り大好き!
36
+ - 転んで泣かない!
37
+ - いいとこ見せたい!
38
+ - 光る5つ星!
39
+ - 今日も元気だ!
40
+ - メイクは気合だ!
41
+ - 6人揃って!
42
+ - 雪の国でも!
43
+ - 子どももなれるよ!
44
+ - 今日も元気だ!
45
+ - 仮装じゃないよ!
46
+ - 今日も元気だ!
47
+ - 今日も本気だ!
48
+ - 燃えるど根性!
49
+ - 今日も元気だ!
50
+ - 全速前進!
51
+ - 絶対負けない!
52
+ - あっという間に!
20
53
  # extra_names:
21
54
  attack_messages:
22
55
  - |-
@@ -24,7 +57,7 @@ cure_summer: &cure_summer
24
57
  プリキュア!おてんとサマーストライク!
25
58
  ビクトリー!
26
59
  transform_calls:
27
- - precure_tropical_change
60
+ - tropical_change
28
61
  summer:
29
62
  <<: *cure_summer
30
63
 
@@ -46,7 +79,9 @@ cure_coral: &cure_coral
46
79
  ドレス!
47
80
  きらめく宝石!キュアコーラル!
48
81
  はぁー!
49
- 4人揃って!トロピカル~ジュ!プリキュア!
82
+ ${random_transform_word}
83
+ トロピカル~ジュ!プリキュア!
84
+ random_transform_words: *random_transform_words
50
85
  # extra_names:
51
86
  attack_messages:
52
87
  - |-
@@ -54,7 +89,7 @@ cure_coral: &cure_coral
54
89
  プリキュア!もこもこコーラルディフュージョン!
55
90
  ビクトリー!
56
91
  transform_calls:
57
- - precure_tropical_change
92
+ - tropical_change
58
93
  coral:
59
94
  <<: *cure_coral
60
95
 
@@ -76,7 +111,9 @@ cure_papaya: &cure_papaya
76
111
  ドレス!
77
112
  ひらめく果実!キュアパパイア!
78
113
  はぁー!
79
- 4人揃って!トロピカル~ジュ!プリキュア!
114
+ ${random_transform_word}
115
+ トロピカル~ジュ!プリキュア!
116
+ random_transform_words: *random_transform_words
80
117
  # extra_names:
81
118
  attack_messages:
82
119
  - |-
@@ -84,7 +121,7 @@ cure_papaya: &cure_papaya
84
121
  プリキュア!ぱんぱかパパイアショット!
85
122
  ビクトリー!
86
123
  transform_calls:
87
- - precure_tropical_change
124
+ - tropical_change
88
125
  papaya:
89
126
  <<: *cure_papaya
90
127
 
@@ -106,7 +143,9 @@ cure_flamingo: &cure_flamingo
106
143
  ドレス!
107
144
  はためく翼!キュアフラミンゴ!
108
145
  はぁー!
109
- 4人揃って!トロピカル~ジュ!プリキュア!
146
+ ${random_transform_word}
147
+ トロピカル~ジュ!プリキュア!
148
+ random_transform_words: *random_transform_words
110
149
  # extra_names:
111
150
  attack_messages:
112
151
  - |-
@@ -114,7 +153,7 @@ cure_flamingo: &cure_flamingo
114
153
  プリキュア!ぶっとびフラミンゴスマッシュ!
115
154
  ビクトリー!
116
155
  transform_calls:
117
- - precure_tropical_change
156
+ - tropical_change
118
157
  flamingo:
119
158
  <<: *cure_flamingo
120
159
 
@@ -134,12 +173,16 @@ cure_lamer: &cure_lamer
134
173
  ネイル!
135
174
  ドレス!
136
175
  ゆらめく大海原!キュアラメール!
176
+ はぁー!
177
+ ${random_transform_word}
178
+ トロピカル~ジュ!プリキュア!
179
+ random_transform_words: *random_transform_words
137
180
  # extra_names:
138
181
  attack_messages:
139
182
  - |-
140
183
  プリキュア!くるくるラメールストリーム!
141
184
  ビクトリー!
142
185
  transform_calls:
143
- - precure_tropical_change
186
+ - tropical_change
144
187
  lamer:
145
188
  <<: *cure_lamer
@@ -0,0 +1,104 @@
1
+ cure_precious: &cure_precious
2
+ girl_name: cure_precious
3
+ human_name: 和実ゆい
4
+ precure_name: キュアプレシャス
5
+ cast_name: 菱川花菜
6
+ color: pink
7
+ created_date: 2022-02-06 # episode 1
8
+ birthday: 8/31
9
+ transform_message: |-
10
+ コメー!
11
+ プリキュア!デリシャスタンバイ!
12
+ Party Go!
13
+ ニギニギ!
14
+ コメコメ!
15
+ ハートを!
16
+ コメコメ!
17
+ シェアリングエナジー!
18
+ コメー!
19
+ コメコメ)
20
+ あつあつごはんで、みなぎるパワー!
21
+ キュアプレシャス!
22
+ おいしい笑顔で満たしてあげる!
23
+ # extra_names:
24
+ attack_messages:
25
+ - |-
26
+ プリキュア!プレシャストライアングル!
27
+ はー!
28
+ はー!
29
+ お腹いっぱい
30
+ ごちそうさまでした!
31
+ transform_calls:
32
+ - delicioustandby
33
+ precious:
34
+ <<: *cure_precious
35
+
36
+ cure_spicy: &cure_spicy
37
+ girl_name: cure_spicy
38
+ human_name: 芙羽ここね
39
+ precure_name: キュアスパイシー
40
+ cast_name: 清水理沙
41
+ color: blue
42
+ created_date: 2022-02-27 # episode 4
43
+ birthday: 3/13
44
+ transform_message: |-
45
+ パム!
46
+ プリキュア!デリシャスタンバイ!
47
+ Party Go!
48
+ オープン
49
+ パム!
50
+ サンド!
51
+ パムパム!
52
+ シェアリングエナジー!
53
+ テイスティー!
54
+ パムパム!
55
+ ふわふわサンドde心にスパイス!
56
+ キュアスパイシー!
57
+ わけあうおいしさ、焼きつけるわ!
58
+ # extra_names:
59
+ attack_messages:
60
+ - |-
61
+ プリキュア!スパイシーサークル!
62
+ はー!
63
+ はー!
64
+ お腹いっぱい
65
+ ごちそうさまでした!
66
+ transform_calls:
67
+ - delicioustandby
68
+ spicy:
69
+ <<: *cure_spicy
70
+
71
+ cure_yumyum: &cure_yumyum
72
+ girl_name: cure_yumyum
73
+ human_name: 華満らん
74
+ precure_name: キュアヤムヤム
75
+ cast_name: 井口裕香
76
+ color: yellow
77
+ created_date: 2022-04-24 # episode 7
78
+ birthday: 7/11
79
+ transform_message: |-
80
+ メン!
81
+ プリキュア!デリシャスタンバイ!
82
+ Party Go!
83
+ クルクル!
84
+ メンメン!
85
+ ミラクル!
86
+ メンメン!
87
+ シェアリングエナジー!
88
+ ワンタン!
89
+ メンメン!
90
+ きらめくヌードル・エモーション!
91
+ キュアヤムヤム!
92
+ おいしいの独り占め、ゆるさないよ!
93
+ # extra_names:
94
+ attack_messages:
95
+ - |-
96
+ プリキュア!ヤムヤムラインズ!
97
+ はー!
98
+ はー!
99
+ お腹いっぱい
100
+ ごちそうさまでした!
101
+ transform_calls:
102
+ - delicioustandby
103
+ yumyum:
104
+ <<: *cure_yumyum
data/config/series.yml CHANGED
@@ -235,7 +235,7 @@ tropical_rouge: &tropical_rouge
235
235
  series_name: tropical_rouge
236
236
  title: トロピカル~ジュ!プリキュア
237
237
  started_date: 2021-02-28
238
- # ended_date: 2021-01-
238
+ ended_date: 2022-01-30
239
239
  girls:
240
240
  - cure_summer
241
241
  - cure_coral
@@ -244,3 +244,15 @@ tropical_rouge: &tropical_rouge
244
244
  - cure_lamer
245
245
  tropical_rouge_precure:
246
246
  <<: *tropical_rouge
247
+ #######################################################
248
+ delicious_party: &delicious_party
249
+ series_name: delicious_party
250
+ title: デリシャスパーティ♡プリキュア
251
+ started_date: 2022-02-06
252
+ # ended_date: 2023-01-
253
+ girls:
254
+ - cure_precious
255
+ - cure_spicy
256
+ - cure_yumyum
257
+ delicious_party_precure:
258
+ <<: *delicious_party
@@ -22,6 +22,14 @@ module Rubicure
22
22
  nil
23
23
  end
24
24
  end
25
+
26
+ module_function
27
+
28
+ # @param yaml_file [String]
29
+ # @return [Hash]
30
+ def load_yaml_file(yaml_file)
31
+ YAML.safe_load(File.read(yaml_file), permitted_classes: [Date], aliases: true)
32
+ end
25
33
  end
26
34
  end
27
35
  end
data/lib/rubicure/girl.rb CHANGED
@@ -22,6 +22,7 @@ module Rubicure
22
22
  :extra_names,
23
23
  :attack_messages,
24
24
  :transform_calls,
25
+ :random_transform_words,
25
26
  ].freeze
26
27
 
27
28
  attr_accessor :io
@@ -80,7 +81,15 @@ module Rubicure
80
81
  end
81
82
 
82
83
  state = inc_current_state
83
- print_by_line transform_message if state == 1
84
+
85
+ message =
86
+ if random_transform_words && !random_transform_words.empty?
87
+ random_transform_word = random_transform_words.sample
88
+ transform_message.gsub("${random_transform_word}", random_transform_word)
89
+ else
90
+ transform_message
91
+ end
92
+ print_by_line message if state == 1
84
93
 
85
94
  self
86
95
  end
@@ -215,7 +224,7 @@ module Rubicure
215
224
  # @return [Hash] content of config/girls/*.yml
216
225
  def config
217
226
  unless @config
218
- @config = SengiriYaml.load_dir("#{File.dirname(__FILE__)}/../../config/girls").deep_symbolize_keys
227
+ @config = SengiriYaml.load_dir("#{File.dirname(__FILE__)}/../../config/girls", permitted_classes: [Date], aliases: true).deep_symbolize_keys
219
228
  end
220
229
  @config
221
230
  end
@@ -293,8 +302,7 @@ module Rubicure
293
302
  return false unless has_key?(:transform_calls)
294
303
 
295
304
  shortened_name = method_name.to_s.
296
- sub(/\Aprecure_|_precure\z/, "").
297
- sub(/!\z/, "")
305
+ sub(/\Aprecure_|_precure\z/, "").delete_suffix("!")
298
306
 
299
307
  transform_calls.include?(shortened_name)
300
308
  end
@@ -6,6 +6,8 @@ module Rubicure
6
6
  include Hashie::Extensions::MethodAccess
7
7
 
8
8
  class << self
9
+ include Rubicure::Concerns::Util
10
+
9
11
  # @return [Array<Symbol>]
10
12
  def names
11
13
  config.keys
@@ -24,7 +26,7 @@ module Rubicure
24
26
  def config
25
27
  unless @config
26
28
  config_file = "#{File.dirname(__FILE__)}/../../config/movies.yml"
27
- @config = YAML.load_file(config_file).deep_symbolize_keys
29
+ @config = load_yaml_file(config_file).deep_symbolize_keys
28
30
  end
29
31
  @config
30
32
  end
@@ -87,6 +87,8 @@ module Rubicure
87
87
  end
88
88
 
89
89
  class << self
90
+ include Rubicure::Concerns::Util
91
+
90
92
  # @return [Array<Symbol>]
91
93
  def names
92
94
  config.keys
@@ -105,7 +107,7 @@ module Rubicure
105
107
  def config
106
108
  unless @config
107
109
  config_file = "#{File.dirname(__FILE__)}/../../config/series.yml"
108
- @config = YAML.load_file(config_file).deep_symbolize_keys
110
+ @config = load_yaml_file(config_file).deep_symbolize_keys
109
111
  end
110
112
  @config
111
113
  end
@@ -1,3 +1,3 @@
1
1
  module Rubicure
2
- VERSION = "2.1.5".freeze
2
+ VERSION = "3.1.0".freeze
3
3
  end
data/rubicure.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.homepage = "https://github.com/sue445/rubicure"
13
13
  spec.license = "MIT"
14
14
 
15
- spec.required_ruby_version = ">= 2.4"
15
+ spec.required_ruby_version = ">= 2.6"
16
16
 
17
17
  if spec.respond_to?(:metadata)
18
18
  spec.metadata["homepage_uri"] = spec.homepage
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.metadata["rubygems_mfa_required"] = "true"
22
22
  else
23
23
  raise "RubyGems 2.0 or newer is required to protect against " \
24
- "public gem pushes."
24
+ "public gem pushes."
25
25
  end
26
26
 
27
27
  spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
36
36
 
37
37
  spec.add_dependency "activesupport", ">= 5.0.0"
38
38
  spec.add_dependency "hashie", ">= 2.0.5"
39
- spec.add_dependency "sengiri_yaml", ">= 0.0.2"
39
+ spec.add_dependency "sengiri_yaml", ">= 1.0.0"
40
40
 
41
41
  spec.add_development_dependency "bundler", ">= 1.3.5"
42
42
  spec.add_development_dependency "coveralls"
@@ -47,7 +47,7 @@ Gem::Specification.new do |spec|
47
47
  spec.add_development_dependency "rspec-collection_matchers"
48
48
  spec.add_development_dependency "rspec-its"
49
49
  spec.add_development_dependency "rspec-parameterized", ">= 0.3.2"
50
- spec.add_development_dependency "rubocop", "1.7.0"
50
+ spec.add_development_dependency "rubocop", "1.24.0"
51
51
  spec.add_development_dependency "rubocop_auto_corrector"
52
52
  spec.add_development_dependency "rubocop-performance", "1.9.2"
53
53
  spec.add_development_dependency "rubocop-rake", "0.5.1"
@@ -3,7 +3,7 @@ describe "girls_checker" do # rubocop:disable RSpec/DescribeClass
3
3
 
4
4
  config_files.each do |config_file|
5
5
  describe "config/girls/#{config_file.basename}" do
6
- girls = YAML.load_file(config_file)
6
+ girls = Rubicure::Concerns::Util.load_yaml_file(config_file)
7
7
 
8
8
  girls.each do |girl_name, girl|
9
9
  describe girl_name do
@@ -36,6 +36,20 @@ describe "girls_checker" do # rubocop:disable RSpec/DescribeClass
36
36
  end
37
37
  end
38
38
  end
39
+
40
+ transform_calls = Array(girl["transform_calls"])
41
+
42
+ describe "#transform_calls", unless: transform_calls.empty? do
43
+ subject { transform_calls }
44
+
45
+ transform_calls.count.times do |n|
46
+ # rubocop:disable RSpec/RepeatedDescription `expect().not_to all( matcher )` is not supported.
47
+ its([n]) { should_not be_start_with "precure_" }
48
+ its([n]) { should_not be_end_with "_precure" }
49
+ its([n]) { should_not be_end_with "!" }
50
+ # rubocop:enable RSpec/RepeatedDescription
51
+ end
52
+ end
39
53
  end
40
54
  end
41
55
  end
@@ -1,5 +1,5 @@
1
1
  describe "config/series.yml" do # rubocop:disable RSpec/DescribeClass
2
- series = YAML.load_file("#{spec_dir}/../config/series.yml")
2
+ series = Rubicure::Concerns::Util.load_yaml_file("#{spec_dir}/../config/series.yml")
3
3
 
4
4
  series.values.uniq {|attributes| attributes["series_name"] }.each do |attributes|
5
5
  context attributes["title"] do
@@ -86,7 +86,7 @@ describe Rubicure::Core do
86
86
  context "Without arg" do
87
87
  subject { instance.all_girls }
88
88
 
89
- let(:precure_count) { 70 }
89
+ let(:precure_count) { 73 }
90
90
 
91
91
  its(:count) { should == precure_count }
92
92
  it { should include Cure.echo }
@@ -1,16 +1,17 @@
1
1
  describe Rubicure::Girl do
2
2
  let(:girl) do
3
3
  girl = Rubicure::Girl[
4
- girl_name: girl_name,
5
- human_name: human_name,
6
- precure_name: precure_name,
7
- cast_name: cast_name,
8
- created_date: created_date,
9
- extra_names: extra_names,
10
- transform_message: transform_message,
11
- attack_messages: attack_messages,
12
- transform_calls: transform_calls,
13
- color: color,
4
+ girl_name: girl_name,
5
+ human_name: human_name,
6
+ precure_name: precure_name,
7
+ cast_name: cast_name,
8
+ created_date: created_date,
9
+ extra_names: extra_names,
10
+ transform_message: transform_message,
11
+ attack_messages: attack_messages,
12
+ transform_calls: transform_calls,
13
+ color: color,
14
+ random_transform_words: random_transform_words,
14
15
  ]
15
16
  girl.io = mock_io
16
17
  girl
@@ -38,6 +39,7 @@ describe Rubicure::Girl do
38
39
  ]
39
40
  end
40
41
  let(:transform_calls) { %w[smile_charge] }
42
+ let(:random_transform_words) { nil }
41
43
 
42
44
  describe "#name" do
43
45
  context "when before transform" do
@@ -143,6 +145,45 @@ describe Rubicure::Girl do
143
145
  it { expect(girl.state_names).to eq ["朝日奈みらい", "キュアミラクル(ダイヤスタイル)"] }
144
146
  end
145
147
  end
148
+
149
+ context "when Cure summer" do
150
+ let(:girl_name) { "cure_summer" }
151
+ let(:human_name) { "夏海まなつ" }
152
+ let(:precure_name) { "キュアサマー" }
153
+ let(:cast_name) { "ファイルーズあい" }
154
+ let(:created_date) { date("2021-02-28") }
155
+ let(:transform_calls) { %w[precure_tropical_change] }
156
+ let(:color) { "white" }
157
+
158
+ let(:transform_message) do
159
+ <<~MSG
160
+ プリキュア!トロピカルチェンジ!
161
+ レッツメイク!キャッチ!
162
+ チーク!
163
+ アイズ!
164
+ ヘアー!
165
+ リップ!
166
+ ドレス!
167
+ ときめく常夏!キュアサマー!
168
+ はぁー!
169
+ ${random_transform_word}
170
+ トロピカル~ジュ!プリキュア!
171
+ MSG
172
+ end
173
+
174
+ let(:random_transform_words) do
175
+ %w[
176
+ 4人揃って!
177
+ 今日も元気だ!
178
+ ]
179
+ end
180
+
181
+ it "stdout includes one of random_transform_words" do
182
+ girl.transform!
183
+
184
+ expect(mock_io.string).to include("4人揃って!").or include("今日も元気だ!")
185
+ end
186
+ end
146
187
  end
147
188
 
148
189
  describe "#==" do
@@ -19,6 +19,7 @@ describe Rubicure::Series do
19
19
  :star_twinkle,
20
20
  :healingood,
21
21
  :tropical_rouge,
22
+ :delicious_party,
22
23
  ]
23
24
  end
24
25
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubicure
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.5
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - sue445
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-17 00:00:00.000000000 Z
11
+ date: 2022-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.0.2
47
+ version: 1.0.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 0.0.2
54
+ version: 1.0.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -184,14 +184,14 @@ dependencies:
184
184
  requirements:
185
185
  - - '='
186
186
  - !ruby/object:Gem::Version
187
- version: 1.7.0
187
+ version: 1.24.0
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - '='
193
193
  - !ruby/object:Gem::Version
194
- version: 1.7.0
194
+ version: 1.24.0
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: rubocop_auto_corrector
197
197
  requirement: !ruby/object:Gem::Requirement
@@ -340,6 +340,7 @@ files:
340
340
  - config/girls/016_star_twinkle.yml
341
341
  - config/girls/017_healingood.yml
342
342
  - config/girls/018_tropical_rouge.yml
343
+ - config/girls/019_delicious_party.yml
343
344
  - config/girls/movie.yml
344
345
  - config/movies.yml
345
346
  - config/series.yml
@@ -391,14 +392,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
391
392
  requirements:
392
393
  - - ">="
393
394
  - !ruby/object:Gem::Version
394
- version: '2.4'
395
+ version: '2.6'
395
396
  required_rubygems_version: !ruby/object:Gem::Requirement
396
397
  requirements:
397
398
  - - ">="
398
399
  - !ruby/object:Gem::Version
399
400
  version: '0'
400
401
  requirements: []
401
- rubygems_version: 3.2.32
402
+ rubygems_version: 3.3.7
402
403
  signing_key:
403
404
  specification_version: 4
404
405
  summary: All about Japanese battle heroine "Pretty Cure (Precure)".