Как сделать переменную доступной через приложение

У меня есть переменная, назначенная так:

cryptsy = Cryptsy::API::Client.new(key, secret)

Как я могу сделать эту переменную доступной через приложение?

В настоящее время он находится в контроллере приложений, но я использую гем GRAPE для создания простого API. Мне нужно иметь доступ к переменной в /app/api/v1/bla.rb и другим файлам в папке v1.

3 ответа

Решение

Вы можете создать инициализатор для создания экземпляра при загрузке приложения. В config/application.rb сделать что-то вроде

require 'cryptsy/api'

module YourApp 
  Cryptsy = Cryptsy::API::Client.new(key, secret)
  ...
end

Это даст вам универсально доступный экземпляр этого объекта.

Вы можете добавить следующий код в файл app_root/config/initializers/cryptsy.rb

require 'cryptsy-api' # this line might be needed
$cryptsy = Cryptsy::API::Client.new(key, secret)

тогда вы можете получить доступ $cryptsy через приложение.

Как насчет создания класса в lib и добавления его туда. Обязательно добавьте lib в путь автозагрузки в config/application.rb

class Cryptsy
  def self.client
    @cryptsy ||= Cryptsy::API::Client.new(key, secret)
  end
end

И где бы вы ни захотели его использовать, вы можете позвонить

Cryptsy.client
Другие вопросы по тегам