class ClassVariables
@@class_variable = :class_variable
def define_lazy_class_variable
@@lazy_class_variable = :lazy_class_variable
end
end
:define_lazy_class_variable
ClassVariables.class_variables
[:@@class_variable]
ClassVariables.new.define_lazy_class_variable
:lazy_class_variable
ClassVariables.class_variables
[:@@class_variable, :@@lazy_class_variable]
ClassVariables.class_variable_defined? '@@class_variable'
true
ClassVariables.class_variable_defined? '@@undefined_class_variable'
false
ClassVariables.class_variable_get '@@class_variable'
:class_variable
ClassVariables.class_variable_get '@@undefined_class_variable'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/exceptions.rb:28: warning: $SAFE will become a normal global variable in Ruby 3.0
NameError: uninitialized class variable @@undefined_class_variable in ClassVariables
(pry):17:in `class_variable_get'
(pry):17:in `<main>'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:387:in `eval'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:387:in `evaluate_ruby'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:355:in `handle_line'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:274:in `block (2 levels) in eval'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:273:in `catch'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:273:in `block in eval'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:272:in `catch'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:272:in `eval'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/backend.rb:66:in `eval'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/backend.rb:12:in `eval'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/kernel.rb:90:in `execute_request'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/kernel.rb:49:in `dispatch'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/kernel.rb:38:in `run'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/command.rb:110:in `run_kernel'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/command.rb:40:in `run'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/bin/iruby:5:in `<top (required)>'
/home/jovyan/.gem/ruby/2.7.0/bin/iruby:23:in `load'
/home/jovyan/.gem/ruby/2.7.0/bin/iruby:23:in `<main>'
ClassVariables.class_variable_set '@@class_variable', :class_variable_set
:class_variable_set
ClassVariables.class_variable_get '@@class_variable'
:class_variable_set
ClassVariables.class_variable_get '@@undefined_class_variable'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/exceptions.rb:28: warning: $SAFE will become a normal global variable in Ruby 3.0
NameError: uninitialized class variable @@undefined_class_variable in ClassVariables
(pry):22:in `class_variable_get'
(pry):22:in `<main>'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:387:in `eval'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:387:in `evaluate_ruby'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:355:in `handle_line'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:274:in `block (2 levels) in eval'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:273:in `catch'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:273:in `block in eval'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:272:in `catch'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:272:in `eval'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/backend.rb:66:in `eval'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/backend.rb:12:in `eval'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/kernel.rb:90:in `execute_request'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/kernel.rb:49:in `dispatch'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/kernel.rb:38:in `run'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/command.rb:110:in `run_kernel'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/command.rb:40:in `run'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/bin/iruby:5:in `<top (required)>'
/home/jovyan/.gem/ruby/2.7.0/bin/iruby:23:in `load'
/home/jovyan/.gem/ruby/2.7.0/bin/iruby:23:in `<main>'
ClassVariables.class_variable_set '@@undefined_class_variable', :defined
:defined
ClassVariables.class_variable_get '@@undefined_class_variable'
:defined
ClassVariables.class_variable_get '@tekitou'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/exceptions.rb:28: warning: $SAFE will become a normal global variable in Ruby 3.0
NameError: `@tekitou' is not allowed as a class variable name
(pry):25:in `class_variable_get'
(pry):25:in `<main>'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:387:in `eval'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:387:in `evaluate_ruby'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:355:in `handle_line'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:274:in `block (2 levels) in eval'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:273:in `catch'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:273:in `block in eval'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:272:in `catch'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:272:in `eval'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/backend.rb:66:in `eval'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/backend.rb:12:in `eval'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/kernel.rb:90:in `execute_request'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/kernel.rb:49:in `dispatch'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/kernel.rb:38:in `run'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/command.rb:110:in `run_kernel'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/command.rb:40:in `run'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/bin/iruby:5:in `<top (required)>'
/home/jovyan/.gem/ruby/2.7.0/bin/iruby:23:in `load'
/home/jovyan/.gem/ruby/2.7.0/bin/iruby:23:in `<main>'
ClassVariables.class_variable_get '@@'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/exceptions.rb:28: warning: $SAFE will become a normal global variable in Ruby 3.0
NameError: `@@' is not allowed as a class variable name
(pry):26:in `class_variable_get'
(pry):26:in `<main>'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:387:in `eval'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:387:in `evaluate_ruby'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:355:in `handle_line'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:274:in `block (2 levels) in eval'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:273:in `catch'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:273:in `block in eval'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:272:in `catch'
/home/jovyan/.gem/ruby/2.7.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:272:in `eval'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/backend.rb:66:in `eval'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/backend.rb:12:in `eval'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/kernel.rb:90:in `execute_request'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/kernel.rb:49:in `dispatch'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/kernel.rb:38:in `run'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/command.rb:110:in `run_kernel'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/lib/iruby/command.rb:40:in `run'
/home/jovyan/.gem/ruby/2.7.0/gems/iruby-0.4.0/bin/iruby:5:in `<top (required)>'
/home/jovyan/.gem/ruby/2.7.0/bin/iruby:23:in `load'
/home/jovyan/.gem/ruby/2.7.0/bin/iruby:23:in `<main>'