yoshiki 11.0.0.pre.11 → 11.0.0.pre.12

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: 624a862271fe20d1e371ee54c2369d19fa1ad88e447ac5a489870f6c59f5c456
4
- data.tar.gz: 23b13cb682477e168ae3379fc5b3b8b25122c2a5ce9b11821763f8cae7aa7b7c
3
+ metadata.gz: 7880f8dd34e18f32da07f286fdabfecfad92b70f420a0cc11f4a69768b84980d
4
+ data.tar.gz: 6a11267e9a64df75b2708935076400fdb6898ef5872a262ec04edc9ae0971dc8
5
5
  SHA512:
6
- metadata.gz: 64ad4e0a64799205605bf6a2b3f174d9ed17018920ff5db7321cc56eafc1f8e8c4c71d17fc87f320379e0123355477f33d2805a4c6a1ad3e64be8fe4e131ecbe
7
- data.tar.gz: e512b198eb7714d85ff507b6dfa243f10ca386a99e30d1e69aa1d988daa5c0816faf6a2bbda5c10be3c84c6f4fe2f4fb8f18629643d76c657ea5c0d307bf4266
6
+ metadata.gz: d458f79d7411fc843cf6bd3518f02a251b1d27a4492323739fd430358391b93fc8d04f00103e7068f00016cea41ff3486db707b5c19ece209872485f9f70d7d8
7
+ data.tar.gz: 328635ca21159c25ed41674d1aac844495168d4ba19306cc28d264d981d292594e578a87d6f037380893d519a21cebf01d2515bf540e8a48353ce41adbe7f438
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- yoshiki (11.0.0.pre.11)
4
+ yoshiki (11.0.0.pre.12)
5
5
  rubocop (= 1.89.0)
6
6
  rubocop-performance (= 1.26.1)
7
7
  rubocop-rake (= 0.7.1)
@@ -18,7 +18,7 @@ module RuboCop
18
18
  end
19
19
 
20
20
  def changed?
21
- @forest.direct.any? && replacement != @node.source
21
+ @forest.mutated? && replacement != @node.source
22
22
  end
23
23
 
24
24
  def replacement
@@ -36,10 +36,19 @@ module RuboCop
36
36
  @prefixes = prefixes
37
37
  @direct = []
38
38
  @all_offenses = []
39
+ @mutated = false
39
40
  @tree = Tree.new(self)
40
41
  @entries = build(node, mode_for(node), true)
41
42
  end
42
43
 
44
+ def mutated?
45
+ @mutated
46
+ end
47
+
48
+ def mutated!
49
+ @mutated = true
50
+ end
51
+
43
52
  def build node, mode, direct
44
53
  node.children.each_with_object([]) do |child, entries|
45
54
  push(entries, child, mode, direct)
@@ -129,9 +138,14 @@ module RuboCop
129
138
  def insert_path entries, path, pair, direct
130
139
  @forest.note_offense(pair, direct)
131
140
  slot = ensure_branch(entries, path.first)
132
- return if slot && merge_leaf?(slot[:children], path.drop(1), pair)
141
+ if slot && merge_leaf?(slot[:children], path.drop(1), pair)
142
+ @forest.mutated!
143
+ return
144
+ end
133
145
 
134
146
  entries.delete(slot) if slot && slot[:children].empty?
147
+ return if join_leaf?(entries, path, pair)
148
+
135
149
  append(entries, :raw, source: pair.source)
136
150
  end
137
151
 
@@ -164,11 +178,22 @@ module RuboCop
164
178
  first, *rest = path
165
179
  return add_leaf?(entries, first, pair) if rest.empty?
166
180
 
167
- slot = ensure_branch(entries, first) or return false
168
- return true if merge_leaf?(slot[:children], rest, pair)
181
+ slot = ensure_branch(entries, first)
182
+ if slot
183
+ return true if merge_leaf?(slot[:children], rest, pair)
169
184
 
170
- entries.delete(slot) if slot[:children].empty?
171
- false
185
+ entries.delete(slot) if slot[:children].empty?
186
+ end
187
+
188
+ add_leaf?(entries, path.join('_'), pair)
189
+ end
190
+
191
+ def join_leaf? entries, path, pair
192
+ return false if @forest.prefix?(path.first)
193
+ return false unless add_leaf?(entries, path.join('_'), pair)
194
+
195
+ @forest.mutated!
196
+ true
172
197
  end
173
198
 
174
199
  def add_leaf? entries, name, pair
@@ -1,5 +1,5 @@
1
1
  module Yoshiki
2
2
 
3
- VERSION = '11.0.0-11'.freeze
3
+ VERSION = '11.0.0-12'.freeze
4
4
 
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yoshiki
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.0.0.pre.11
4
+ version: 11.0.0.pre.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - BM5k