Я использую iex exchange api для получения информации об акциях. Это прекрасно работает, но мой код очень уродливый, интересно, как реорганизовать код.
stock = IEX::Api::Client.new(
publishable_token: token,
endpoint: 'https://sandbox.iexapis.com/v1'
)
Это то, что нужно для получения информации. Проблема в том, что я должен поместить приведенный выше код в каждый метод, который использует API. Например,
def self.stock_price(ticker)
stock = IEX::Api::Client.new(
publishable_token: token,
endpoint: 'https://sandbox.iexapis.com/v1'
)
company = stock.company(ticker)
quote = stock.quote(ticker.upcase)
puts "#{company.company_name}: #{quote.latest_price}"
end
def self.week_52_high(ticker)
stock = IEX::Api::Client.new(
publishable_token: token,
endpoint: 'https://sandbox.iexapis.com/v1'
)
key_stats = stock.key_stats(ticker)
puts "52-week high: #{key_stats.week_52_high}"
end
def self.week_52_low(ticker)
stock = IEX::Api::Client.new(
publishable_token: token,
endpoint: 'https://sandbox.iexapis.com/v1'
)
key_stats = stock.key_stats(ticker)
puts "52-week low: #{key_stats.week_52_low}"
end
Можно ли каким-либо образом учесть факт, который вызывает другой файл и вызывает метод таким образом? Код очень повторяется как есть. Переменная "stock" - это то, с чем мне нужно работать, должна ли я сделать это глобальной переменной? Я слышал, что нет-нет, но является ли этот случай исключением? Кроме того, там, где у меня есть
publishable_token: token,
, эта переменная токена на самом деле является моим жестко закодированным токеном, а не «токеновой» переменной, которую вы видите, я просто изменил ее из-за проблем безопасности. Что я должен делать вместо того, чтобы жестко кодировать это? Документация говорит, чтобы превратить его в переменную окружения, но я не знаю, что это значит. Заранее спасибо!