rubicure 2.1.5 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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)".