class RuboCop::Cop::Bundler::OrderedGems
gem ‘rspec’
# For tests
gem ‘rubocop’
# For code quality
# good only if TreatCommentsAsGroupSeparators is true
gem ‘rspec’
gem ‘rubocop’
# good
gem ‘rubocop’
gem ‘rspec’
# good
gem ‘rspec’
gem ‘rubocop’
# bad
@example
Gems should be alphabetically sorted within groups.
def autocorrect(node)
def autocorrect(node) OrderedGemCorrector.correct( processed_source, node, previous_declaration(node), treat_comments_as_separators ) end
def investigate(processed_source)
def investigate(processed_source) 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