class Ducalis::UncommentedGem

Constants

ALLOWED_KEYS
DETAILS
OFFENSE

Public Instance Methods

investigate(processed_source) click to toggle source
# File lib/ducalis/cops/uncommented_gem.rb, line 17
def investigate(processed_source)
  return unless processed_source.ast

  gem_declarations(processed_source.ast).select do |node|
    _, _, gemname, _args = *node
    next if commented?(processed_source, node)

    add_offense(node, :selector,
                format(OFFENSE, gem: gemname.loc.expression.source))
  end
end

Private Instance Methods

allowed_args?(args) click to toggle source
# File lib/ducalis/cops/uncommented_gem.rb, line 39
def allowed_args?(args)
  return false if args.nil? || args.type != :hash

  args.children.any? do |arg_node|
    !ALLOWED_KEYS.include?(arg_node.children.first.source)
  end
end
commented?(processed_source, node) click to toggle source
# File lib/ducalis/cops/uncommented_gem.rb, line 33
def commented?(processed_source, node)
  processed_source.comments
                  .map { |subnode| subnode.loc.line }
                  .include?(node.loc.line)
end