iex-ruby-client 0.4.4 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.rubocop.yml +6 -0
- data/.rubocop_todo.yml +8 -36
- data/CHANGELOG.md +5 -0
- data/LICENSE.md +1 -1
- data/README.md +113 -160
- data/UPGRADING.md +55 -3
- data/iex-ruby-client.gemspec +1 -1
- data/lib/iex-ruby-client.rb +2 -0
- data/lib/iex/api.rb +15 -31
- data/lib/iex/api/client.rb +30 -0
- data/lib/iex/api/config.rb +45 -0
- data/lib/iex/cloud.rb +3 -0
- data/lib/iex/cloud/connection.rb +37 -0
- data/lib/iex/cloud/request.rb +38 -0
- data/lib/iex/cloud/response.rb +20 -0
- data/lib/iex/endpoints/chart.rb +39 -0
- data/lib/iex/endpoints/company.rb +11 -0
- data/lib/iex/endpoints/crypto.rb +11 -0
- data/lib/iex/endpoints/dividends.rb +18 -0
- data/lib/iex/endpoints/earnings.rb +13 -0
- data/lib/iex/endpoints/key_stats.rb +11 -0
- data/lib/iex/endpoints/largest_trades.rb +13 -0
- data/lib/iex/endpoints/logo.rb +11 -0
- data/lib/iex/endpoints/news.rb +19 -0
- data/lib/iex/endpoints/ohlc.rb +17 -0
- data/lib/iex/endpoints/price.rb +11 -0
- data/lib/iex/endpoints/quote.rb +11 -0
- data/lib/iex/endpoints/sectors.rb +17 -0
- data/lib/iex/errors.rb +1 -0
- data/lib/iex/errors/client_error.rb +13 -1
- data/lib/iex/errors/permission_denied_error.rb +5 -0
- data/lib/iex/logger.rb +13 -0
- data/lib/iex/resources.rb +0 -1
- data/lib/iex/resources/chart.rb +38 -21
- data/lib/iex/resources/company.rb +2 -8
- data/lib/iex/resources/crypto.rb +10 -18
- data/lib/iex/resources/dividends.rb +5 -15
- data/lib/iex/resources/earnings.rb +1 -15
- data/lib/iex/resources/key_stats.rb +11 -57
- data/lib/iex/resources/largest_trades.rb +0 -10
- data/lib/iex/resources/logo.rb +0 -8
- data/lib/iex/resources/news.rb +1 -11
- data/lib/iex/resources/ohlc.rb +8 -16
- data/lib/iex/resources/quote.rb +0 -8
- data/lib/iex/resources/resource.rb +19 -2
- data/lib/iex/resources/sectors.rb +0 -10
- data/lib/iex/version.rb +1 -1
- data/spec/fixtures/iex/chart/1d.yml +472 -444
- data/spec/fixtures/iex/chart/20190306.yml +475 -0
- data/spec/fixtures/iex/chart/bad_option.yml +80 -62
- data/spec/fixtures/iex/chart/chartInterval.yml +121 -98
- data/spec/fixtures/iex/chart/dynamic/1m.yml +106 -81
- data/spec/fixtures/iex/chart/invalid.yml +80 -58
- data/spec/fixtures/iex/chart/msft.yml +106 -81
- data/spec/fixtures/iex/client/access_denied.yml +49 -0
- data/spec/fixtures/iex/company/invalid.yml +80 -58
- data/spec/fixtures/iex/company/msft.yml +87 -65
- data/spec/fixtures/iex/crypto/btcusdt.yml +87 -0
- data/spec/fixtures/iex/dividends/invalid.yml +80 -62
- data/spec/fixtures/iex/dividends/msft.yml +88 -66
- data/spec/fixtures/iex/dividends/msft_1y.yml +92 -68
- data/spec/fixtures/iex/dividends/msft_default_range.yml +85 -65
- data/spec/fixtures/iex/dividends/msft_invalid_range.yml +82 -64
- data/spec/fixtures/iex/earnings/invalid.yml +80 -62
- data/spec/fixtures/iex/earnings/msft.yml +84 -68
- data/spec/fixtures/iex/key_stats/invalid.yml +80 -62
- data/spec/fixtures/iex/key_stats/msft.yml +84 -65
- data/spec/fixtures/iex/largest-trades/aapl.yml +91 -73
- data/spec/fixtures/iex/largest-trades/invalid.yml +80 -62
- data/spec/fixtures/iex/logo/msft.yml +82 -64
- data/spec/fixtures/iex/news/invalid.yml +80 -58
- data/spec/fixtures/iex/news/msft.yml +83 -61
- data/spec/fixtures/iex/news/msft_7.yml +83 -61
- data/spec/fixtures/iex/ohlc/market.yml +82 -65
- data/spec/fixtures/iex/ohlc/msft.yml +82 -64
- data/spec/fixtures/iex/price/invalid.yml +80 -58
- data/spec/fixtures/iex/price/msft.yml +82 -60
- data/spec/fixtures/iex/quote/invalid.yml +80 -62
- data/spec/fixtures/iex/quote/msft.yml +84 -66
- data/spec/fixtures/iex/sectors/invalid.yml +80 -62
- data/spec/fixtures/iex/sectors/sectors-performance.yml +88 -69
- data/spec/iex/client_spec.rb +138 -0
- data/spec/iex/config_spec.rb +22 -0
- data/spec/iex/{resources → endpoints}/chart_spec.rb +23 -21
- data/spec/iex/{resources → endpoints}/company_spec.rb +11 -7
- data/spec/iex/endpoints/crypto_spec.rb +66 -0
- data/spec/iex/{resources → endpoints}/dividends_spec.rb +17 -14
- data/spec/iex/endpoints/earnings_spec.rb +36 -0
- data/spec/iex/endpoints/key_stats_spec.rb +62 -0
- data/spec/iex/{resources → endpoints}/largest_trades_spec.rb +8 -6
- data/spec/iex/{resources → endpoints}/logo_spec.rb +3 -1
- data/spec/iex/endpoints/news_spec.rb +36 -0
- data/spec/iex/{resources → endpoints}/ohlc_spec.rb +15 -13
- data/spec/iex/{resources → endpoints}/price_spec.rb +6 -4
- data/spec/iex/endpoints/quote_spec.rb +38 -0
- data/spec/iex/{resources → endpoints}/sectors_spec.rb +7 -6
- data/spec/iex/resources/{base_spec.rb → resource_spec.rb} +6 -6
- data/spec/spec_helper.rb +2 -0
- data/spec/support/client.rb +6 -0
- metadata +66 -59
- data/lib/iex/api/chart.rb +0 -24
- data/lib/iex/api/company.rb +0 -13
- data/lib/iex/api/crypto.rb +0 -13
- data/lib/iex/api/dividends.rb +0 -17
- data/lib/iex/api/earnings.rb +0 -13
- data/lib/iex/api/key_stats.rb +0 -13
- data/lib/iex/api/largest_trades.rb +0 -13
- data/lib/iex/api/logo.rb +0 -13
- data/lib/iex/api/news.rb +0 -18
- data/lib/iex/api/ohlc.rb +0 -17
- data/lib/iex/api/price.rb +0 -13
- data/lib/iex/api/quote.rb +0 -13
- data/lib/iex/api/sectors.rb +0 -16
- data/lib/iex/resources/base.rb +0 -27
- data/lib/iex/resources/chart/base.rb +0 -14
- data/lib/iex/resources/chart/default.rb +0 -21
- data/lib/iex/resources/chart/one_day.rb +0 -20
- data/lib/iex/resources/ohlc/base.rb +0 -14
- data/lib/iex/resources/ohlc/timed_price.rb +0 -12
- data/lib/iex/resources/price.rb +0 -13
- data/spec/fixtures/iex/chart/20180227.yml +0 -452
- data/spec/fixtures/iex/crypto.yml +0 -101
- data/spec/fixtures/iex/news/market.yml +0 -64
- data/spec/iex/resources/crypto_spec.rb +0 -65
- data/spec/iex/resources/earnings_spec.rb +0 -38
- data/spec/iex/resources/key_stats_spec.rb +0 -94
- data/spec/iex/resources/news_spec.rb +0 -44
- data/spec/iex/resources/quote_spec.rb +0 -38
@@ -1,61 +1,83 @@
|
|
1
1
|
---
|
2
2
|
http_interactions:
|
3
|
-
- request:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://cloud.iexapis.com/v1/stock/INVALID/chart?token=test-iex-api-publishable-token
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ""
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.15.4
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
Accept:
|
15
|
+
- "*/*"
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 404
|
19
|
+
message: Not Found
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- nginx
|
23
|
+
Date:
|
24
|
+
- Mon, 08 Apr 2019 11:43:28 GMT
|
25
|
+
Content-Type:
|
26
|
+
- text/html; charset=utf-8
|
27
|
+
Transfer-Encoding:
|
28
|
+
- chunked
|
29
|
+
Connection:
|
30
|
+
- keep-alive
|
31
|
+
Set-Cookie:
|
32
|
+
- ctoken=99ca74dafa2f455989990d8aedc3f633; Max-Age=43200; Path=/; Expires=Mon,
|
33
|
+
08 Apr 2019 23:43:28 GMT
|
34
|
+
Content-Security-Policy:
|
35
|
+
- "default-src 'self'; child-src 'none'; object-src 'self'; style-src
|
36
|
+
'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self'
|
37
|
+
https://js.intercomcdn.com/fonts/ https://fonts.gstatic.com; frame-src 'self'
|
38
|
+
https://portal.productboard.com/ https://js.stripe.com/; img-src 'self'
|
39
|
+
data: https://*.intercomcdn.com/ https://static.intercomassets.com/ https://www.google-analytics.com
|
40
|
+
https://downloads.intercomcdn.com/; connect-src 'self' https://auth.iexcloud.io
|
41
|
+
https://api.iexcloud.io https://api.iexcloud.io https://cloud.iexapis.com
|
42
|
+
wss://iexcloud.io wss://tops.iexcloud.io wss://api.iexcloud.io wss://iexcloud.io
|
43
|
+
https://api-iam.intercom.io/messenger/ https://nexus-websocket-a.intercom.io/
|
44
|
+
https://nexus-websocket-b.intercom.io/ wss://nexus-websocket-a.intercom.io/
|
45
|
+
wss://nexus-websocket-b.intercom.io/ https://www.google-analytics.com; script-src
|
46
|
+
'self' 'unsafe-inline' 'unsafe-eval' https://www.google.com/recaptcha/api.js
|
47
|
+
https://www.google-analytics.com https://js.stripe.com/v3/ https://widget.intercom.io/widget/lhos563b
|
48
|
+
https://js.intercomcdn.com/ https://www.googletagmanager.com;"
|
49
|
+
X-Content-Security-Policy:
|
50
|
+
- "default-src 'self'; child-src 'none'; object-src 'self'; style-src
|
51
|
+
'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self'
|
52
|
+
https://js.intercomcdn.com/fonts/ https://fonts.gstatic.com; frame-src 'self'
|
53
|
+
https://portal.productboard.com/ https://js.stripe.com/; img-src 'self'
|
54
|
+
data: https://*.intercomcdn.com/ https://static.intercomassets.com/ https://www.google-analytics.com
|
55
|
+
https://downloads.intercomcdn.com/; connect-src 'self' https://auth.iexcloud.io
|
56
|
+
https://api.iexcloud.io https://api.iexcloud.io https://cloud.iexapis.com
|
57
|
+
wss://iexcloud.io wss://tops.iexcloud.io wss://api.iexcloud.io wss://iexcloud.io
|
58
|
+
https://api-iam.intercom.io/messenger/ https://nexus-websocket-a.intercom.io/
|
59
|
+
https://nexus-websocket-b.intercom.io/ wss://nexus-websocket-a.intercom.io/
|
60
|
+
wss://nexus-websocket-b.intercom.io/ https://www.google-analytics.com; script-src
|
61
|
+
'self' 'unsafe-inline' 'unsafe-eval' https://www.google.com/recaptcha/api.js
|
62
|
+
https://www.google-analytics.com https://js.stripe.com/v3/ https://widget.intercom.io/widget/lhos563b
|
63
|
+
https://js.intercomcdn.com/ https://www.googletagmanager.com;"
|
64
|
+
Frame-Options:
|
65
|
+
- SAMEORIGIN
|
66
|
+
X-Frame-Options:
|
67
|
+
- SAMEORIGIN
|
68
|
+
Strict-Transport-Security:
|
69
|
+
- max-age=15768000
|
70
|
+
Access-Control-Allow-Origin:
|
71
|
+
- "*"
|
72
|
+
Access-Control-Allow-Credentials:
|
73
|
+
- "true"
|
74
|
+
Access-Control-Allow-Methods:
|
75
|
+
- GET, OPTIONS
|
76
|
+
Access-Control-Allow-Headers:
|
77
|
+
- Origin, X-Requested-With, Content-Type, Accept
|
78
|
+
body:
|
79
|
+
encoding: ASCII-8BIT
|
80
|
+
string: Unknown symbol
|
81
|
+
http_version:
|
82
|
+
recorded_at: Mon, 08 Apr 2019 11:43:28 GMT
|
61
83
|
recorded_with: VCR 4.0.0
|
@@ -1,84 +1,109 @@
|
|
1
1
|
---
|
2
2
|
http_interactions:
|
3
|
-
- request:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://cloud.iexapis.com/v1/stock/MSFT/chart?token=test-iex-api-publishable-token
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ""
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.15.4
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
Accept:
|
15
|
+
- "*/*"
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- nginx
|
23
|
+
Date:
|
24
|
+
- Mon, 08 Apr 2019 11:43:23 GMT
|
25
|
+
Content-Type:
|
26
|
+
- application/json; charset=utf-8
|
27
|
+
Transfer-Encoding:
|
28
|
+
- chunked
|
29
|
+
Connection:
|
30
|
+
- keep-alive
|
31
|
+
Set-Cookie:
|
32
|
+
- ctoken=ec78cac959d1450894d0541dafd14e13; Max-Age=43200; Path=/; Expires=Mon,
|
33
|
+
08 Apr 2019 23:43:23 GMT
|
34
|
+
Content-Security-Policy:
|
35
|
+
- "default-src 'self'; child-src 'none'; object-src 'self'; style-src
|
36
|
+
'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self'
|
37
|
+
https://js.intercomcdn.com/fonts/ https://fonts.gstatic.com; frame-src 'self'
|
38
|
+
https://portal.productboard.com/ https://js.stripe.com/; img-src 'self'
|
39
|
+
data: https://*.intercomcdn.com/ https://static.intercomassets.com/ https://www.google-analytics.com
|
40
|
+
https://downloads.intercomcdn.com/; connect-src 'self' https://auth.iexcloud.io
|
41
|
+
https://api.iexcloud.io https://api.iexcloud.io https://cloud.iexapis.com
|
42
|
+
wss://iexcloud.io wss://tops.iexcloud.io wss://api.iexcloud.io wss://iexcloud.io
|
43
|
+
https://api-iam.intercom.io/messenger/ https://nexus-websocket-a.intercom.io/
|
44
|
+
https://nexus-websocket-b.intercom.io/ wss://nexus-websocket-a.intercom.io/
|
45
|
+
wss://nexus-websocket-b.intercom.io/ https://www.google-analytics.com; script-src
|
46
|
+
'self' 'unsafe-inline' 'unsafe-eval' https://www.google.com/recaptcha/api.js
|
47
|
+
https://www.google-analytics.com https://js.stripe.com/v3/ https://widget.intercom.io/widget/lhos563b
|
48
|
+
https://js.intercomcdn.com/ https://www.googletagmanager.com;"
|
49
|
+
X-Content-Security-Policy:
|
50
|
+
- "default-src 'self'; child-src 'none'; object-src 'self'; style-src
|
51
|
+
'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self'
|
52
|
+
https://js.intercomcdn.com/fonts/ https://fonts.gstatic.com; frame-src 'self'
|
53
|
+
https://portal.productboard.com/ https://js.stripe.com/; img-src 'self'
|
54
|
+
data: https://*.intercomcdn.com/ https://static.intercomassets.com/ https://www.google-analytics.com
|
55
|
+
https://downloads.intercomcdn.com/; connect-src 'self' https://auth.iexcloud.io
|
56
|
+
https://api.iexcloud.io https://api.iexcloud.io https://cloud.iexapis.com
|
57
|
+
wss://iexcloud.io wss://tops.iexcloud.io wss://api.iexcloud.io wss://iexcloud.io
|
58
|
+
https://api-iam.intercom.io/messenger/ https://nexus-websocket-a.intercom.io/
|
59
|
+
https://nexus-websocket-b.intercom.io/ wss://nexus-websocket-a.intercom.io/
|
60
|
+
wss://nexus-websocket-b.intercom.io/ https://www.google-analytics.com; script-src
|
61
|
+
'self' 'unsafe-inline' 'unsafe-eval' https://www.google.com/recaptcha/api.js
|
62
|
+
https://www.google-analytics.com https://js.stripe.com/v3/ https://widget.intercom.io/widget/lhos563b
|
63
|
+
https://js.intercomcdn.com/ https://www.googletagmanager.com;"
|
64
|
+
Frame-Options:
|
65
|
+
- SAMEORIGIN
|
66
|
+
X-Frame-Options:
|
67
|
+
- SAMEORIGIN
|
68
|
+
X-Content-Type-Options:
|
69
|
+
- nosniff
|
70
|
+
Strict-Transport-Security:
|
71
|
+
- max-age=15768000
|
72
|
+
Access-Control-Allow-Origin:
|
73
|
+
- "*"
|
74
|
+
Access-Control-Allow-Credentials:
|
75
|
+
- "true"
|
76
|
+
Access-Control-Allow-Methods:
|
77
|
+
- GET, OPTIONS
|
78
|
+
Access-Control-Allow-Headers:
|
79
|
+
- Origin, X-Requested-With, Content-Type, Accept
|
80
|
+
body:
|
81
|
+
encoding: ASCII-8BIT
|
82
|
+
string:
|
83
|
+
'[{"date":"2019-03-06","open":111.87,"close":111.75,"high":112.66,"low":111.43,"volume":17686996,"uOpen":111.87,"uClose":111.75,"uHigh":112.66,"uLow":111.43,"uVolume":17686996,"change":0,"changePercent":0,"label":"Mar
|
84
|
+
6","changeOverTime":0},{"date":"2019-03-07","open":111.4,"close":110.39,"high":111.55,"low":109.86,"volume":25338954,"uOpen":111.4,"uClose":110.39,"uHigh":111.55,"uLow":109.86,"uVolume":25338954,"change":-1.36,"changePercent":-1.217,"label":"Mar
|
85
|
+
7","changeOverTime":-0.01217},{"date":"2019-03-08","open":109.16,"close":110.51,"high":110.71,"low":108.8,"volume":22818430,"uOpen":109.16,"uClose":110.51,"uHigh":110.71,"uLow":108.8,"uVolume":22818430,"change":0.12,"changePercent":0.1087,"label":"Mar
|
86
|
+
8","changeOverTime":-0.011096},{"date":"2019-03-11","open":110.99,"close":112.83,"high":112.95,"low":110.98,"volume":26491618,"uOpen":110.99,"uClose":112.83,"uHigh":112.95,"uLow":110.98,"uVolume":26491618,"change":2.32,"changePercent":2.0994,"label":"Mar
|
87
|
+
11","changeOverTime":0.009664},{"date":"2019-03-12","open":112.82,"close":113.62,"high":113.99,"low":112.65,"volume":26132717,"uOpen":112.82,"uClose":113.62,"uHigh":113.99,"uLow":112.65,"uVolume":26132717,"change":0.79,"changePercent":0.7002,"label":"Mar
|
88
|
+
12","changeOverTime":0.016734},{"date":"2019-03-13","open":114.13,"close":114.5,"high":115,"low":113.78,"volume":35513771,"uOpen":114.13,"uClose":114.5,"uHigh":115,"uLow":113.78,"uVolume":35513771,"change":0.88,"changePercent":0.7745,"label":"Mar
|
89
|
+
13","changeOverTime":0.024609},{"date":"2019-03-14","open":114.54,"close":114.59,"high":115.2,"low":114.33,"volume":30763367,"uOpen":114.54,"uClose":114.59,"uHigh":115.2,"uLow":114.33,"uVolume":30763367,"change":0.09,"changePercent":0.0786,"label":"Mar
|
90
|
+
14","changeOverTime":0.025414},{"date":"2019-03-15","open":115.34,"close":115.91,"high":117.25,"low":114.59,"volume":54630661,"uOpen":115.34,"uClose":115.91,"uHigh":117.25,"uLow":114.59,"uVolume":54630661,"change":1.32,"changePercent":1.1519,"label":"Mar
|
91
|
+
15","changeOverTime":0.037226},{"date":"2019-03-18","open":116.17,"close":117.57,"high":117.61,"low":116.05,"volume":31207596,"uOpen":116.17,"uClose":117.57,"uHigh":117.61,"uLow":116.05,"uVolume":31207596,"change":1.66,"changePercent":1.4321,"label":"Mar
|
92
|
+
18","changeOverTime":0.052081},{"date":"2019-03-19","open":118.09,"close":117.65,"high":118.44,"low":116.99,"volume":37588697,"uOpen":118.09,"uClose":117.65,"uHigh":118.44,"uLow":116.99,"uVolume":37588697,"change":0.08,"changePercent":0.068,"label":"Mar
|
93
|
+
19","changeOverTime":0.052796},{"date":"2019-03-20","open":117.39,"close":117.52,"high":118.75,"low":116.71,"volume":28113343,"uOpen":117.39,"uClose":117.52,"uHigh":118.75,"uLow":116.71,"uVolume":28113343,"change":-0.13,"changePercent":-0.1105,"label":"Mar
|
94
|
+
20","changeOverTime":0.051633},{"date":"2019-03-21","open":117.14,"close":120.22,"high":120.82,"low":117.09,"volume":29854446,"uOpen":117.14,"uClose":120.22,"uHigh":120.82,"uLow":117.09,"uVolume":29854446,"change":2.7,"changePercent":2.2975,"label":"Mar
|
95
|
+
21","changeOverTime":0.075794},{"date":"2019-03-22","open":119.5,"close":117.05,"high":119.59,"low":117.04,"volume":33624528,"uOpen":119.5,"uClose":117.05,"uHigh":119.59,"uLow":117.04,"uVolume":33624528,"change":-3.17,"changePercent":-2.6368,"label":"Mar
|
96
|
+
22","changeOverTime":0.047427},{"date":"2019-03-25","open":116.56,"close":117.66,"high":118.01,"low":116.32,"volume":27067117,"uOpen":116.56,"uClose":117.66,"uHigh":118.01,"uLow":116.32,"uVolume":27067117,"change":0.61,"changePercent":0.5211,"label":"Mar
|
97
|
+
25","changeOverTime":0.052886},{"date":"2019-03-26","open":118.62,"close":117.91,"high":118.7,"low":116.85,"volume":26097665,"uOpen":118.62,"uClose":117.91,"uHigh":118.7,"uLow":116.85,"uVolume":26097665,"change":0.25,"changePercent":0.2125,"label":"Mar
|
98
|
+
26","changeOverTime":0.055123},{"date":"2019-03-27","open":117.88,"close":116.77,"high":118.21,"low":115.52,"volume":22733427,"uOpen":117.88,"uClose":116.77,"uHigh":118.21,"uLow":115.52,"uVolume":22733427,"change":-1.14,"changePercent":-0.9668,"label":"Mar
|
99
|
+
27","changeOverTime":0.044922},{"date":"2019-03-28","open":117.44,"close":116.93,"high":117.58,"low":116.13,"volume":18334755,"uOpen":117.44,"uClose":116.93,"uHigh":117.58,"uLow":116.13,"uVolume":18334755,"change":0.16,"changePercent":0.137,"label":"Mar
|
100
|
+
28","changeOverTime":0.046353},{"date":"2019-03-29","open":118.07,"close":117.94,"high":118.32,"low":116.96,"volume":25399752,"uOpen":118.07,"uClose":117.94,"uHigh":118.32,"uLow":116.96,"uVolume":25399752,"change":1.01,"changePercent":0.8638,"label":"Mar
|
101
|
+
29","changeOverTime":0.055391},{"date":"2019-04-01","open":118.95,"close":119.02,"high":119.11,"low":118.1,"volume":22789103,"uOpen":118.95,"uClose":119.02,"uHigh":119.11,"uLow":118.1,"uVolume":22789103,"change":1.08,"changePercent":0.9157,"label":"Apr
|
102
|
+
1","changeOverTime":0.065056},{"date":"2019-04-02","open":119.06,"close":119.19,"high":119.48,"low":118.52,"volume":18142297,"uOpen":119.06,"uClose":119.19,"uHigh":119.48,"uLow":118.52,"uVolume":18142297,"change":0.17,"changePercent":0.1428,"label":"Apr
|
103
|
+
2","changeOverTime":0.066577},{"date":"2019-04-03","open":119.86,"close":119.97,"high":120.43,"low":119.15,"volume":22860744,"uOpen":119.86,"uClose":119.97,"uHigh":120.43,"uLow":119.15,"uVolume":22860744,"change":0.78,"changePercent":0.6544,"label":"Apr
|
104
|
+
3","changeOverTime":0.073557},{"date":"2019-04-04","open":120.1,"close":119.36,"high":120.23,"low":118.38,"volume":20112848,"uOpen":120.1,"uClose":119.36,"uHigh":120.23,"uLow":118.38,"uVolume":20112848,"change":-0.61,"changePercent":-0.5085,"label":"Apr
|
105
|
+
4","changeOverTime":0.068098},{"date":"2019-04-05","open":119.39,"close":119.89,"high":120.23,"low":119.37,"volume":15826245,"uOpen":119.39,"uClose":119.89,"uHigh":120.23,"uLow":119.37,"uVolume":15826245,"change":0.53,"changePercent":0.444,"label":"Apr
|
106
|
+
5","changeOverTime":0.072841}]'
|
107
|
+
http_version:
|
108
|
+
recorded_at: Mon, 08 Apr 2019 11:43:23 GMT
|
84
109
|
recorded_with: VCR 4.0.0
|
@@ -0,0 +1,49 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://cloud.iexapis.com/v1//stock/msft/quote?token=test-iex-api-publishable-token
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/json; charset=utf-8
|
12
|
+
User-Agent:
|
13
|
+
- IEX Ruby Client/1.0.0
|
14
|
+
Accept-Encoding:
|
15
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 403
|
19
|
+
message: Forbidden
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- nginx
|
23
|
+
Date:
|
24
|
+
- Fri, 19 Apr 2019 18:22:21 GMT
|
25
|
+
Content-Type:
|
26
|
+
- text/html; charset=utf-8
|
27
|
+
Transfer-Encoding:
|
28
|
+
- chunked
|
29
|
+
Connection:
|
30
|
+
- keep-alive
|
31
|
+
Set-Cookie:
|
32
|
+
- ctoken=9276ad51186c44af86022b7f19720f57; Max-Age=43200; Path=/; Expires=Sat,
|
33
|
+
20 Apr 2019 06:22:21 GMT
|
34
|
+
Strict-Transport-Security:
|
35
|
+
- max-age=15768000
|
36
|
+
Access-Control-Allow-Origin:
|
37
|
+
- "*"
|
38
|
+
Access-Control-Allow-Credentials:
|
39
|
+
- 'true'
|
40
|
+
Access-Control-Allow-Methods:
|
41
|
+
- GET, OPTIONS
|
42
|
+
Access-Control-Allow-Headers:
|
43
|
+
- Origin, X-Requested-With, Content-Type, Accept
|
44
|
+
body:
|
45
|
+
encoding: ASCII-8BIT
|
46
|
+
string: The API key provided is not valid.
|
47
|
+
http_version:
|
48
|
+
recorded_at: Fri, 19 Apr 2019 18:22:21 GMT
|
49
|
+
recorded_with: VCR 4.0.0
|
@@ -1,61 +1,83 @@
|
|
1
1
|
---
|
2
2
|
http_interactions:
|
3
|
-
- request:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://cloud.iexapis.com/v1/stock/INVALID/company?token=test-iex-api-publishable-token
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ""
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.15.4
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
Accept:
|
15
|
+
- "*/*"
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 404
|
19
|
+
message: Not Found
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- nginx
|
23
|
+
Date:
|
24
|
+
- Mon, 08 Apr 2019 11:36:57 GMT
|
25
|
+
Content-Type:
|
26
|
+
- text/html; charset=utf-8
|
27
|
+
Transfer-Encoding:
|
28
|
+
- chunked
|
29
|
+
Connection:
|
30
|
+
- keep-alive
|
31
|
+
Set-Cookie:
|
32
|
+
- ctoken=b84bcedca0fb4409b3e3d08aafb795ca; Max-Age=43200; Path=/; Expires=Mon,
|
33
|
+
08 Apr 2019 23:36:57 GMT
|
34
|
+
Content-Security-Policy:
|
35
|
+
- "default-src 'self'; child-src 'none'; object-src 'self'; style-src
|
36
|
+
'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self'
|
37
|
+
https://js.intercomcdn.com/fonts/ https://fonts.gstatic.com; frame-src 'self'
|
38
|
+
https://portal.productboard.com/ https://js.stripe.com/; img-src 'self'
|
39
|
+
data: https://*.intercomcdn.com/ https://static.intercomassets.com/ https://www.google-analytics.com
|
40
|
+
https://downloads.intercomcdn.com/; connect-src 'self' https://auth.iexcloud.io
|
41
|
+
https://api.iexcloud.io https://api.iexcloud.io https://cloud.iexapis.com
|
42
|
+
wss://iexcloud.io wss://tops.iexcloud.io wss://api.iexcloud.io wss://iexcloud.io
|
43
|
+
https://api-iam.intercom.io/messenger/ https://nexus-websocket-a.intercom.io/
|
44
|
+
https://nexus-websocket-b.intercom.io/ wss://nexus-websocket-a.intercom.io/
|
45
|
+
wss://nexus-websocket-b.intercom.io/ https://www.google-analytics.com; script-src
|
46
|
+
'self' 'unsafe-inline' 'unsafe-eval' https://www.google.com/recaptcha/api.js
|
47
|
+
https://www.google-analytics.com https://js.stripe.com/v3/ https://widget.intercom.io/widget/lhos563b
|
48
|
+
https://js.intercomcdn.com/ https://www.googletagmanager.com;"
|
49
|
+
X-Content-Security-Policy:
|
50
|
+
- "default-src 'self'; child-src 'none'; object-src 'self'; style-src
|
51
|
+
'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self'
|
52
|
+
https://js.intercomcdn.com/fonts/ https://fonts.gstatic.com; frame-src 'self'
|
53
|
+
https://portal.productboard.com/ https://js.stripe.com/; img-src 'self'
|
54
|
+
data: https://*.intercomcdn.com/ https://static.intercomassets.com/ https://www.google-analytics.com
|
55
|
+
https://downloads.intercomcdn.com/; connect-src 'self' https://auth.iexcloud.io
|
56
|
+
https://api.iexcloud.io https://api.iexcloud.io https://cloud.iexapis.com
|
57
|
+
wss://iexcloud.io wss://tops.iexcloud.io wss://api.iexcloud.io wss://iexcloud.io
|
58
|
+
https://api-iam.intercom.io/messenger/ https://nexus-websocket-a.intercom.io/
|
59
|
+
https://nexus-websocket-b.intercom.io/ wss://nexus-websocket-a.intercom.io/
|
60
|
+
wss://nexus-websocket-b.intercom.io/ https://www.google-analytics.com; script-src
|
61
|
+
'self' 'unsafe-inline' 'unsafe-eval' https://www.google.com/recaptcha/api.js
|
62
|
+
https://www.google-analytics.com https://js.stripe.com/v3/ https://widget.intercom.io/widget/lhos563b
|
63
|
+
https://js.intercomcdn.com/ https://www.googletagmanager.com;"
|
64
|
+
Frame-Options:
|
65
|
+
- SAMEORIGIN
|
66
|
+
X-Frame-Options:
|
67
|
+
- SAMEORIGIN
|
68
|
+
Strict-Transport-Security:
|
69
|
+
- max-age=15768000
|
70
|
+
Access-Control-Allow-Origin:
|
71
|
+
- "*"
|
72
|
+
Access-Control-Allow-Credentials:
|
73
|
+
- "true"
|
74
|
+
Access-Control-Allow-Methods:
|
75
|
+
- GET, OPTIONS
|
76
|
+
Access-Control-Allow-Headers:
|
77
|
+
- Origin, X-Requested-With, Content-Type, Accept
|
78
|
+
body:
|
79
|
+
encoding: ASCII-8BIT
|
80
|
+
string: Unknown symbol
|
81
|
+
http_version:
|
82
|
+
recorded_at: Mon, 08 Apr 2019 11:36:57 GMT
|
61
83
|
recorded_with: VCR 4.0.0
|