如何创建也可以访问局部变量的模块?

时间:2016-03-13 14:52:44

标签: ruby module scope

我正在尝试通过运行Name.method来创建一组可访问的方法,其中name对于所有方法都是相同的。我还需要能够从调用它们的位置访问变量的方法。

以下是我目前的情况:

module Name
    def self.method1
        p "method1 called"
    end
    def self.accessLocalVariables
        p localVariable
    end
end
Name.method1 #=> method1 called
localVariable = "test"
Name.accessLocalVariables #=> NameError: undefined local variable or method `localvariable' for Name:Module

我希望Name.accessLocalVariables返回test。我怎么能创造出那种方式的东西呢?

它必须访问局部变量并且我不能使用不同类型的变量的原因是因为变量是gem的一部分,我将不得不进入gem并查找每个实例并更改它。这样做是不可行的。

1 个答案:

答案 0 :(得分:2)

方法无法访问其他地方定义的任何局部变量,因此无法执行此操作。您必须将局部变量的值传递给方法的参数。