Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'rubocop/cop/performance/readlines_each.rb')
-rw-r--r--rubocop/cop/performance/readlines_each.rb11
1 files changed, 5 insertions, 6 deletions
diff --git a/rubocop/cop/performance/readlines_each.rb b/rubocop/cop/performance/readlines_each.rb
index cb4ffaca6e9..7a3a15020db 100644
--- a/rubocop/cop/performance/readlines_each.rb
+++ b/rubocop/cop/performance/readlines_each.rb
@@ -3,7 +3,9 @@
module RuboCop
module Cop
module Performance
- class ReadlinesEach < RuboCop::Cop::Cop
+ class ReadlinesEach < RuboCop::Cop::Base
+ extend RuboCop::Cop::AutoCorrector
+
MESSAGE = 'Avoid `IO.readlines.each`, since it reads contents into memory in full. ' \
'Use `IO.each_line` or `IO.each` instead.'
@@ -17,12 +19,9 @@ module RuboCop
PATTERN
def on_send(node)
- full_file_read_via_class?(node) { add_offense(node, location: :selector, message: MESSAGE) }
- full_file_read_via_instance?(node) { add_offense(node, location: :selector, message: MESSAGE) }
- end
+ return unless full_file_read_via_class?(node) || full_file_read_via_instance?(node)
- def autocorrect(node)
- lambda do |corrector|
+ add_offense(node.loc.selector, message: MESSAGE) do |corrector|
corrector.replace(node.loc.expression, node.source.gsub('readlines.each', 'each_line'))
end
end