class RuboCop::Cop::Rails::EnvironmentComparison
This cop checks that Rails.env is compared using `.production?`-like methods instead of equality against a string or symbol.
@example
# bad Rails.env == 'production' # bad, always returns false Rails.env == :test # good Rails.env.production?
Constants
- MSG
- SYM_MSG
Public Instance Methods
autocorrect(node)
click to toggle source
# File lib/rubocop/cop/rails/environment_comparison.rb, line 50 def autocorrect(node) lambda do |corrector| corrector.replace(node.source_range, replacement(node)) end end
on_send(node)
click to toggle source
# File lib/rubocop/cop/rails/environment_comparison.rb, line 40 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
Private Instance Methods
replacement(node)
click to toggle source
# File lib/rubocop/cop/rails/environment_comparison.rb, line 58 def replacement(node) "#{node.receiver.source}.#{content(node.first_argument)}?" end