class RuboCop::Cop::Rails::UnknownEnv

This cop checks that environments called with `Rails.env` predicates exist.

@example

# bad
Rails.env.proudction?

# good
Rails.env.production?

Constants

MSG
MSG_SIMILAR

Public Instance Methods

on_send(node) click to toggle source
# File lib/rubocop/cop/rails/unknown_env.rb, line 29
def on_send(node)
  unknown_environment?(node) do |name|
    add_offense(node, location: :selector, message: message(name))
  end
end

Private Instance Methods

collect_variable_like_names(_scope) click to toggle source
# File lib/rubocop/cop/rails/unknown_env.rb, line 37
def collect_variable_like_names(_scope)
  environments.map { |env| env + '?' }
end
environments() click to toggle source
# File lib/rubocop/cop/rails/unknown_env.rb, line 56
def environments
  cop_config['Environments']
end
message(name) click to toggle source
# File lib/rubocop/cop/rails/unknown_env.rb, line 41
def message(name)
  similar = find_similar_name(name.to_s, [])
  if similar
    format(MSG_SIMILAR, name: name, similar: similar)
  else
    format(MSG, name: name)
  end
end
unknown_env_name?(name) click to toggle source
# File lib/rubocop/cop/rails/unknown_env.rb, line 50
def unknown_env_name?(name)
  name = name.to_s
  name.end_with?('?') &&
    !environments.include?(name[0..-2])
end