From 67603189e7117b062e43fff88a4c977e2df4ae84 Mon Sep 17 00:00:00 2001 From: Philip McGavin Date: Mon, 25 Sep 2023 14:51:43 -0400 Subject: [PATCH] [select-last-with-arguments] Don't add offense if .last is called with arguments in the same vein as .first change for 0.10.1 --- lib/fasterer/scanners/method_call_scanner.rb | 2 ++ spec/support/analyzer/25_select_last_vs_reverse_detect.rb | 2 ++ 2 files changed, 4 insertions(+) diff --git a/lib/fasterer/scanners/method_call_scanner.rb b/lib/fasterer/scanners/method_call_scanner.rb index a020c8d..889e4ca 100644 --- a/lib/fasterer/scanners/method_call_scanner.rb +++ b/lib/fasterer/scanners/method_call_scanner.rb @@ -155,6 +155,8 @@ def check_last_offense case method_call.receiver.name when :select + return if method_call.arguments.count > 0 + add_offense(:select_last_vs_reverse_detect) end end diff --git a/spec/support/analyzer/25_select_last_vs_reverse_detect.rb b/spec/support/analyzer/25_select_last_vs_reverse_detect.rb index b28cea6..6f44ad9 100644 --- a/spec/support/analyzer/25_select_last_vs_reverse_detect.rb +++ b/spec/support/analyzer/25_select_last_vs_reverse_detect.rb @@ -5,3 +5,5 @@ def slow def fast ARRAY.reverse.detect { |x| (x % 10).zero? } end + +ARRAY.select { |x| (x % 10).zero? }.last(5)