Class: RuboCop::Cop::Cask::StanzaGrouping

Inherits:
Base
  • Object
show all
Extended by:
AutoCorrector, Forwardable
Includes:
RangeHelp, CaskHelp
Defined in:
rubocops/cask/stanza_grouping.rb

Overview

This cop checks that a cask’s stanzas are grouped correctly, including nested within on_* blocks.

Constant Summary collapse

MISSING_LINE_MSG =
"stanza groups should be separated by a single empty line"
EXTRA_LINE_MSG =
"stanzas within the same group should have no lines between them"

Instance Method Summary collapse

Methods included from CaskHelp

#find_end_line, #inner_stanzas, #on_block, #on_cask_stanza_block, #on_system_methods

Instance Method Details

#on_cask(cask_block) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'rubocops/cask/stanza_grouping.rb', line 20

def on_cask(cask_block)
  @cask_block = cask_block
  @line_ops = {}
  cask_stanzas = cask_block.toplevel_stanzas
  add_offenses(cask_stanzas)

  return if (on_blocks = on_system_methods(cask_stanzas)).none?

  on_blocks.map(&:method_node).select(&:block_type?).each do |on_block|
    stanzas = inner_stanzas(on_block, processed_source.comments)
    add_offenses(stanzas)
  end
end