iex-ruby-client 1.1.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.env.sample +2 -0
- data/.github/FUNDING.yml +1 -0
- data/.rubocop_todo.yml +0 -8
- data/CHANGELOG.md +48 -10
- data/Dangerfile +2 -2
- data/Gemfile +3 -2
- data/README.md +260 -11
- data/RELEASING.md +2 -2
- data/iex-ruby-client.gemspec +2 -1
- data/lib/iex/api.rb +8 -1
- data/lib/iex/api/client.rb +15 -2
- data/lib/iex/api/config/client.rb +52 -0
- data/lib/iex/api/config/logger.rb +35 -0
- data/lib/iex/cloud/connection.rb +22 -19
- data/lib/iex/cloud/request.rb +1 -1
- data/lib/iex/cloud/response.rb +1 -1
- data/lib/iex/endpoints/advanced_stats.rb +11 -0
- data/lib/iex/endpoints/balance_sheet.rb +13 -0
- data/lib/iex/endpoints/cash_flow.rb +13 -0
- data/lib/iex/endpoints/chart.rb +1 -1
- data/lib/iex/endpoints/company.rb +1 -1
- data/lib/iex/endpoints/crypto.rb +1 -1
- data/lib/iex/endpoints/dividends.rb +1 -1
- data/lib/iex/endpoints/earnings.rb +1 -1
- data/lib/iex/endpoints/historial_prices.rb +30 -0
- data/lib/iex/endpoints/income.rb +1 -1
- data/lib/iex/endpoints/key_stats.rb +1 -1
- data/lib/iex/endpoints/largest_trades.rb +1 -1
- data/lib/iex/endpoints/logo.rb +1 -1
- data/lib/iex/endpoints/news.rb +1 -1
- data/lib/iex/endpoints/ohlc.rb +2 -2
- data/lib/iex/endpoints/price.rb +1 -1
- data/lib/iex/endpoints/quote.rb +1 -1
- data/lib/iex/endpoints/ref_data.rb +22 -0
- data/lib/iex/endpoints/sectors.rb +1 -1
- data/lib/iex/endpoints/stock_market.rb +11 -0
- data/lib/iex/resources.rb +6 -0
- data/lib/iex/resources/advanced_stats.rb +84 -0
- data/lib/iex/resources/balance_sheet.rb +60 -0
- data/lib/iex/resources/cash_flow.rb +43 -0
- data/lib/iex/resources/chart.rb +8 -13
- data/lib/iex/resources/historical_prices.rb +31 -0
- data/lib/iex/resources/income.rb +2 -0
- data/lib/iex/resources/key_stats.rb +1 -1
- data/lib/iex/resources/quote.rb +12 -2
- data/lib/iex/resources/resource.rb +12 -0
- data/lib/iex/resources/symbol.rb +10 -0
- data/lib/iex/resources/symbols.rb +19 -0
- data/lib/iex/version.rb +1 -1
- data/spec/fixtures/iex/advanced_stats/invalid.yml +50 -0
- data/spec/fixtures/iex/advanced_stats/msft.yml +57 -0
- data/spec/fixtures/iex/balance_sheet/invalid.yml +50 -0
- data/spec/fixtures/iex/balance_sheet/msft.yml +56 -0
- data/spec/fixtures/iex/cash_flow/invalid.yml +50 -0
- data/spec/fixtures/iex/cash_flow/msft.yml +56 -0
- data/spec/fixtures/iex/chart/1d.yml +440 -473
- data/spec/fixtures/iex/chart/20190306.yml +440 -473
- data/spec/fixtures/iex/chart/bad_option.yml +47 -81
- data/spec/fixtures/iex/chart/chartInterval.yml +89 -122
- data/spec/fixtures/iex/chart/dynamic/1m.yml +73 -107
- data/spec/fixtures/iex/chart/invalid.yml +47 -81
- data/spec/fixtures/iex/chart/msft.yml +74 -107
- data/spec/fixtures/iex/historical_prices/abcd.yml +56 -0
- data/spec/fixtures/iex/historical_prices/invalid.yml +50 -0
- data/spec/fixtures/iex/historical_prices/invalid_date.yml +50 -0
- data/spec/fixtures/iex/historical_prices/invalid_range.yml +47 -0
- data/spec/fixtures/iex/historical_prices/msft.yml +79 -0
- data/spec/fixtures/iex/historical_prices/msft_5d.yml +61 -0
- data/spec/fixtures/iex/historical_prices/msft_date_and_chart_by_day.yml +57 -0
- data/spec/fixtures/iex/historical_prices/msft_specific_date_trimmed.yml +445 -0
- data/spec/fixtures/iex/income/invalid.yml +47 -47
- data/spec/fixtures/iex/income/msft.yml +54 -51
- data/spec/fixtures/iex/income/nsrgy.yml +55 -0
- data/spec/fixtures/iex/ref-data/isin.yml +57 -0
- data/spec/fixtures/iex/ref-data/isin_mapped.yml +57 -0
- data/spec/fixtures/iex/ref-data/symbols.yml +9002 -0
- data/spec/fixtures/iex/ref-data/wrong_isin_mapped.yml +57 -0
- data/spec/fixtures/iex/stock_market/list_mostactive.yml +76 -0
- data/spec/iex/client_spec.rb +97 -14
- data/spec/iex/config/client_spec.rb +49 -0
- data/spec/iex/config/logger_spec.rb +46 -0
- data/spec/iex/endpoints/advanced_stats_spec.rb +110 -0
- data/spec/iex/endpoints/balance_sheet_spec.rb +80 -0
- data/spec/iex/endpoints/cash_flow_spec.rb +59 -0
- data/spec/iex/endpoints/chart_spec.rb +7 -7
- data/spec/iex/endpoints/historical_prices_spec.rb +206 -0
- data/spec/iex/endpoints/income_spec.rb +41 -30
- data/spec/iex/endpoints/key_stats_spec.rb +1 -0
- data/spec/iex/endpoints/quote_spec.rb +2 -0
- data/spec/iex/endpoints/ref_data_spec.rb +76 -0
- data/spec/iex/endpoints/stock_market_spec.rb +14 -0
- data/spec/iex/resources/resource_spec.rb +36 -0
- data/spec/spec_helper.rb +3 -2
- data/spec/support/vcr.rb +3 -0
- metadata +82 -14
- data/lib/iex/api/config.rb +0 -45
- data/spec/iex/config_spec.rb +0 -22
data/RELEASING.md
CHANGED
@@ -16,10 +16,10 @@ Check that the last build succeeded in [Travis CI](https://travis-ci.org/dblock/
|
|
16
16
|
Change "Next" in [CHANGELOG.md](CHANGELOG.md) to the current date.
|
17
17
|
|
18
18
|
```
|
19
|
-
### 0.2.2 (
|
19
|
+
### 0.2.2 (2015/10/07)
|
20
20
|
```
|
21
21
|
|
22
|
-
Remove the line with "Your contribution here.", since there will be no more contributions to this release.
|
22
|
+
Remove the line with "* Your contribution here.", since there will be no more contributions to this release.
|
23
23
|
|
24
24
|
Commit your changes.
|
25
25
|
|
data/iex-ruby-client.gemspec
CHANGED
@@ -9,13 +9,14 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.email = 'dblock@dblock.org'
|
10
10
|
s.platform = Gem::Platform::RUBY
|
11
11
|
s.required_rubygems_version = '>= 1.3.6'
|
12
|
+
s.required_ruby_version = '>= 2.3.0'
|
12
13
|
s.files = `git ls-files`.split("\n")
|
13
14
|
s.test_files = `git ls-files -- spec/*`.split("\n")
|
14
15
|
s.require_paths = ['lib']
|
15
16
|
s.homepage = 'http://github.com/dblock/iex-ruby-client'
|
16
17
|
s.licenses = ['MIT']
|
17
18
|
s.summary = 'IEX Finance API Ruby client with support for retrieving stock quotes.'
|
18
|
-
s.add_dependency 'faraday', '>= 0.
|
19
|
+
s.add_dependency 'faraday', '>= 0.17'
|
19
20
|
s.add_dependency 'faraday_middleware'
|
20
21
|
s.add_dependency 'hashie'
|
21
22
|
s.add_dependency 'money_helper'
|
data/lib/iex/api.rb
CHANGED
@@ -1,7 +1,11 @@
|
|
1
|
+
require_relative 'endpoints/advanced_stats'
|
2
|
+
require_relative 'endpoints/balance_sheet'
|
3
|
+
require_relative 'endpoints/cash_flow'
|
1
4
|
require_relative 'endpoints/chart'
|
2
5
|
require_relative 'endpoints/company'
|
3
6
|
require_relative 'endpoints/dividends'
|
4
7
|
require_relative 'endpoints/earnings'
|
8
|
+
require_relative 'endpoints/historial_prices'
|
5
9
|
require_relative 'endpoints/income'
|
6
10
|
require_relative 'endpoints/largest_trades'
|
7
11
|
require_relative 'endpoints/logo'
|
@@ -12,6 +16,9 @@ require_relative 'endpoints/price'
|
|
12
16
|
require_relative 'endpoints/quote'
|
13
17
|
require_relative 'endpoints/sectors'
|
14
18
|
require_relative 'endpoints/crypto'
|
19
|
+
require_relative 'endpoints/ref_data'
|
20
|
+
require_relative 'endpoints/stock_market'
|
15
21
|
|
16
|
-
require_relative 'api/config'
|
22
|
+
require_relative 'api/config/logger'
|
23
|
+
require_relative 'api/config/client'
|
17
24
|
require_relative 'api/client'
|
data/lib/iex/api/client.rb
CHANGED
@@ -1,11 +1,18 @@
|
|
1
1
|
module IEX
|
2
2
|
module Api
|
3
|
+
extend Config::Client::Accessor
|
4
|
+
extend Config::Logger::Accessor
|
5
|
+
|
3
6
|
class Client
|
7
|
+
include Endpoints::AdvancedStats
|
8
|
+
include Endpoints::BalanceSheet
|
9
|
+
include Endpoints::CashFlow
|
4
10
|
include Endpoints::Chart
|
5
11
|
include Endpoints::Company
|
6
12
|
include Endpoints::Crypto
|
7
13
|
include Endpoints::Dividends
|
8
14
|
include Endpoints::Earnings
|
15
|
+
include Endpoints::HistoricalPrices
|
9
16
|
include Endpoints::Income
|
10
17
|
include Endpoints::KeyStats
|
11
18
|
include Endpoints::LargestTrades
|
@@ -15,16 +22,22 @@ module IEX
|
|
15
22
|
include Endpoints::Price
|
16
23
|
include Endpoints::Quote
|
17
24
|
include Endpoints::Sectors
|
25
|
+
include Endpoints::RefData
|
26
|
+
include Endpoints::StockMarket
|
18
27
|
|
19
28
|
include Cloud::Connection
|
20
29
|
include Cloud::Request
|
21
30
|
|
22
|
-
|
31
|
+
attr_accessor(*Config::Client::ATTRIBUTES)
|
32
|
+
|
33
|
+
attr_reader :logger
|
23
34
|
|
24
35
|
def initialize(options = {})
|
25
|
-
Config::ATTRIBUTES.each do |key|
|
36
|
+
Config::Client::ATTRIBUTES.each do |key|
|
26
37
|
send("#{key}=", options[key] || IEX::Api.config.send(key))
|
27
38
|
end
|
39
|
+
@logger = Config::Logger.dup
|
40
|
+
@logger.instance = options[:logger] if options.key?(:logger)
|
28
41
|
end
|
29
42
|
end
|
30
43
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module IEX
|
2
|
+
module Api
|
3
|
+
module Config
|
4
|
+
module Client
|
5
|
+
ATTRIBUTES = %i[
|
6
|
+
ca_file
|
7
|
+
ca_path
|
8
|
+
endpoint
|
9
|
+
open_timeout
|
10
|
+
proxy
|
11
|
+
publishable_token
|
12
|
+
referer
|
13
|
+
secret_token
|
14
|
+
timeout
|
15
|
+
user_agent
|
16
|
+
].freeze
|
17
|
+
|
18
|
+
class << self
|
19
|
+
include Config::Logger::Accessor
|
20
|
+
|
21
|
+
attr_accessor(*ATTRIBUTES)
|
22
|
+
|
23
|
+
def reset!
|
24
|
+
self.ca_file = defined?(OpenSSL) ? OpenSSL::X509::DEFAULT_CERT_FILE : nil
|
25
|
+
self.ca_path = defined?(OpenSSL) ? OpenSSL::X509::DEFAULT_CERT_DIR : nil
|
26
|
+
self.endpoint = 'https://cloud.iexapis.com/v1'
|
27
|
+
self.publishable_token = ENV['IEX_API_PUBLISHABLE_TOKEN']
|
28
|
+
self.secret_token = ENV['IEX_API_SECRET_TOKEN']
|
29
|
+
self.user_agent = "IEX Ruby Client/#{IEX::VERSION}"
|
30
|
+
|
31
|
+
self.open_timeout = nil
|
32
|
+
self.proxy = nil
|
33
|
+
self.referer = nil
|
34
|
+
self.timeout = nil
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
module Accessor
|
39
|
+
def configure
|
40
|
+
block_given? ? yield(Config::Client) : Config::Client
|
41
|
+
end
|
42
|
+
|
43
|
+
def config
|
44
|
+
Config::Client
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
IEX::Api::Config::Client.reset!
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module IEX
|
2
|
+
module Api
|
3
|
+
module Config
|
4
|
+
module Logger
|
5
|
+
ATTRIBUTES = %i[
|
6
|
+
instance
|
7
|
+
options
|
8
|
+
proc
|
9
|
+
].freeze
|
10
|
+
|
11
|
+
class << self
|
12
|
+
attr_accessor(*ATTRIBUTES)
|
13
|
+
|
14
|
+
def reset!
|
15
|
+
self.instance = nil
|
16
|
+
self.options = {}
|
17
|
+
self.proc = nil
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
module Accessor
|
22
|
+
def logger
|
23
|
+
block_given? ? yield(Config::Logger) : Config::Logger
|
24
|
+
end
|
25
|
+
|
26
|
+
def logger=(instance)
|
27
|
+
logger.instance = instance
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
IEX::Api::Config::Logger.reset!
|
data/lib/iex/cloud/connection.rb
CHANGED
@@ -8,28 +8,31 @@ module IEX
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def connection
|
11
|
-
|
11
|
+
@connection ||= begin
|
12
|
+
options = {}
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
options[:headers] = {}
|
15
|
+
options[:headers]['Accept'] = 'application/json; charset=utf-8'
|
16
|
+
options[:headers]['Content-Type'] = 'application/json; charset=utf-8'
|
17
|
+
options[:headers]['User-Agent'] = user_agent if user_agent
|
18
|
+
options[:headers]['Referer'] = referer if referer
|
19
|
+
options[:proxy] = proxy if proxy
|
20
|
+
options[:ssl] = { ca_path: ca_path, ca_file: ca_file } if ca_path || ca_file
|
19
21
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
request_options = {}
|
23
|
+
request_options[:timeout] = timeout if timeout
|
24
|
+
request_options[:open_timeout] = open_timeout if open_timeout
|
25
|
+
request_options[:params_encoder] = Faraday::FlatParamsEncoder
|
26
|
+
options[:request] = request_options if request_options.any?
|
25
27
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
28
|
+
::Faraday::Connection.new(endpoint, options) do |connection|
|
29
|
+
connection.use ::Faraday::Request::Multipart
|
30
|
+
connection.use ::Faraday::Request::UrlEncoded
|
31
|
+
connection.use ::IEX::Cloud::Response::RaiseError
|
32
|
+
connection.use ::FaradayMiddleware::ParseJson, content_type: /\bjson$/
|
33
|
+
connection.response(:logger, logger.instance, logger.options, &logger.proc) if logger.instance
|
34
|
+
connection.adapter ::Faraday.default_adapter
|
35
|
+
end
|
33
36
|
end
|
34
37
|
end
|
35
38
|
end
|
data/lib/iex/cloud/request.rb
CHANGED
@@ -27,7 +27,7 @@ module IEX
|
|
27
27
|
request.url(path, options)
|
28
28
|
when :post, :put
|
29
29
|
request.path = path
|
30
|
-
request.body = options unless options.empty?
|
30
|
+
request.body = options.to_json unless options.empty?
|
31
31
|
end
|
32
32
|
request.options.merge!(options.delete(:request)) if options.key?(:request)
|
33
33
|
end
|
data/lib/iex/cloud/response.rb
CHANGED
@@ -5,7 +5,7 @@ module IEX
|
|
5
5
|
def on_complete(env)
|
6
6
|
case env[:status]
|
7
7
|
when 404
|
8
|
-
raise Faraday::
|
8
|
+
raise Faraday::ResourceNotFound, response_values(env)
|
9
9
|
when 403
|
10
10
|
raise IEX::Errors::PermissionDeniedError, response_values(env)
|
11
11
|
when ClientErrorStatuses
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module IEX
|
2
|
+
module Endpoints
|
3
|
+
module AdvancedStats
|
4
|
+
def advanced_stats(symbol, options = {})
|
5
|
+
IEX::Resources::AdvancedStats.new(get("stock/#{symbol}/advanced-stats", { token: publishable_token }.merge(options)))
|
6
|
+
rescue Faraday::ResourceNotFound => e
|
7
|
+
raise IEX::Errors::SymbolNotFoundError.new(symbol, e.response[:body])
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module IEX
|
2
|
+
module Endpoints
|
3
|
+
module BalanceSheet
|
4
|
+
def balance_sheet(symbol, options = {})
|
5
|
+
(get("stock/#{symbol}/balance-sheet", { token: publishable_token }.merge(options))['balancesheet'] || []).map do |data|
|
6
|
+
IEX::Resources::BalanceSheet.new(data)
|
7
|
+
end
|
8
|
+
rescue Faraday::ResourceNotFound => e
|
9
|
+
raise IEX::Errors::SymbolNotFoundError.new(symbol, e.response[:body])
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module IEX
|
2
|
+
module Endpoints
|
3
|
+
module CashFlow
|
4
|
+
def cash_flow(symbol, options = {})
|
5
|
+
(get("stock/#{symbol}/cash-flow", { token: publishable_token }.merge(options))['cashflow'] || []).map do |data|
|
6
|
+
IEX::Resources::CashFlow.new(data)
|
7
|
+
end
|
8
|
+
rescue Faraday::ResourceNotFound => e
|
9
|
+
raise IEX::Errors::SymbolNotFoundError.new(symbol, e.response[:body])
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/iex/endpoints/chart.rb
CHANGED
@@ -2,7 +2,7 @@ module IEX
|
|
2
2
|
module Endpoints
|
3
3
|
module Company
|
4
4
|
def company(symbol, options = {})
|
5
|
-
IEX::Resources::Company.new(get("stock/#{symbol}/company", options))
|
5
|
+
IEX::Resources::Company.new(get("stock/#{symbol}/company", { token: publishable_token }.merge(options)))
|
6
6
|
rescue Faraday::ResourceNotFound => e
|
7
7
|
raise IEX::Errors::SymbolNotFoundError.new(symbol, e.response[:body])
|
8
8
|
end
|
data/lib/iex/endpoints/crypto.rb
CHANGED
@@ -2,7 +2,7 @@ module IEX
|
|
2
2
|
module Endpoints
|
3
3
|
module Crypto
|
4
4
|
def crypto(symbol, options = {})
|
5
|
-
IEX::Resources::Crypto.new(get("crypto/#{symbol}/quote", options))
|
5
|
+
IEX::Resources::Crypto.new(get("crypto/#{symbol}/quote", { token: publishable_token }.merge(options)))
|
6
6
|
rescue Faraday::ResourceNotFound => e
|
7
7
|
raise IEX::Errors::SymbolNotFoundError.new(symbol, e.response[:body])
|
8
8
|
end
|
@@ -2,7 +2,7 @@ module IEX
|
|
2
2
|
module Endpoints
|
3
3
|
module Earnings
|
4
4
|
def earnings(symbol, options = {})
|
5
|
-
get("stock/#{symbol}/earnings", options)['earnings'].map do |data|
|
5
|
+
get("stock/#{symbol}/earnings", { token: publishable_token }.merge(options))['earnings'].map do |data|
|
6
6
|
IEX::Resources::Earnings.new(data)
|
7
7
|
end
|
8
8
|
rescue Faraday::ResourceNotFound => e
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module IEX
|
2
|
+
module Endpoints
|
3
|
+
module HistoricalPrices
|
4
|
+
def historical_prices(symbol, options = {})
|
5
|
+
if options[:range] == 'date'
|
6
|
+
raise ArgumentError unless options[:date].present?
|
7
|
+
raise ArgumentError unless options[:chartByDay].present?
|
8
|
+
end
|
9
|
+
|
10
|
+
options = options.dup
|
11
|
+
# Historical prices IEX endpoint expects dates passed in a specific format - YYYYMMDD
|
12
|
+
options[:date] = options[:date].strftime('%Y%m%d') if options[:date].is_a?(Date)
|
13
|
+
|
14
|
+
path = "stock/#{symbol}/chart"
|
15
|
+
path += "/#{options[:range]}" if options.key?(:range)
|
16
|
+
path += "/#{options[:date]}" if options[:range] == 'date'
|
17
|
+
|
18
|
+
# We only want options to include query params at this point, remove :range and :date
|
19
|
+
options.delete(:range)
|
20
|
+
options.delete(:date)
|
21
|
+
|
22
|
+
(get(path, { token: publishable_token }.merge(options)) || []).map do |data|
|
23
|
+
IEX::Resources::HistorialPrices.new(data)
|
24
|
+
end
|
25
|
+
rescue Faraday::ResourceNotFound => e
|
26
|
+
raise IEX::Errors::SymbolNotFoundError.new(symbol, e.response[:body])
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/iex/endpoints/income.rb
CHANGED
@@ -2,7 +2,7 @@ module IEX
|
|
2
2
|
module Endpoints
|
3
3
|
module Income
|
4
4
|
def income(symbol, options = {})
|
5
|
-
get("stock/#{symbol}/income", options)['income'].map do |data|
|
5
|
+
(get("stock/#{symbol}/income", { token: publishable_token }.merge(options))['income'] || []).map do |data|
|
6
6
|
IEX::Resources::Income.new(data)
|
7
7
|
end
|
8
8
|
rescue Faraday::ResourceNotFound => e
|
@@ -2,7 +2,7 @@ module IEX
|
|
2
2
|
module Endpoints
|
3
3
|
module KeyStats
|
4
4
|
def key_stats(symbol, options = {})
|
5
|
-
IEX::Resources::KeyStats.new(get("stock/#{symbol}/stats", options))
|
5
|
+
IEX::Resources::KeyStats.new(get("stock/#{symbol}/stats", { token: publishable_token }.merge(options)))
|
6
6
|
rescue Faraday::ResourceNotFound => e
|
7
7
|
raise IEX::Errors::SymbolNotFoundError.new(symbol, e.response[:body])
|
8
8
|
end
|
@@ -2,7 +2,7 @@ module IEX
|
|
2
2
|
module Endpoints
|
3
3
|
module LargestTrades
|
4
4
|
def largest_trades(symbol, options = {})
|
5
|
-
get("stock/#{symbol}/largest-trades", options).map do |data|
|
5
|
+
get("stock/#{symbol}/largest-trades", { token: publishable_token }.merge(options)).map do |data|
|
6
6
|
IEX::Resources::LargestTrades.new(data)
|
7
7
|
end
|
8
8
|
rescue Faraday::ResourceNotFound => e
|
data/lib/iex/endpoints/logo.rb
CHANGED
@@ -2,7 +2,7 @@ module IEX
|
|
2
2
|
module Endpoints
|
3
3
|
module Logo
|
4
4
|
def logo(symbol, options = {})
|
5
|
-
IEX::Resources::Logo.new(get("stock/#{symbol.downcase}/logo", options))
|
5
|
+
IEX::Resources::Logo.new(get("stock/#{symbol.downcase}/logo", { token: publishable_token }.merge(options)))
|
6
6
|
rescue Faraday::ResourceNotFound => e
|
7
7
|
raise IEX::Errors::SymbolNotFoundError.new(symbol, e.response[:body])
|
8
8
|
end
|
data/lib/iex/endpoints/news.rb
CHANGED
@@ -8,7 +8,7 @@ module IEX
|
|
8
8
|
'news',
|
9
9
|
range ? 'last' : nil,
|
10
10
|
range
|
11
|
-
].compact.join('/'), options).map do |data|
|
11
|
+
].compact.join('/'), { token: publishable_token }.merge(options)).map do |data|
|
12
12
|
IEX::Resources::News.new(data)
|
13
13
|
end
|
14
14
|
rescue Faraday::ResourceNotFound => e
|
data/lib/iex/endpoints/ohlc.rb
CHANGED
@@ -2,13 +2,13 @@ module IEX
|
|
2
2
|
module Endpoints
|
3
3
|
module Ohlc
|
4
4
|
def ohlc(symbol, options = {})
|
5
|
-
IEX::Resources::OHLC.new(get("stock/#{symbol}/ohlc", options))
|
5
|
+
IEX::Resources::OHLC.new(get("stock/#{symbol}/ohlc", { token: publishable_token }.merge(options)))
|
6
6
|
rescue Faraday::ResourceNotFound => e
|
7
7
|
raise IEX::Errors::SymbolNotFoundError.new(symbol, e.response[:body])
|
8
8
|
end
|
9
9
|
|
10
10
|
def market(options = {})
|
11
|
-
Hash[get('stock/market/ohlc', options).map do |k, v|
|
11
|
+
Hash[get('stock/market/ohlc', { token: publishable_token }.merge(options)).map do |k, v|
|
12
12
|
[k, IEX::Resources::OHLC.new(v)]
|
13
13
|
end]
|
14
14
|
end
|