class RuboCop::Cop::Performance::SortReverse
This cop identifies places where `sort { |a, b| b <=> a }` can be replaced by a faster `sort.reverse`.
@example
# bad array.sort { |a, b| b <=> a } # good array.sort.reverse
Constants
- MSG
Public Instance Methods
on_block(node)
click to toggle source
# File lib/rubocop/cop/performance/sort_reverse.rb, line 22 def on_block(node) sort_with_block?(node) do |send, var_a, var_b, body| replaceable_body?(body, var_b, var_a) do range = sort_range(send, node) add_offense(range, message: message(var_a, var_b)) do |corrector| replacement = 'sort.reverse' corrector.replace(range, replacement) end end end end
Private Instance Methods
message(var_a, var_b)
click to toggle source
# File lib/rubocop/cop/performance/sort_reverse.rb, line 38 def message(var_a, var_b) bad_method = "sort { |#{var_a}, #{var_b}| #{var_b} <=> #{var_a} }" format(MSG, bad_method: bad_method) end