Sha256: 0824e796ade4e1dc6db197c42963920dfbd8056f9029a9cd91381d4903e2a631
Contents?: true
Size: 1.15 KB
Versions: 13
Compression:
Stored size: 1.15 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Performance # This cop identifies places where `lstrip.rstrip` can be replaced by # `strip`. # # @example # @bad # 'abc'.lstrip.rstrip # 'abc'.rstrip.lstrip # # @good # 'abc'.strip class LstripRstrip < Cop MSG = 'Use `strip` instead of `%s.%s`.'.freeze def_node_matcher :lstrip_rstrip, <<-END {(send $(send _ $:rstrip) $:lstrip) (send $(send _ $:lstrip) $:rstrip)} END def on_send(node) lstrip_rstrip(node) do |first_send, method_one, method_two| range = range_between(first_send.loc.selector.begin_pos, node.source_range.end_pos) add_offense(node, range, format(MSG, method_one, method_two)) end end def autocorrect(node) first_send, = *node range = range_between(first_send.loc.selector.begin_pos, node.source_range.end_pos) ->(corrector) { corrector.replace(range, 'strip') } end end end end end
Version data entries
13 entries across 13 versions & 2 rubygems