class RuboCop::Cop::Style::EnvHome

Checks for consistent usage of `ENV`. If `nil` is used as the second argument of `ENV.fetch`, it is treated as a bad case like `ENV[]`.

@safety

The cop is unsafe because the result when `nil` is assigned to `ENV['HOME']` changes:

[source,ruby]
----
ENV['HOME'] = nil
ENV['HOME'] # => nil
Dir.home    # => '/home/foo'
----

@example

# bad
ENV['HOME']
ENV.fetch('HOME', nil)

# good
Dir.home

# good
ENV.fetch('HOME', default)

Constants

MSG
RESTRICT_ON_SEND

Public Instance Methods

on_send(node) click to toggle source
# File lib/rubocop/cop/style/env_home.rb, line 45
def on_send(node)
  return unless env_home?(node)
  return if node.arguments.count == 2 && !node.arguments[1].nil_type?

  add_offense(node) do |corrector|
    corrector.replace(node, 'Dir.home')
  end
end