Class Instance Variables in Ruby
Ever get confused between a variable held in an eigenclass and a class? Viz:
class Now
	def self.instance
		@greeting = "hello world"
	end
end
Now.instance # set up the greeting instance variable.
eigenclass = class << Now
end
# But where is @greeting stored?
puts Now.instance_variable_get("@greeting") # is it here?
puts eigenclass.instance_variable_get("@greeting") # or is it here?
- Where is the 
instancemethod stored? Surely in the Eigenclass? - If so, then isn’t it naturally to think that the 
@greetinginstance variable is also held there? 
The answer
puts Now.instance_variable_get("@greeting") # is it here?
# => "hello world"
puts eigenclass.instance_variable_get("@greeting") # or is it here?
# =>
# Nope: it's not here
It looks like @greeting is stored in the Now class itself.
    Written on April  6, 2025