2010-06-07 48 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