Class: RuboCop::Cop::StatsD::MetricReturnValue
- Inherits:
-
RuboCop::Cop
- Object
- RuboCop::Cop
- RuboCop::Cop::StatsD::MetricReturnValue
- Defined in:
- lib/statsd/instrument/rubocop/metric_return_value.rb
Overview
This Rubocop will check for using the return value of StatsD metric calls, which is deprecated. To check your codebase, use the following Rubocop invocation:
rubocop --require `bundle show statsd-instrument`/lib/statsd/instrument/rubocop/metric_return_value.rb \
--only StatsD/MetricReturnValue
This cop cannot autocorrect offenses. In production code, StatsD should be used in a fire-and-forget fashion. This means that you shouldn’t rely on the return value. If you really need to access the emitted metrics, you can look into ‘capture_statsd_calls`
Constant Summary collapse
- MSG =
'Do not use the return value of StatsD metric methods'
- STATSD_METRIC_METHODS =
%i{increment gauge measure set histogram distribution key_value}
- INVALID_PARENTS =
%i{lvasgn array pair send return yield}
Instance Method Summary collapse
Instance Method Details
#on_send(node) ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/statsd/instrument/rubocop/metric_return_value.rb', line 21 def on_send(node) if node.receiver&.type == :const && node.receiver&.const_name == "StatsD" if STATSD_METRIC_METHODS.include?(node.method_name) && node.arguments.last&.type != :block_pass add_offense(node.parent) if INVALID_PARENTS.include?(node.parent&.type) end end end |