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