class RuboCop::Cop::Rails::Output
Rails.logger.debug ‘A debug message’
# good
print ‘A debug message’
pp ‘A debug message’
puts ‘A debug message’
# bad
@example
changing from ‘puts` to `Rails.logger.debug` could result in no output being shown.
This cop’s autocorrection is unsafe because depending on the Rails log level configuration,
@safety
Checks for the use of output calls like puts and print
def match_gvar?(sym)
def match_gvar?(sym) %i[$stdout $stderr].include?(sym) end
def offense_range(node)
def offense_range(node) if node.receiver range_between(node.source_range.begin_pos, node.loc.selector.end_pos) else node.loc.selector end end
def on_send(node)
def on_send(node) return if node.parent&.call_type? || node.block_node return if !output?(node) && !io_output?(node) range = offense_range(node) add_offense(range) do |corrector| corrector.replace(range, 'Rails.logger.debug') end end