module RuboCop::Cop::RequireLibrary
Ensure a require statement is present for a standard library determined by variable library_name
Public Instance Methods
ensure_required(corrector, node, library_name)
click to toggle source
# File lib/rubocop/cop/mixin/require_library.rb, line 10 def ensure_required(corrector, node, library_name) node = node.parent while node.parent&.parent? if node.parent&.begin_type? return if @required_libs.include?(library_name) remove_subsequent_requires(corrector, node, library_name) end RequireLibraryCorrector.correct(corrector, node, library_name) end
on_send(node)
click to toggle source
# File lib/rubocop/cop/mixin/require_library.rb, line 31 def on_send(node) return if node.parent&.parent? name = require_any_library?(node) return if name.nil? @required_libs.add(name) end
remove_subsequent_requires(corrector, node, library_name)
click to toggle source
# File lib/rubocop/cop/mixin/require_library.rb, line 22 def remove_subsequent_requires(corrector, node, library_name) node.right_siblings.each do |sibling| next unless require_library_name?(sibling, library_name) range = range_by_whole_lines(sibling.source_range, include_final_newline: true) corrector.remove(range) end end
Private Instance Methods
on_new_investigation()
click to toggle source
Calls superclass method
# File lib/rubocop/cop/mixin/require_library.rb, line 42 def on_new_investigation # Holds the required files at top-level @required_libs = Set.new super end