我试图创建一个将包含在许多不同类中的模块。它需要将调用者的路径记录到类文件 ,以便我可以在后面的代码中引用该路径。此代码尝试向调用类中添加方法,但因为它仅返回@@ x的当前值而失败。在许多不同类型的Ruby在运行时将变量转换为常量
# /home/eric/FindMe.rb
class FindMe
include GladeGUI
end
# /home/eric/GladeGUI.rb
module GladeGUI
def self.included(obj)
@@x, = caller[0].partition(":") # this works @@x = "/home/eric/FindMe.rb"
obj.class_eval do
def my_class_file_path
return ????? # I want to return "/home/eric/FindMe.rb"
end
end
end
end
的GladeGUI模块将被“纳入”,所以我不能只是添加代码,调用的类。我需要一种方法来使@@ X编译成一个恒定值,所以存储在类中的方法是这样的:
def my_class_file_path
return "/home/eric/FindMe.rb"
end
如何将变量转换为固定代码?
谢谢。
谢谢!!!现在看起来很容易。 :) – user1182000