Динамически добавлять постоянное значение в экземпляр Ruby - PullRequest
0 голосов
/ 26 сентября 2018

Я тестирую модуль (Foo::Api::Utility), создавая фиктивный экземпляр.Модуль ссылается на константу, которая была определена классом, includes it (self.class::BASE_URL).

Я хотел бы иметь возможность получить доступ к этому значению и установить его.

Это не работает:

before(:each) do
  @utility = Object.new
  @utility.extend(Foo::Api::Utility)
  @utility.const_set('BASE_URL','https://domain.tld/api/v1')
end

Какой правильный способ сделать это?

1 Ответ

0 голосов
/ 26 сентября 2018

Как насчет:

before(:each) do
  @utility_class = Class.new
  @utility_class.include(Foo::Api::Utility)
  @utility_class.const_set('BASE_URL','https://domain.tld/api/v1')
  @utility = @utility_class.new
end

Или, более кратким образом:

before(:each) do
  @utility =
    Class.new do
      include Foo::Api::Utility
      const_set :BASE_URL,'https://domain.tld/api/v1'
    end.new
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...