Ruby:允许模块进行设置

时间:2010-06-07 11:58:37

标签: ruby module

如果我正在使用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帐户下进行。

有什么想法吗?

1 个答案:

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

从所有位置访问这些设置