class RuboCop::Cop::Bundler::OrderedGems

gem ‘rspec’
# For tests
gem ‘rubocop’
# For code quality
# bad
@example TreatCommentsAsGroupSeparators: false
gem ‘rspec’
# For tests
gem ‘rubocop’
# For code quality
# good
@example TreatCommentsAsGroupSeparators: true (default)
gem ‘rspec’
gem ‘rubocop’
# good
gem ‘rubocop’
gem ‘rspec’
# good
gem ‘rspec’
gem ‘rubocop’
# bad
@example
Gems should be alphabetically sorted within groups.

def on_new_investigation

def on_new_investigation
  return if processed_source.blank?
  gem_declarations(processed_source.ast)
    .each_cons(2) do |previous, current|
    next unless consecutive_lines(previous, current)
    next unless case_insensitive_out_of_order?(gem_name(current), gem_name(previous))
    register_offense(previous, current)
  end
end

def previous_declaration(node)

def previous_declaration(node)
  declarations = gem_declarations(processed_source.ast)
  node_index = declarations.map(&:location).find_index(node.location)
  declarations.to_a[node_index - 1]
end