Ruby: позволяет модулю иметь настройки - PullRequest
2 голосов
/ 07 июня 2010

Если я собираю библиотеку в ruby, каков наилучший способ позволить пользователям библиотеки устанавливать настройки для всего модуля, которые будут доступны для всех подклассов и т. Д. Библиотеки?

Хорошим примером будет, если я пишу библиотеку для публикации в веб-сервисе:

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 голосов
/ 07 июня 2010

хранить данные в переменных класса (или статических переменных). Вы можете сделать что-то вроде этого:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...