class BasicYahooFinance::Query
Class to send queries to Yahoo Finance API
Constants
- API_URL
Public Instance Methods
quotes(symbols)
click to toggle source
# File lib/basic_yahoo_finance.rb, line 12 def quotes(symbols) symbols_value = generate_symbols_value(symbols) begin uri = URI.open("#{API_URL}/v7/finance/quote?symbols=#{symbols_value}", "User-Agent" => "BYF/#{BasicYahooFinance::VERSION}") process_output(JSON.parse(uri.read)) rescue OpenURI::HTTPError empty_symbols_hash(symbols) end end
Private Instance Methods
empty_symbols_hash(symbols)
click to toggle source
# File lib/basic_yahoo_finance.rb, line 47 def empty_symbols_hash(symbols) hash = {} case symbols when String hash[symbols] = {} when Array symbols.each do |s| hash[s] = {} end end hash end
generate_symbols_value(symbols, separator = ",")
click to toggle source
# File lib/basic_yahoo_finance.rb, line 25 def generate_symbols_value(symbols, separator = ",") case symbols when String symbols when Array symbols.join(separator) end end
process_output(json)
click to toggle source
# File lib/basic_yahoo_finance.rb, line 34 def process_output(json) hash = {} if json["quoteResponse"]["result"].count == 1 hash[json["quoteResponse"]["result"][0]["symbol"]] = json["quoteResponse"]["result"].pop elsif json["quoteResponse"]["result"].count > 1 json["quoteResponse"]["result"].each do |r| hash[r["symbol"]] = r end end # TODO: compare hash keys with symbol(s) requested and add symbols which had no results from API hash end