Class: RuboCop::Cop::Gusto::PreferProcessLastStatus

Inherits:
Base
  • Object
show all
Extended by:
AutoCorrector
Defined in:
lib/rubocop/cop/gusto/prefer_process_last_status.rb

Overview

Don’t use the ‘$?` or `$CHILD_STATUS` global variables. Instead, use `Process.last_status`

Examples:

# bad
$?.exitstatus
$CHILD_STATUS.success?

# good
Process.last_status.exit_status
Process.last_status.success?

Constant Summary collapse

MSG =
"Prefer using `Process.last_status` instead of the global variables: `$?` and `$CHILD_STATUS`."
OFFENDERS =
Set[:$?, :$CHILD_STATUS].freeze

Instance Method Summary collapse

Instance Method Details

#autocorrect(corrector, node) ⇒ Object



29
30
31
# File 'lib/rubocop/cop/gusto/prefer_process_last_status.rb', line 29

def autocorrect(corrector, node)
  corrector.replace(node, "Process.last_status")
end

#on_gvar(node) ⇒ Object



23
24
25
26
27
# File 'lib/rubocop/cop/gusto/prefer_process_last_status.rb', line 23

def on_gvar(node)
  return unless OFFENDERS.include?(node.node_parts.first)

  add_offense(node) { |corrector| autocorrect(corrector, node) }
end