class RuboCop::Cop::Style::GlobalVars

$stdin.read
foo = 2
FOO = 2
# good
bar = $foo + 5
$foo = 2
# bad
@example
Note that backreferences like $1, $2, etc are not global variables.
users can allow additional variables via the AllowedVariables option.
Built-in global variables are allowed by default. Additionally
It does not report offenses for built-in global variables.
Looks for uses of global variables.

def allowed_var?(global_var)

def allowed_var?(global_var)
  BUILT_IN_VARS.include?(global_var) || user_vars.include?(global_var)
end

def check(node)

def check(node)
  global_var, = *node
  add_offense(node.loc.name) unless allowed_var?(global_var)
end

def on_gvar(node)

def on_gvar(node)
  check(node)
end

def on_gvasgn(node)

def on_gvasgn(node)
  check(node)
end

def user_vars

def user_vars
  cop_config['AllowedVariables'].map(&:to_sym)
end