From bb708e6619b0f021c5e778fbb8c12614f5a61930 Mon Sep 17 00:00:00 2001 From: Pedro Tanaka Date: Tue, 21 Jul 2026 14:00:38 -0400 Subject: [PATCH] Fix RuboCop 3 offenses Assisted-By: devx/2d33ac09-1dc1-4608-a505-946e99eed108 --- lib/statsd/instrument/datagram.rb | 2 +- lib/statsd/instrument/dogstatsd_datagram.rb | 4 ++-- lib/statsd/instrument/rubocop.rb | 6 +++--- lib/statsd/instrument/rubocop/metric_return_value.rb | 2 +- test/rubocop/singleton_configuration_test.rb | 3 +++ 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/statsd/instrument/datagram.rb b/lib/statsd/instrument/datagram.rb index b6151a71..61d66dc5 100644 --- a/lib/statsd/instrument/datagram.rb +++ b/lib/statsd/instrument/datagram.rb @@ -77,7 +77,7 @@ def eql?(other) (?:\|\#(?(?:[^\|,]+(?:,[^\|,]+)*)))? \n? # In some implementations, the datagram may include a trailing newline. \z - }x + }x.freeze def parsed_datagram @parsed ||= if (match_info = PARSER.match(@source)) diff --git a/lib/statsd/instrument/dogstatsd_datagram.rb b/lib/statsd/instrument/dogstatsd_datagram.rb index e1b00056..abb4d3f6 100644 --- a/lib/statsd/instrument/dogstatsd_datagram.rb +++ b/lib/statsd/instrument/dogstatsd_datagram.rb @@ -69,7 +69,7 @@ def parsed_datagram (?:\|m:(?[^\|]+))? \n? # In some implementations, the datagram may include a trailing newline. \z - }x + }x.freeze # |k:my-key|p:low|s:source|t:success| EVENT_PARSER = %r{ @@ -84,7 +84,7 @@ def parsed_datagram (?:\|\#(?(?:[^\|,]+(?:,[^\|,]+)*)))? \n? # In some implementations, the datagram may include a trailing newline. \z - }x + }x.freeze PARSER = Regexp.union(StatsD::Instrument::Datagram::PARSER, SERVICE_CHECK_PARSER, EVENT_PARSER) end diff --git a/lib/statsd/instrument/rubocop.rb b/lib/statsd/instrument/rubocop.rb index 66ca862d..90f796e7 100644 --- a/lib/statsd/instrument/rubocop.rb +++ b/lib/statsd/instrument/rubocop.rb @@ -3,7 +3,7 @@ module RuboCop module Cop module StatsD - METRIC_METHODS = [:increment, :gauge, :measure, :set, :histogram, :distribution, :key_value] + METRIC_METHODS = [:increment, :gauge, :measure, :set, :histogram, :distribution, :key_value].freeze METAPROGRAMMING_METHODS = [ :statsd_measure, @@ -11,7 +11,7 @@ module StatsD :statsd_count_success, :statsd_count_if, :statsd_count, - ] + ].freeze SINGLETON_CONFIGURATION_METHODS = [ :backend, @@ -22,7 +22,7 @@ module StatsD :"default_tags=", :default_sample_rate, :"default_sample_rate=", - ] + ].freeze private diff --git a/lib/statsd/instrument/rubocop/metric_return_value.rb b/lib/statsd/instrument/rubocop/metric_return_value.rb index f1f962c6..6627675c 100644 --- a/lib/statsd/instrument/rubocop/metric_return_value.rb +++ b/lib/statsd/instrument/rubocop/metric_return_value.rb @@ -19,7 +19,7 @@ class MetricReturnValue < Base MSG = "Do not use the return value of StatsD metric methods" - INVALID_PARENTS = [:lvasgn, :array, :pair, :send, :return, :yield] + INVALID_PARENTS = [:lvasgn, :array, :pair, :send, :return, :yield].freeze def on_send(node) if metric_method?(node) && node.arguments.last&.type != :block_pass diff --git a/test/rubocop/singleton_configuration_test.rb b/test/rubocop/singleton_configuration_test.rb index 54a92d25..2a640d43 100644 --- a/test/rubocop/singleton_configuration_test.rb +++ b/test/rubocop/singleton_configuration_test.rb @@ -18,7 +18,10 @@ def test_offense_statsd_backend def test_offense_statsd_prefix assert_offense('StatsD.prefix = "foo"') + # The interpolation is intentionally literal source passed to the cop under test. + # rubocop:disable Lint/InterpolationCheck assert_offense('"#{StatsD.prefix}.foo"') + # rubocop:enable Lint/InterpolationCheck end def test_offense_statsd_default_tags