Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Access a module's class variables inside a class in Ruby

I have a module with a class variable in it

module Abc
  @@variable = "huhu"

  def self.get_variable
    @@variable
  end

  class Hello
    def hola
      puts Abc.get_variable
    end
  end
end

a = Abc::Hello.new
a.hola

Is it possible to get @@variable inside Hello without using get_variable method? I mean something like Abc.variable would be nice. Just curious.

like image 863
huhucat Avatar asked Jul 26 '11 16:07

huhucat


1 Answers

You cannot access @@variable directly (i.e., Abc.variable) within the scope of the Hello class in the module Abc. Why? Because, when the Ruby interpreter sees something like Abc.variable, it would think variable as class/module method of Abc.

It is important to think the Ruby way when programming in Ruby.

like image 200
karthiks Avatar answered Sep 25 '22 00:09

karthiks