如果我正在使用ruby构建库,那么允许库用户设置模块范围设置的最佳方法是什么,这些设置可供库的所有子类等使用?
一个很好的例子是,如果我正在编写一个用于发布到Web服务的库:
TheService::File.upload("myfile.txt") # Uploads anonymously
TheService::Settings.login("myuser","mypass") # Or any other similar way of doing this
TheService::File.upload("myfile.txt") # Uploads as 'myuser'
除非调用TheService::Settings.logout
,否则所有TheService
操作都将在myuser
帐户下进行。
有什么想法吗?
答案 0 :(得分:0)
将数据存储在类变量(或静态变量)中。你可以这样做:
module TheService
class Settings
def self.login(username,password)
@@username = username
@@password = password
end
def username
@@username
end
def password
@@password
end
def self.logout
@@username = @@password = nil
end
end
end
现在,您可以通过TheService::Settings.username
或TheService::Settings.password