Regressed a bit, but at least it's not clobbering anymore?
This commit is contained in:
parent
704482d815
commit
a493787125
@ -51,10 +51,6 @@ module RuboCop
|
|||||||
@sorted_toplevel_stanzas ||= sort_stanzas(toplevel_stanzas)
|
@sorted_toplevel_stanzas ||= sort_stanzas(toplevel_stanzas)
|
||||||
end
|
end
|
||||||
|
|
||||||
def sorted_inner_stanzas(stanzas)
|
|
||||||
sort_stanzas(stanzas)
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def sort_stanzas(stanzas)
|
def sort_stanzas(stanzas)
|
||||||
@ -70,7 +66,8 @@ module RuboCop
|
|||||||
end
|
end
|
||||||
|
|
||||||
def stanza_order_index(stanza)
|
def stanza_order_index(stanza)
|
||||||
Constants::STANZA_ORDER.index(stanza.stanza_name)
|
stanza_name = stanza.respond_to?(:method_name) ? stanza.method_name : stanza.stanza_name
|
||||||
|
Constants::STANZA_ORDER.index(stanza_name)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -17,14 +17,17 @@ module RuboCop
|
|||||||
|
|
||||||
def on_cask(cask_block)
|
def on_cask(cask_block)
|
||||||
@cask_block = cask_block
|
@cask_block = cask_block
|
||||||
add_offenses(toplevel_stanzas)
|
stanzas = [toplevel_stanzas]
|
||||||
|
|
||||||
return unless (on_blocks = on_system_methods(toplevel_stanzas)).any?
|
puts "before on blocks: #{stanzas.first.map(&:stanza_name)}"
|
||||||
|
if (on_blocks = on_system_methods(stanzas.first)).any?
|
||||||
on_blocks.map(&:method_node).select(&:block_type?).each do |on_block|
|
on_blocks.map(&:method_node).select(&:block_type?).each do |on_block|
|
||||||
stanzas = inner_stanzas(on_block, processed_source.comments)
|
stanzas.push(inner_stanzas(on_block, processed_source.comments))
|
||||||
add_offenses(stanzas, inner: true)
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
puts "after on blocks: #{stanzas.last.map(&:method_node).select(&:send_type?).map(&:method_name) }" if on_blocks
|
||||||
|
add_offenses(stanzas)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
@ -32,18 +35,18 @@ module RuboCop
|
|||||||
attr_reader :cask_block
|
attr_reader :cask_block
|
||||||
|
|
||||||
def_delegators :cask_block, :cask_node, :toplevel_stanzas,
|
def_delegators :cask_block, :cask_node, :toplevel_stanzas,
|
||||||
:sorted_toplevel_stanzas, :sorted_inner_stanzas
|
:sorted_toplevel_stanzas
|
||||||
|
|
||||||
def add_offenses(stanzas, inner: false)
|
def add_offenses(outer_and_inner_stanzas)
|
||||||
sorted_stanzas = inner ? sorted_inner_stanzas(stanzas) : sorted_toplevel_stanzas
|
outer_and_inner_stanzas.map do |stanza_types|
|
||||||
offending_stanzas(stanzas, sorted_stanzas).each do |stanza|
|
offending_stanzas(stanza_types, sorted_toplevel_stanzas).flatten.compact.each do |stanza|
|
||||||
puts "offending stanza: #{stanza.stanza_name}"
|
name = stanza.respond_to?(:method_name) ? stanza.method_name : stanza.stanza_name
|
||||||
message = format(MESSAGE, stanza: stanza.stanza_name)
|
message = format(MESSAGE, stanza: name)
|
||||||
add_offense(stanza.source_range_with_comments, message: message) do |corrector|
|
add_offense(stanza.source_range_with_comments, message: message) do |corrector|
|
||||||
correct_stanza_index = stanzas.index(stanza)
|
correct_stanza_index = outer_and_inner_stanzas.flatten.index(stanza)
|
||||||
correct_stanza = sorted_stanzas[correct_stanza_index]
|
correct_stanza = sorted_toplevel_stanzas[correct_stanza_index]
|
||||||
puts "correct stanza: #{correct_stanza.stanza_name}"
|
corrector.replace(stanza&.source_range_with_comments, correct_stanza&.source_with_comments)
|
||||||
corrector.replace(stanza.source_range_with_comments, correct_stanza.source_with_comments)
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user