class RuboCop::Cop::Style::StringHashKeys

Checks for the use of strings as keys in hashes. The use of symbols is preferred instead.

@safety

This cop is unsafe because while symbols are preferred for hash keys,
there are instances when string keys are required.

@example

# bad
{ 'one' => 1, 'two' => 2, 'three' => 3 }

# good
{ one: 1, two: 2, three: 3 }

Constants

MSG

Public Instance Methods

on_pair(node) click to toggle source
# File lib/rubocop/cop/style/string_hash_keys.rb, line 42
def on_pair(node)
  return unless string_hash_key?(node)

  key_content = node.key.str_content
  return unless key_content.valid_encoding?
  return if receive_environments_method?(node)

  add_offense(node.key) do |corrector|
    symbol_content = key_content.to_sym.inspect

    corrector.replace(node.key, symbol_content)
  end
end