Назовите метод на включенном классе в Ruby

Как Вы называете метод включенного класса в Ruby? Посмотрите пример ниже. Это работает, но это не то, что я хочу:

require 'httparty'

module MyModule
  class MyClass
    include HTTParty
    base_uri 'http://localhost'        

    def initialize(path)
      # other code
    end

  end
end

Это - то, что я хочу, но не работает, говоря undefined method 'base_uri' [...]. То, что я пытаюсь сделать, должно установить base_uri httparty динамично от инициализировать параметра.

require 'httparty'

module MyModule
  class MyClass
    include HTTParty

    def initialize(path)
      base_uri 'http://localhost'
      # other code
    end

  end
end
5
задан Mads Mobæk 22 April 2010 в 13:14
поделиться

1 ответ

Согласно исходному коду HTTParty , base_uri является методом класса. Таким образом, вам нужно будет вызвать метод метод в контексте класса

module MyModule
  class MyClass
    include HTTParty

    def initialize(path)
      self.class.base_uri 'http://localhost'
      # other code
    end

  end
end

Помните, что это решение может быть небезопасным для потоков, в зависимости от того, как вы используете свою библиотеку.

7
ответ дан 14 December 2019 в 08:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: