如果我正在用ruby构建一个库,那么允许库的用户设置可用于库的所有子类等的模块范围设置的最佳方法是什么?
一个很好的例子是,如果我正在编写一个发布到webservice的库:
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
的帐户下进行。有什么想法吗?
最佳答案
将数据存储在类变量(或静态变量)中。你可以这样做:
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
从任何地方访问这些设置关于ruby - Ruby:允许模块进行设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2989203/