module IEX::Endpoints::Chart
Public Instance Methods
chart(symbol, range = nil, options = {})
click to toggle source
# File lib/iex/endpoints/chart.rb, line 4 def chart(symbol, range = nil, options = {}) url = [ 'stock', symbol, 'chart', range && range.respond_to?(:strftime) ? "date/#{range.strftime('%Y%m%d')}" : range ].compact.join('/') params = {} options&.each_pair do |k, v| k = k.to_s.split('_').map(&:capitalize).join.sub(/^[A-Z]/, &:downcase) params[k.to_sym] = v end response = get(url, { token: publishable_token }.merge(params)) if range && range.to_s == 'dynamic' range = response['range'] response = response['data'] end response.map do |data| case range when '1d', Date, DateTime IEX::Resources::Chart::OneDay.new data else IEX::Resources::Chart::Default.new data end end rescue Faraday::ResourceNotFound => e raise IEX::Errors::SymbolNotFoundError.new(symbol, e.response[:body]) end