class Rubocop::Cop::Style::SymbolArray

This cop checks for array literals made up of symbols that are not using the %i() syntax.

This check makes sense only on Ruby 2.0+.

Constants

MSG

Public Instance Methods

on_array(node) click to toggle source
# File lib/rubocop/cop/style/symbol_array.rb, line 13
def on_array(node)
  # %i and %I were introduced in Ruby 2.0
  unless RUBY_VERSION < '2.0.0'
    return unless node.loc.begin && node.loc.begin.is?('[')

    array_elems = node.children

    # no need to check empty arrays
    return unless array_elems && array_elems.size > 1

    symbol_array = array_elems.all? { |e| e.type == :sym }

    add_offence(:convention, node.loc.expression, MSG) if symbol_array
  end
end