Parent

Files

Class/Module Index [+]

Quicksearch

RuboCop::Cop::Style::SpecialGlobalVars

This cop looks for uses of Perl-style global variables.

Constants

MSG_BOTH
MSG_ENGLISH
MSG_REGULAR
NON_ENGLISH_VARS

Anything not in this set is provided by the English library.

PREFERRED_VARS

Public Instance Methods

autocorrect(node) click to toggle source
# File lib/rubocop/cop/style/special_global_vars.rb, line 72
def autocorrect(node)
  @corrections << lambda do |corrector|
    global_var, = *node

    corrector.replace(node.loc.expression,
                      PREFERRED_VARS[global_var].first)
  end
end
message(node) click to toggle source
# File lib/rubocop/cop/style/special_global_vars.rb, line 50
def message(node)
  global_var, = *node

  regular, english = PREFERRED_VARS[global_var].partition do |var|
    NON_ENGLISH_VARS.include? var
  end

  # For now, we assume that lists are 2 items or less.  Easy grammar!
  regular_msg = regular.join('` or `')
  english_msg = english.join('` or `')

  if regular.length > 0 && english.length > 0
    format(MSG_BOTH, english_msg, regular_msg, global_var)
  elsif regular.length > 0
    format(MSG_REGULAR, regular_msg, global_var)
  elsif english.length > 0
    format(MSG_ENGLISH, english_msg, global_var)
  else
    fail 'Bug in SpecialGlobalVars - global var w/o preferred vars!'
  end
end
on_gvar(node) click to toggle source
# File lib/rubocop/cop/style/special_global_vars.rb, line 44
def on_gvar(node)
  global_var, = *node

  add_offense(node, :expression) if PREFERRED_VARS[global_var]
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.