class RuboCop::Cop::Lint::RedundantDirGlobSort


*/.rb’].each do |file|
end
Dir.glob(‘./lib/*/.rb’).each do |file|
# good

end
Dir[‘./lib/*/.rb’].sort.each do |file|
end
Dir.glob(‘./lib/*/.rb’).sort.each do |file|
# bad
@example
will break ‘exe/files.rb` that rely on `exe.rb` file.
identical names, since directory will be loaded before the file, which
This cop is unsafe, in case of having a file and a directory with
@safety
This cop checks for redundant `sort` method to `Dir.glob` and `Dir[]`.
Sort globbed results by default in Ruby 3.0.

def multiple_argument?(glob_method)

def multiple_argument?(glob_method)
  glob_method.arguments.count >= 2 || glob_method.first_argument&.splat_type?
end

def on_send(node)

def on_send(node)
  return unless (receiver = node.receiver)
  return unless receiver.receiver&.const_type? && receiver.receiver.short_name == :Dir
  return unless GLOB_METHODS.include?(receiver.method_name)
  return if multiple_argument?(receiver)
  selector = node.loc.selector
  add_offense(selector) do |corrector|
    corrector.remove(selector)
    corrector.remove(node.loc.dot)
  end
end