class RuboCop::Cop::Gemspec::OrderedDependencies
Dependencies in the gemspec should be alphabetically sorted.
@example
# bad spec.add_dependency 'rubocop' spec.add_dependency 'rspec' # good spec.add_dependency 'rspec' spec.add_dependency 'rubocop' # good spec.add_dependency 'rubocop' spec.add_dependency 'rspec' # bad spec.add_development_dependency 'rubocop' spec.add_development_dependency 'rspec' # good spec.add_development_dependency 'rspec' spec.add_development_dependency 'rubocop' # good spec.add_development_dependency 'rubocop' spec.add_development_dependency 'rspec' # bad spec.add_runtime_dependency 'rubocop' spec.add_runtime_dependency 'rspec' # good spec.add_runtime_dependency 'rspec' spec.add_runtime_dependency 'rubocop' # good spec.add_runtime_dependency 'rubocop' spec.add_runtime_dependency 'rspec'
@example TreatCommentsAsGroupSeparators: true (default)
# good # For code quality spec.add_dependency 'rubocop' # For tests spec.add_dependency 'rspec'
@example TreatCommentsAsGroupSeparators: false
# bad # For code quality spec.add_dependency 'rubocop' # For tests spec.add_dependency 'rspec'
Constants
- MSG
Public Instance Methods
Source
# File lib/rubocop/cop/gemspec/ordered_dependencies.rb, line 69 def on_new_investigation return if processed_source.blank? dependency_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)) next unless get_dependency_name(previous) == get_dependency_name(current) register_offense(previous, current) end end
Private Instance Methods
Source
# File lib/rubocop/cop/gemspec/ordered_dependencies.rb, line 90 def get_dependency_name(node) node.method_name end
Source
# File lib/rubocop/cop/gemspec/ordered_dependencies.rb, line 84 def previous_declaration(node) declarations = dependency_declarations(processed_source.ast) node_index = declarations.find_index(node) declarations.to_a[node_index - 1] end