class RuboCop::Cop::Rails::EnvironmentComparison

Rails.env.production?
# good
Rails.env == :test
# bad, always returns false
Rails.env == ‘production’
# bad
@example
methods instead of equality against a string or symbol.
This cop checks that Rails.env is compared using ‘.production?`-like

def autocorrect(node)

def autocorrect(node)
  lambda do |corrector|
    corrector.replace(node.source_range, replacement(node))
  end
end

def on_send(node)

def on_send(node)
  environment_str_comparison?(node) do |env_node|
    env, = *env_node
    add_offense(node, message: format(MSG, env: env))
  end
  environment_sym_comparison?(node) do |_|
    add_offense(node, message: SYM_MSG)
  end
end

def replacement(node)

def replacement(node)
  receiver, _, compared = *node
  environment, = *compared
  "#{receiver.source}.#{environment}?"
end