rubicure 0.3.2 → 0.4.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
  SHA1:
3
- metadata.gz: d47c971913dc65b8a0e60d8eae6b75efed8b0b30
4
- data.tar.gz: ca2bd010be4b715ed3fd24e444f174596739e2cd
3
+ metadata.gz: 4fae0537c853d35ba5e753116a9748859c4775e7
4
+ data.tar.gz: 03b6c1f88f47cdba3da1683c34203f9e9f64239c
5
5
  SHA512:
6
- metadata.gz: ed7d60d488ce7c81e761d2370679b0ed6a48d4c138e37db56baec55c6baa35a94dcbc0c3bf42deba01e80cdc4d7c914a5d063cd1ec40484754720390a0932ebe
7
- data.tar.gz: a39190b596c850e949ddca06c4bcdf5d121158ff09c2d433527f9f2d7cf050b151226898c485e361b1ccc275691e35004fb1b11cb6b5cc1c8d77b199e0a13d19
6
+ metadata.gz: 6434a47a5a103ae1f60c9e05ff1f11561f9b606843da0cd354343c0e4d32cf4ef73bbc8e0e13b5cbf7312c7f7145ca45595874efa2cdebec05908cb24c4c7ceb
7
+ data.tar.gz: f5cfd2fafb286cd6c7aee36a3ff191c3d5c5f42246dd9d8724300ada4edfff6a892a19cc9ef83ecf6cadde27ebc46779aeaebaf74c594bd89b575c810e59e659
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## master
2
- [full changelog](http://github.com/sue445/rubicure/compare/v0.3.2...master)
2
+ [full changelog](http://github.com/sue445/rubicure/compare/v0.4.0...master)
3
+
4
+ ## v0.4.0
5
+ [full changelog](http://github.com/sue445/rubicure/compare/v0.3.2...v0.4.0)
6
+
7
+ * Add maho girls precure
8
+ * https://github.com/sue445/rubicure/pull/94
3
9
 
4
10
  ## v0.3.2
5
11
  [full changelog](http://github.com/sue445/rubicure/compare/v0.3.1...v0.3.2)
data/Gemfile CHANGED
@@ -2,3 +2,9 @@ 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.1.0")
7
+ # NOTE: build is failed when use ruby 2.0 and rspec-parameterized 0.3.0+
8
+ # https://travis-ci.org/sue445/rubicure/jobs/114266855
9
+ gem "rspec-parameterized", "< 0.3.0"
10
+ end
data/README.md CHANGED
@@ -331,6 +331,55 @@ Cure.fortune.kirarin_star_symphony!
331
331
  ハピネスチャージプリキュア!
332
332
  ```
333
333
 
334
+ ### When [Maho Girls PreCure!](https://en.wikipedia.org/wiki/Maho_Girls_PreCure!)
335
+ ```ruby
336
+ mirai = Cure.miracle
337
+
338
+ mirai.name
339
+ # => "朝日奈みらい"
340
+
341
+ mirai.cure_up_rapapa! :diamond
342
+ # or
343
+ mirai.transform! :diamond
344
+
345
+ キュアップ・ラパパ! ダイヤ!
346
+ ミラクル・マジカル・ジュエリーレ!
347
+ ふたりの奇跡!キュアミラクル!
348
+ 魔法つかいプリキュア!!
349
+
350
+ mirai.name
351
+ # => "キュアミラクル(ダイヤスタイル)"
352
+
353
+ mirai.attack!
354
+ リンクルステッキ!
355
+ ダイヤ!永遠の輝きを私達の手に!
356
+ フルフルリンクル!
357
+ プリキュア!ダイヤモンドエターナル!
358
+
359
+ mirai.humanize!
360
+
361
+ mirai.name
362
+ # => "朝日奈みらい"
363
+
364
+ mirai.cure_up_rapapa! :ruby
365
+ # or
366
+ mirai.transform! :ruby
367
+
368
+ キュアップ・ラパパ! ルビー!
369
+ ミラクル・マジカル・ジュエリーレ!
370
+ ふたりの奇跡!キュアミラクル!
371
+ 魔法つかいプリキュア!!
372
+
373
+ mirai.name
374
+ # => "キュアミラクル(ルビースタイル)"
375
+
376
+ mirai.attack!
377
+ リンクルステッキ!
378
+ ルビー!紅の情熱よ私達の手に!
379
+ フルフルリンクル!
380
+ プリキュア!ルビーパッショナーレ!
381
+ ```
382
+
334
383
  ### Precure allstars
335
384
  ```ruby
336
385
  Precure.all_stars.count
@@ -0,0 +1,95 @@
1
+ cure_miracle: &cure_miracle
2
+ girl_name: cure_miracle
3
+ human_name: 朝日奈みらい
4
+ precure_name: キュアミラクル
5
+ cast_name: 高橋李依
6
+ color: pink
7
+ created_date: 2016-02-07 # episode 1
8
+ birthday: 6/12
9
+ extra_names:
10
+ transform_calls:
11
+ - cure_up_rapapa
12
+ transform_styles:
13
+ diamond:
14
+ girl_name: cure_miracle_diamond
15
+ precure_name: キュアミラクル(ダイヤスタイル)
16
+ color: pink
17
+ created_date: 2016-02-07 # episode 1
18
+ transform_message: |-
19
+ キュアップ・ラパパ! ダイヤ!
20
+ ミラクル・マジカル・ジュエリーレ!
21
+ ふたりの奇跡!キュアミラクル!
22
+ 魔法つかいプリキュア!!
23
+ attack_messages:
24
+ - |
25
+ リンクルステッキ!
26
+ ダイヤ!永遠の輝きを私達の手に!
27
+ フルフルリンクル!
28
+ プリキュア!ダイヤモンドエターナル!
29
+
30
+ ruby:
31
+ girl_name: cure_miracle_ruby
32
+ precure_name: キュアミラクル(ルビースタイル)
33
+ color: red
34
+ created_date: 2016-02-21 # episode 3
35
+ transform_message: |-
36
+ キュアップ・ラパパ! ルビー!
37
+ ミラクル・マジカル・ジュエリーレ!
38
+ ふたりの奇跡!キュアミラクル!
39
+ 魔法つかいプリキュア!!
40
+ attack_messages:
41
+ - |
42
+ リンクルステッキ!
43
+ ルビー!紅の情熱よ私達の手に!
44
+ フルフルリンクル!
45
+ プリキュア!ルビーパッショナーレ!
46
+
47
+ cure_magical: &cure_magical
48
+ girl_name: cure_magical
49
+ human_name: リコ
50
+ precure_name: キュアマジカル
51
+ cast_name: 堀江由衣
52
+ color: blue
53
+ created_date: 2016-02-07 # episode 1
54
+ birthday: 11/12
55
+ extra_names:
56
+ transform_calls:
57
+ - cure_up_rapapa
58
+ transform_styles:
59
+ diamond:
60
+ girl_name: cure_magical_ruby
61
+ precure_name: キュアマジカル(ダイヤスタイル)
62
+ color: red
63
+ created_date: 2016-02-07 # episode 1
64
+ transform_message:
65
+ キュアップ・ラパパ! ルビー!
66
+ ミラクル・マジカル・ジュエリーレ!
67
+ ふたりの魔法!キュアマジカル!
68
+ 魔法つかいプリキュア!!
69
+ attack_messages:
70
+ - |
71
+ リンクルステッキ!
72
+ ルビー!紅の情熱よ私達の手に!
73
+ フルフルリンクル!
74
+ プリキュア!ルビーパッショナーレ!
75
+ ruby:
76
+ girl_name: cure_magical_ruby
77
+ precure_name: キュアマジカル(ルビースタイル)
78
+ color: red
79
+ created_date: 2016-02-21 # episode 3
80
+ transform_message:
81
+ キュアップ・ラパパ! ルビー!
82
+ ミラクル・マジカル・ジュエリーレ!
83
+ ふたりの魔法!キュアマジカル!
84
+ 魔法つかいプリキュア!!
85
+ attack_messages:
86
+ - |
87
+ リンクルステッキ!
88
+ ルビー!紅の情熱よ私達の手に!
89
+ フルフルリンクル!
90
+ プリキュア!ルビーパッショナーレ!
91
+
92
+ miracle:
93
+ <<: *cure_miracle
94
+ magical:
95
+ <<: *cure_magical
data/config/series.yml CHANGED
@@ -158,3 +158,14 @@ go_princess: &go_princess
158
158
  - cure_scarlet
159
159
  go_princess_precure:
160
160
  <<: *go_princess
161
+ #######################################################
162
+ maho_girls: &maho_girls
163
+ series_name: maho_girls
164
+ title: 魔法つかいプリキュア!
165
+ started_date: 2016-02-07
166
+ # ended_date: 2017-01-
167
+ girls:
168
+ - cure_miracle
169
+ - cure_magical
170
+ maho_girls_precure:
171
+ <<: *maho_girls
data/lib/rubicure.rb CHANGED
@@ -10,6 +10,11 @@ require "rubicure/movie"
10
10
  require "rubicure/cure"
11
11
  require "rubicure/errors"
12
12
 
13
+ begin
14
+ require "backport_dig"
15
+ rescue LoadError
16
+ end
17
+
13
18
  module Rubicure
14
19
  def self.core
15
20
  Rubicure::Core.instance
data/lib/rubicure/cure.rb CHANGED
@@ -34,18 +34,15 @@ EOF
34
34
  humanize!
35
35
  @another_human_name ||= @__another_human_name
36
36
 
37
- # setup @state_names
38
- state_names
39
-
40
37
  # rubocop:disable Style/ParallelAssignment
41
- @state_names[0], @another_human_name = @another_human_name, @state_names[0]
38
+ self[:human_name], @another_human_name = @another_human_name, self[:human_name]
42
39
  # rubocop:enable Style/ParallelAssignment
43
40
 
44
41
  self
45
42
  end
46
43
 
47
44
  def target.rollback
48
- @state_names[0] = @__original_human_name
45
+ self[:human_name] = @__original_human_name
49
46
  @another_human_name = @__another_human_name
50
47
  self
51
48
  end
data/lib/rubicure/girl.rb CHANGED
@@ -7,6 +7,20 @@ module Rubicure
7
7
  class Girl < Hash
8
8
  include Hashie::Extensions::MethodAccess
9
9
 
10
+ ATTRIBUTES = [
11
+ :girl_name,
12
+ :human_name,
13
+ :precure_name,
14
+ :cast_name,
15
+ :color,
16
+ :created_date,
17
+ :birthday,
18
+ :transform_message,
19
+ :extra_names,
20
+ :attack_messages,
21
+ :transform_calls,
22
+ ].freeze
23
+
10
24
  attr_writer :io
11
25
 
12
26
  def current_state
@@ -14,11 +28,9 @@ module Rubicure
14
28
  end
15
29
 
16
30
  def state_names
17
- return @state_names if @state_names
18
-
19
- @state_names = [human_name, precure_name]
20
- @state_names += Array.wrap(extra_names) if respond_to?(:extra_names)
21
- @state_names
31
+ state_names = [human_name, precure_name]
32
+ state_names += Array.wrap(extra_names) if respond_to?(:extra_names)
33
+ state_names
22
34
  end
23
35
 
24
36
  def ==(other)
@@ -33,7 +45,12 @@ module Rubicure
33
45
 
34
46
  # human -> precure ( -> extra forms ) -> human ...
35
47
  # @return [Rubicure::Girl] self
36
- def transform!
48
+ def transform!(style = nil)
49
+ if style
50
+ raise "Unknown style: #{style}" unless has_transform_style?(style)
51
+ @current_transform_style = style
52
+ end
53
+
37
54
  state = inc_current_state
38
55
  print_by_line transform_message if state == 1
39
56
 
@@ -42,6 +59,7 @@ module Rubicure
42
59
 
43
60
  def humanize!
44
61
  @current_state = 0
62
+ @current_transform_style = nil
45
63
  self
46
64
  end
47
65
  alias_method :humanize, :humanize!
@@ -67,10 +85,20 @@ module Rubicure
67
85
  end
68
86
 
69
87
  def have_birthday? # rubocop:disable Style/PredicateName
70
- respond_to?(:birthday)
88
+ has_key?(:birthday)
71
89
  end
72
90
  alias_method :has_birthday?, :have_birthday?
73
91
 
92
+ ATTRIBUTES.each do |attribute|
93
+ define_method attribute do
94
+ if @current_transform_style
95
+ dig(:transform_styles, @current_transform_style, attribute) || self[attribute]
96
+ else
97
+ self[attribute]
98
+ end
99
+ end
100
+ end
101
+
74
102
  class << self
75
103
  attr_writer :sleep_sec
76
104
 
@@ -143,6 +171,11 @@ module Rubicure
143
171
 
144
172
  private
145
173
 
174
+ def has_transform_style?(style)
175
+ return false unless respond_to?(:transform_styles)
176
+ transform_styles.keys.map(&:to_sym).include?(style.to_sym)
177
+ end
178
+
146
179
  def inc_current_state
147
180
  @current_state = current_state + 1
148
181
  @current_state = 0 unless @current_state < state_names.length
@@ -1,3 +1,3 @@
1
1
  module Rubicure
2
- VERSION = "0.3.2"
2
+ VERSION = "0.4.0"
3
3
  end
data/rubicure.gemspec CHANGED
@@ -24,10 +24,15 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency "hashie", ">= 2.0.5"
25
25
  spec.add_dependency "sengiri_yaml", ">= 0.0.2"
26
26
 
27
+ if Gem::Version.create(RUBY_VERSION) < Gem::Version.create("2.3.0")
28
+ spec.add_dependency "backport_dig"
29
+ end
30
+
27
31
  spec.add_development_dependency "bundler", ">= 1.3.5"
28
32
  spec.add_development_dependency "codeclimate-test-reporter"
29
33
  spec.add_development_dependency "coveralls"
30
34
  spec.add_development_dependency "delorean"
35
+ spec.add_development_dependency "pry-byebug"
31
36
  spec.add_development_dependency "rake"
32
37
  spec.add_development_dependency "rspec"
33
38
  spec.add_development_dependency "rspec-collection_matchers"
data/spec/core_spec.rb CHANGED
@@ -62,7 +62,7 @@ EOS
62
62
  context "Without arg" do
63
63
  subject { instance.all_stars }
64
64
 
65
- let(:precure_count) { 41 }
65
+ let(:precure_count) { 43 }
66
66
 
67
67
  its(:count) { should == precure_count }
68
68
  end
data/spec/girl_spec.rb CHANGED
@@ -85,6 +85,66 @@ EOF
85
85
  end
86
86
  end
87
87
 
88
+ describe "transform!" do
89
+ context "when Cure miracle" do
90
+ let(:girl) do
91
+ girl = Rubicure::Girl[
92
+ girl_name: "cure_miracle",
93
+ human_name: "朝日奈みらい",
94
+ precure_name: "キュアミラクル",
95
+ cast_name: "高橋李依",
96
+ created_date: "2016-02-07",
97
+ extra_names: nil,
98
+ transform_message: nil,
99
+ attack_messages: nil,
100
+ transform_calls: ["cure_up_rapapa"],
101
+ color: "pink",
102
+ birthday: "6/12",
103
+ transform_styles: {
104
+ diamond: {
105
+ precure_name: "キュアミラクル(ダイヤスタイル)",
106
+ transform_message: "",
107
+ },
108
+ ruby: {
109
+ precure_name: "キュアミラクル(ルビースタイル)",
110
+ transform_message: "",
111
+ },
112
+ },
113
+ ]
114
+
115
+ girl.io = mock_io
116
+ girl
117
+ end
118
+
119
+ context "transform! with diamond" do
120
+ before do
121
+ girl.transform!(:diamond)
122
+ end
123
+
124
+ it { expect(girl.name).to eq "キュアミラクル(ダイヤスタイル)" }
125
+ it { expect(girl.state_names).to eq ["朝日奈みらい", "キュアミラクル(ダイヤスタイル)"] }
126
+ end
127
+
128
+ context "transform! with ruby" do
129
+ before do
130
+ girl.transform!(:ruby)
131
+ end
132
+
133
+ it { expect(girl.name).to eq "キュアミラクル(ルビースタイル)" }
134
+ it { expect(girl.state_names).to eq ["朝日奈みらい", "キュアミラクル(ルビースタイル)"] }
135
+ end
136
+
137
+ context "cure_up_rapapa! with diamond" do
138
+ before do
139
+ girl.cure_up_rapapa!(:diamond)
140
+ end
141
+
142
+ it { expect(girl.name).to eq "キュアミラクル(ダイヤスタイル)" }
143
+ it { expect(girl.state_names).to eq ["朝日奈みらい", "キュアミラクル(ダイヤスタイル)"] }
144
+ end
145
+ end
146
+ end
147
+
88
148
  describe "#==" do
89
149
  subject { girl == other_girl }
90
150
 
data/spec/series_spec.rb CHANGED
@@ -63,6 +63,7 @@ describe Rubicure::Series do
63
63
  :dokidoki,
64
64
  :happiness_charge,
65
65
  :go_princess,
66
+ :maho_girls,
66
67
  ]
67
68
  end
68
69
 
data/spec/spec_helper.rb CHANGED
@@ -31,6 +31,7 @@ require "rspec/its"
31
31
  require "rspec/collection_matchers"
32
32
  require "delorean"
33
33
  require "tempfile"
34
+ require "pry"
34
35
 
35
36
  # Requires supporting ruby files with custom matchers and macros, etc,
36
37
  # in spec/support/ and its subdirectories.
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: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - sue445
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-07 00:00:00.000000000 Z
11
+ date: 2016-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry-byebug
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: rake
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -239,6 +253,7 @@ files:
239
253
  - config/girls/010_dokidoki.yml
240
254
  - config/girls/011_happiness_charge.yml
241
255
  - config/girls/012_go_princess.yml
256
+ - config/girls/013_maho_girls.yml
242
257
  - config/movies.yml
243
258
  - config/series.yml
244
259
  - lib/rubicure.rb