class Stocktastic::Adapter::Yahoo
Constants
- PARAMETER_MAP
List of available paramters This list is used as a single source of reference for a) mapping between requested parameters and url parameters and b) mapping between the result array and hash keys.
- QUOTES_URI
Uri used for fetching quotes
Public Instance Methods
get_multiple_quotes(symbols, options = {})
click to toggle source
Fetches quote details for multiple symbols. Last argument can specify options:
-
:parameters Array of parameters to get (default is everything)
# File lib/stocktastic/adapter/yahoo.rb, line 36 def get_multiple_quotes symbols, options = {} options[:parameters] ||= PARAMETER_MAP.keys get_quotes symbols, options[:parameters] end
get_single_quote(symbol, options = {})
click to toggle source
Fetches quote details for a single symbol. Last argument can specify options:
-
:parameters Array of parameters to get (default is everything)
# File lib/stocktastic/adapter/yahoo.rb, line 29 def get_single_quote symbol, options = {} get_multiple_quotes([symbol], options)[0] end
Private Instance Methods
get_quotes(symbols, parameters)
click to toggle source
# File lib/stocktastic/adapter/yahoo.rb, line 43 def get_quotes symbols, parameters response = get_response(uri(symbols, parameters)) map_result parse(response.body), parameters end
get_response(uri)
click to toggle source
# File lib/stocktastic/adapter/yahoo.rb, line 48 def get_response uri Net::HTTP.get_response(uri) end
map_result(result, parameters)
click to toggle source
# File lib/stocktastic/adapter/yahoo.rb, line 52 def map_result result, parameters result.map {|q| parameters.zip(q).to_h } end
parse(text)
click to toggle source
# File lib/stocktastic/adapter/yahoo.rb, line 56 def parse text CSV.parse text end
uri(symbols, parameters)
click to toggle source
# File lib/stocktastic/adapter/yahoo.rb, line 60 def uri symbols, parameters symbols = symbols.join '+' parameters = PARAMETER_MAP.values_at(*parameters).join URI.parse "#{QUOTES_URI}?s=#{symbols}&f=#{parameters}" end