2010-06-07 66 views
2

如果我使用ruby构建库,允许库的用户设置模块范围设置的最佳方法是什么,这些设置可供库的所有子类等使用?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

将数据存储在类变量(或静态varibales)中。你可以做这样的事情:

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.usernameTheService::Settings.password

+0

点上,不知道为什么我没有想到这一点!干杯! – 2010-06-07 16:24:30