Httparty - динамически устанавливает base_uri только для текущего экземпляра - PullRequest
0 голосов
/ 02 марта 2019

У меня есть следующий код, который динамически устанавливает base_uri для всех запросов http.

class Managementdb
  include HTTParty

  def set_url(username)
    self.class.base_uri = "https://#{username}.example.com"

    # ...
  end
end

Однако я нахожу, что это устанавливает не только base_uri для текущего экземпляра, но и для всех других будущих экземпляровэтот класс тоже.

Можно ли установить параметры по умолчанию, например, base_uri внутри метода, но только для текущего экземпляра, в котором он вызывается?

Спасибо, Скотт

1 Ответ

0 голосов
/ 02 марта 2019

Вы бы использовали block для этой проблемы.Я реализовал один для ваших нужд.

class Managementdb
  include HTTParty

  def set_url(username)
    self.class.base_uri = "https://#{username}.example.com"

    # ...
  end

  def get_userinfo
    wrapper do
      set_url(username)
      self.class.get('/info')
    end
  end

  def wrapper(&block)
    yield
    self.class.base_uri = nil
  end
end
...