如果我正在用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.usernameTheService::Settings.password从任何地方访问这些设置

关于ruby - Ruby:允许模块进行设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2989203/

10-10 04:18