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