class RuboCop::Cop::Sorbet::SingleLineRbiClassModuleDefinitions

This cop ensures empty class/module definitions in RBI files are done on a single line rather than being split across multiple lines.

@example

# bad
module SomeModule
end

# good
module SomeModule; end

Constants

MSG

Public Instance Methods

autocorrect(node) click to toggle source
# File lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb, line 28
def autocorrect(node)
  -> (corrector) { corrector.replace(node, convert_newlines(node.source)) }
end
on_class(node) click to toggle source
# File lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb, line 24
def on_class(node)
  process_node(node)
end
on_module(node) click to toggle source
# File lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb, line 20
def on_module(node)
  process_node(node)
end

Protected Instance Methods

convert_newlines(source) click to toggle source
# File lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb, line 34
def convert_newlines(source)
  source.sub(/[\r\n]+\s*[\r\n]*/, "; ")
end
process_node(node) click to toggle source
# File lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb, line 38
def process_node(node)
  return if node.body
  return if node.single_line?
  add_offense(node)
end