class RuboCop::Cop::Rails::Output

This cop checks for the use of output calls like puts and print

@example

# bad
puts 'A debug message'
pp 'A debug message'
print 'A debug message'

# good
Rails.logger.debug 'A debug message'

Constants

MSG
RESTRICT_ON_SEND

Public Instance Methods

on_send(node) click to toggle source
# File lib/rubocop/cop/rails/output.rb, line 40
def on_send(node)
  return unless (output?(node) || io_output?(node)) && node.arguments?

  range = offense_range(node)

  add_offense(range) do |corrector|
    corrector.replace(range, 'Rails.logger.debug')
  end
end

Private Instance Methods

match_gvar?(sym) click to toggle source
# File lib/rubocop/cop/rails/output.rb, line 52
def match_gvar?(sym)
  %i[$stdout $stderr].include?(sym)
end
offense_range(node) click to toggle source
# File lib/rubocop/cop/rails/output.rb, line 56
def offense_range(node)
  if node.receiver
    range_between(node.loc.expression.begin_pos, node.loc.selector.end_pos)
  else
    node.loc.selector
  end
end