class RuboCop::Cop::Style::EnvHome
ENV.fetch(‘HOME’, default)
# good
Dir.home
# good
ENV.fetch(‘HOME’, nil)
ENV[‘HOME’]
# bad
@example
—-
Dir.home # => ‘/home/foo’<br>ENV # => nil<br>ENV = nil
—-
[source,ruby]
The cop is unsafe because the result when ‘nil` is assigned to `ENV` changes:
@safety
the second argument of `ENV.fetch`, it is treated as a bad case like `ENV[]`.
Checks for consistent usage of `ENV`. If `nil` is used as
def on_send(node)
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