iex-ruby-client 0.2.0 → 0.3.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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +30 -5
  3. data/CHANGELOG.md +7 -0
  4. data/README.md +67 -0
  5. data/lib/iex/api.rb +3 -0
  6. data/lib/iex/api/chart.rb +30 -0
  7. data/lib/iex/api/company.rb +2 -6
  8. data/lib/iex/api/news.rb +18 -0
  9. data/lib/iex/api/price.rb +13 -0
  10. data/lib/iex/api/quote.rb +2 -6
  11. data/lib/iex/resources.rb +3 -0
  12. data/lib/iex/resources/chart.rb +27 -0
  13. data/lib/iex/resources/chart/base.rb +14 -0
  14. data/lib/iex/resources/chart/default.rb +21 -0
  15. data/lib/iex/resources/chart/one_day.rb +20 -0
  16. data/lib/iex/resources/company.rb +1 -1
  17. data/lib/iex/resources/news.rb +20 -0
  18. data/lib/iex/resources/price.rb +11 -0
  19. data/lib/iex/resources/quote.rb +3 -1
  20. data/lib/iex/version.rb +1 -1
  21. data/spec/fixtures/iex/chart/1d.yml +447 -0
  22. data/spec/fixtures/iex/chart/20180227.yml +452 -0
  23. data/spec/fixtures/iex/chart/chartInterval.yml +101 -0
  24. data/spec/fixtures/iex/chart/dynamic/1m.yml +84 -0
  25. data/spec/fixtures/iex/chart/invalid.yml +61 -0
  26. data/spec/fixtures/iex/chart/msft.yml +84 -0
  27. data/spec/fixtures/iex/news/invalid.yml +61 -0
  28. data/spec/fixtures/iex/news/market.yml +64 -0
  29. data/spec/fixtures/iex/news/msft.yml +64 -0
  30. data/spec/fixtures/iex/news/msft_7.yml +64 -0
  31. data/spec/fixtures/iex/price/invalid.yml +61 -0
  32. data/spec/fixtures/iex/price/msft.yml +63 -0
  33. data/spec/fixtures/iex/quote/invalid.yml +14 -10
  34. data/spec/fixtures/iex/quote/msft.yml +17 -13
  35. data/spec/iex/resources/chart_spec.rb +75 -0
  36. data/spec/iex/resources/news_spec.rb +44 -0
  37. data/spec/iex/resources/price_spec.rb +20 -0
  38. data/spec/iex/resources/quote_spec.rb +11 -11
  39. metadata +41 -2
@@ -0,0 +1,61 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.iextrading.com/1.0/stock/INVALID/price
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.14.0
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, 26 Mar 2018 21:23:04 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=7cab87f11efa4ba89c9775415d6f840c; Domain=.iextrading.com; Path=/; Expires=Tue,
33
+ 27 Mar 2018 09:23:04 GMT; Secure
34
+ Content-Security-Policy:
35
+ - default-src 'self'; child-src 'none'; object-src 'none'; style-src 'self'
36
+ 'unsafe-inline'; font-src data:; connect-src 'self' https://auth.iextrading.com
37
+ wss://iextrading.com wss://tops.iextrading.com; script-src 'self';
38
+ X-Content-Security-Policy:
39
+ - default-src 'self'; child-src 'none'; object-src 'none'; style-src 'self'
40
+ 'unsafe-inline'; font-src data:; connect-src 'self' https://auth.iextrading.com
41
+ wss://iextrading.com wss://tops.iextrading.com; script-src 'self';
42
+ Frame-Options:
43
+ - deny
44
+ X-Frame-Options:
45
+ - deny
46
+ Strict-Transport-Security:
47
+ - max-age=15768000
48
+ Access-Control-Allow-Origin:
49
+ - "*"
50
+ Access-Control-Allow-Credentials:
51
+ - 'true'
52
+ Access-Control-Allow-Methods:
53
+ - GET, OPTIONS
54
+ Access-Control-Allow-Headers:
55
+ - Origin, X-Requested-With, Content-Type, Accept
56
+ body:
57
+ encoding: ASCII-8BIT
58
+ string: Unknown symbol
59
+ http_version:
60
+ recorded_at: Mon, 26 Mar 2018 21:23:04 GMT
61
+ recorded_with: VCR 4.0.0
@@ -0,0 +1,63 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.iextrading.com/1.0/stock/MSFT/price
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.14.0
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, 26 Mar 2018 21:23:04 GMT
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Content-Length:
28
+ - '5'
29
+ Connection:
30
+ - keep-alive
31
+ Set-Cookie:
32
+ - ctoken=b83775aae26e449c9e5565abfacb46f6; Domain=.iextrading.com; Path=/; Expires=Tue,
33
+ 27 Mar 2018 09:23:03 GMT; Secure
34
+ Content-Security-Policy:
35
+ - default-src 'self'; child-src 'none'; object-src 'none'; style-src 'self'
36
+ 'unsafe-inline'; font-src data:; connect-src 'self' https://auth.iextrading.com
37
+ wss://iextrading.com wss://tops.iextrading.com; script-src 'self';
38
+ X-Content-Security-Policy:
39
+ - default-src 'self'; child-src 'none'; object-src 'none'; style-src 'self'
40
+ 'unsafe-inline'; font-src data:; connect-src 'self' https://auth.iextrading.com
41
+ wss://iextrading.com wss://tops.iextrading.com; script-src 'self';
42
+ Frame-Options:
43
+ - deny
44
+ X-Frame-Options:
45
+ - deny
46
+ X-Content-Type-Options:
47
+ - nosniff
48
+ Strict-Transport-Security:
49
+ - max-age=15768000
50
+ Access-Control-Allow-Origin:
51
+ - "*"
52
+ Access-Control-Allow-Credentials:
53
+ - 'true'
54
+ Access-Control-Allow-Methods:
55
+ - GET, OPTIONS
56
+ Access-Control-Allow-Headers:
57
+ - Origin, X-Requested-With, Content-Type, Accept
58
+ body:
59
+ encoding: UTF-8
60
+ string: '93.78'
61
+ http_version:
62
+ recorded_at: Mon, 26 Mar 2018 21:23:04 GMT
63
+ recorded_with: VCR 4.0.0
@@ -21,7 +21,7 @@ http_interactions:
21
21
  Server:
22
22
  - nginx
23
23
  Date:
24
- - Fri, 23 Mar 2018 15:15:57 GMT
24
+ - Tue, 22 May 2018 20:13:00 GMT
25
25
  Content-Type:
26
26
  - text/html; charset=utf-8
27
27
  Transfer-Encoding:
@@ -29,20 +29,24 @@ http_interactions:
29
29
  Connection:
30
30
  - keep-alive
31
31
  Set-Cookie:
32
- - ctoken=8fdab40cfa8542669c3411d154319317; Domain=.iextrading.com; Path=/; Expires=Sat,
33
- 24 Mar 2018 03:15:57 GMT; Secure
32
+ - ctoken=7b2950e131e948bca00f5eed64893da3; Domain=.iextrading.com; Path=/; Expires=Wed,
33
+ 23 May 2018 08:13:00 GMT; Secure
34
34
  Content-Security-Policy:
35
35
  - default-src 'self'; child-src 'none'; object-src 'none'; style-src 'self'
36
- 'unsafe-inline'; font-src data:; connect-src 'self' https://auth.iextrading.com
37
- wss://iextrading.com wss://tops.iextrading.com; script-src 'self';
36
+ 'unsafe-inline'; font-src data:; frame-src 'self'; connect-src 'self' https://auth.iextrading.com
37
+ https://api.iextrading.com https://api.iextrading.com wss://iextrading.com
38
+ wss://tops.iextrading.com wss://api.iextrading.com wss://iextrading.com; script-src
39
+ 'self' 'unsafe-inline' 'unsafe-eval';
38
40
  X-Content-Security-Policy:
39
41
  - default-src 'self'; child-src 'none'; object-src 'none'; style-src 'self'
40
- 'unsafe-inline'; font-src data:; connect-src 'self' https://auth.iextrading.com
41
- wss://iextrading.com wss://tops.iextrading.com; script-src 'self';
42
+ 'unsafe-inline'; font-src data:; frame-src 'self'; connect-src 'self' https://auth.iextrading.com
43
+ https://api.iextrading.com https://api.iextrading.com wss://iextrading.com
44
+ wss://tops.iextrading.com wss://api.iextrading.com wss://iextrading.com; script-src
45
+ 'self' 'unsafe-inline' 'unsafe-eval';
42
46
  Frame-Options:
43
- - deny
47
+ - SAMEORIGIN
44
48
  X-Frame-Options:
45
- - deny
49
+ - SAMEORIGIN
46
50
  Strict-Transport-Security:
47
51
  - max-age=15768000
48
52
  Access-Control-Allow-Origin:
@@ -57,5 +61,5 @@ http_interactions:
57
61
  encoding: ASCII-8BIT
58
62
  string: Unknown symbol
59
63
  http_version:
60
- recorded_at: Fri, 23 Mar 2018 15:15:57 GMT
64
+ recorded_at: Tue, 22 May 2018 20:13:00 GMT
61
65
  recorded_with: VCR 4.0.0
@@ -21,28 +21,32 @@ http_interactions:
21
21
  Server:
22
22
  - nginx
23
23
  Date:
24
- - Fri, 23 Mar 2018 15:15:57 GMT
24
+ - Tue, 22 May 2018 20:12:59 GMT
25
25
  Content-Type:
26
26
  - application/json; charset=utf-8
27
27
  Content-Length:
28
- - '836'
28
+ - '874'
29
29
  Connection:
30
30
  - keep-alive
31
31
  Set-Cookie:
32
- - ctoken=d3f239a37b4141acbf609e8663f3302a; Domain=.iextrading.com; Path=/; Expires=Sat,
33
- 24 Mar 2018 03:15:57 GMT; Secure
32
+ - ctoken=124dc8691fb84575bc5d622d323ab8bb; Domain=.iextrading.com; Path=/; Expires=Wed,
33
+ 23 May 2018 08:12:59 GMT; Secure
34
34
  Content-Security-Policy:
35
35
  - default-src 'self'; child-src 'none'; object-src 'none'; style-src 'self'
36
- 'unsafe-inline'; font-src data:; connect-src 'self' https://auth.iextrading.com
37
- wss://iextrading.com wss://tops.iextrading.com; script-src 'self';
36
+ 'unsafe-inline'; font-src data:; frame-src 'self'; connect-src 'self' https://auth.iextrading.com
37
+ https://api.iextrading.com https://api.iextrading.com wss://iextrading.com
38
+ wss://tops.iextrading.com wss://api.iextrading.com wss://iextrading.com; script-src
39
+ 'self' 'unsafe-inline' 'unsafe-eval';
38
40
  X-Content-Security-Policy:
39
41
  - default-src 'self'; child-src 'none'; object-src 'none'; style-src 'self'
40
- 'unsafe-inline'; font-src data:; connect-src 'self' https://auth.iextrading.com
41
- wss://iextrading.com wss://tops.iextrading.com; script-src 'self';
42
+ 'unsafe-inline'; font-src data:; frame-src 'self'; connect-src 'self' https://auth.iextrading.com
43
+ https://api.iextrading.com https://api.iextrading.com wss://iextrading.com
44
+ wss://tops.iextrading.com wss://api.iextrading.com wss://iextrading.com; script-src
45
+ 'self' 'unsafe-inline' 'unsafe-eval';
42
46
  Frame-Options:
43
- - deny
47
+ - SAMEORIGIN
44
48
  X-Frame-Options:
45
- - deny
49
+ - SAMEORIGIN
46
50
  X-Content-Type-Options:
47
51
  - nosniff
48
52
  Strict-Transport-Security:
@@ -58,8 +62,8 @@ http_interactions:
58
62
  body:
59
63
  encoding: UTF-8
60
64
  string: '{"symbol":"MSFT","companyName":"Microsoft Corporation","primaryExchange":"Nasdaq
61
- Global Select","sector":"Technology","calculationPrice":"tops","open":89.45,"openTime":1521811800352,"close":89.79,"closeTime":1521748800315,"high":90.46,"low":89.161,"latestPrice":90.165,"latestSource":"IEX
62
- real time price","latestTime":"11:15:45 AM","latestUpdate":1521818145007,"latestVolume":10015072,"iexRealtimePrice":90.165,"iexRealtimeSize":200,"iexLastUpdated":1521818145007,"delayedPrice":90.34,"delayedPriceTime":1521817252749,"previousClose":89.79,"change":0.375,"changePercent":0.00418,"iexMarketPercent":0.03178,"iexVolume":318279,"avgTotalVolume":32176892,"iexBidPrice":89.8,"iexBidSize":100,"iexAskPrice":92.31,"iexAskSize":100,"marketCap":694251822501,"peRatio":27.32,"week52High":97.24,"week52Low":64.35,"ytdChange":0.049583743433526506}'
65
+ Global Select","sector":"Technology","calculationPrice":"tops","open":97.71,"openTime":1526995800716,"close":97.6,"closeTime":1526932800235,"high":98.17,"low":97.2,"latestPrice":97.54,"latestSource":"IEX
66
+ real time price","latestTime":"3:59:47 PM","latestUpdate":1527019187506,"latestVolume":13670424,"iexRealtimePrice":97.54,"iexRealtimeSize":100,"iexLastUpdated":1527019187506,"delayedPrice":97.375,"delayedPriceTime":1527019077341,"extendedPrice":97.71,"extendedPriceTime":1526995800696,"previousClose":97.6,"change":-0.06,"changePercent":-0.00061,"iexMarketPercent":0.01322,"iexVolume":180723,"avgTotalVolume":26330377,"iexBidPrice":0,"iexBidSize":0,"iexAskPrice":0,"iexAskSize":0,"marketCap":749419084443,"peRatio":28.86,"week52High":98.69,"week52Low":67.5,"ytdChange":0.14582232709940235}'
63
67
  http_version:
64
- recorded_at: Fri, 23 Mar 2018 15:15:57 GMT
68
+ recorded_at: Tue, 22 May 2018 20:12:59 GMT
65
69
  recorded_with: VCR 4.0.0
@@ -0,0 +1,75 @@
1
+ require 'spec_helper'
2
+
3
+ describe IEX::Resources::Chart do
4
+ context 'known symbol', vcr: { cassette_name: 'chart/msft' } do
5
+ subject do
6
+ IEX::Resources::Chart.get('MSFT')
7
+ end
8
+ let(:first) { subject.first }
9
+ let(:last) { subject.last }
10
+ it 'retrieves a default chart' do
11
+ expect(subject.count).to eq 21
12
+ expect(first).to be_a IEX::Resources::Chart::Default
13
+ expect(first.label).to eq 'Feb 26'
14
+ expect(first.change_percent_s).to eq '+1.45%'
15
+ expect(first.close).to eq 95.42
16
+ expect(first.date).to eq Date.new(2018, 2, 26)
17
+ expect(last.label).to eq 'Mar 26'
18
+ end
19
+ end
20
+ context '1d', vcr: { cassette_name: 'chart/1d' } do
21
+ subject do
22
+ IEX::Resources::Chart.get('MSFT', '1d')
23
+ end
24
+ let(:first) { subject.first }
25
+ let(:last) { subject.last }
26
+ it 'retrieves a 1 day chart' do
27
+ expect(subject.count).to eq 385
28
+ expect(first).to be_a IEX::Resources::Chart::OneDay
29
+ expect(first.label).to eq '09:30 AM'
30
+ expect(first.high).to eq 94.97
31
+ expect(first.low).to eq 94.76
32
+ expect(first.minute).to eq '09:30'
33
+ end
34
+ end
35
+ context 'with options', vcr: { cassette_name: 'chart/chartInterval' } do
36
+ subject do
37
+ IEX::Resources::Chart.get('MSFT', '1d', chart_interval: 10)
38
+ end
39
+ let(:first) { subject.first }
40
+ it 'retrieves a 1 day chart with chartInterval applied' do
41
+ expect(subject.count).to eq 39
42
+ expect(first).to be_a IEX::Resources::Chart::OneDay
43
+ end
44
+ end
45
+ context 'date', vcr: { cassette_name: 'chart/20180227' } do
46
+ subject do
47
+ IEX::Resources::Chart.get('MSFT', Date.new(2018, 2, 27))
48
+ end
49
+ let(:first) { subject.first }
50
+ it 'retrieves a 1 day chart from 2018/2/27' do
51
+ expect(subject.count).to eq 390
52
+ expect(first).to be_a IEX::Resources::Chart::OneDay
53
+ expect(first.date).to eq Date.new(2018, 2, 27)
54
+ end
55
+ end
56
+ context 'dynamic 1m', vcr: { cassette_name: 'chart/dynamic/1m' } do
57
+ subject do
58
+ IEX::Resources::Chart.get('MSFT', :dynamic)
59
+ end
60
+ let(:first) { subject.first }
61
+ it 'retrieves a 1m chart from' do
62
+ expect(subject.count).to eq 21
63
+ expect(first).to be_a IEX::Resources::Chart::Default
64
+ expect(first.date).to eq Date.new(2018, 2, 26)
65
+ end
66
+ end
67
+ context 'invalid symbol', vcr: { cassette_name: 'chart/invalid' } do
68
+ subject do
69
+ IEX::Resources::Chart.get('INVALID')
70
+ end
71
+ it 'fails with SymbolNotFoundError' do
72
+ expect { subject }.to raise_error IEX::Errors::SymbolNotFoundError, 'Symbol INVALID Not Found'
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,44 @@
1
+ require 'spec_helper'
2
+
3
+ describe IEX::Resources::News do
4
+ context 'known symbol' do
5
+ context 'with defaults', vcr: { cassette_name: 'news/msft' } do
6
+ subject do
7
+ IEX::Resources::News.get('MSFT')
8
+ end
9
+ let(:news) { subject.first }
10
+ it 'retrieves news' do
11
+ expect(subject.size).to eq 10
12
+ expect(news.datetime).to eq DateTime.parse('2018-03-26T15:09:52-04:00')
13
+ expect(news.headline).to eq 'Smartsheet files for $100M IPO with growing losses'
14
+ expect(news.related).to eq(['APPSOFTW', 'IPO', 'MSFT', 'NASDAQ01', 'SOF31165134', 'Computing and Information Technology'])
15
+ end
16
+ end
17
+ context 'with range', vcr: { cassette_name: 'news/msft_7' } do
18
+ subject do
19
+ IEX::Resources::News.get('MSFT', 7)
20
+ end
21
+ it 'retrieves news' do
22
+ expect(subject.size).to eq 7
23
+ end
24
+ end
25
+ context 'market', vcr: { cassette_name: 'news/market' } do
26
+ subject do
27
+ IEX::Resources::News.get(:market, 1)
28
+ end
29
+ let(:news) { subject.first }
30
+ it 'retrieves market news' do
31
+ expect(subject.size).to eq 1
32
+ expect(news.url).to eq 'https://api.iextrading.com/1.0/stock/market/article/8517337832229674'
33
+ end
34
+ end
35
+ end
36
+ context 'invalid symbol', vcr: { cassette_name: 'news/invalid' } do
37
+ subject do
38
+ IEX::Resources::News.get('INVALID')
39
+ end
40
+ it 'fails with SymbolNotFoundError' do
41
+ expect { subject }.to raise_error IEX::Errors::SymbolNotFoundError, 'Symbol INVALID Not Found'
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe IEX::Resources::Price do
4
+ context 'known symbol', vcr: { cassette_name: 'price/msft' } do
5
+ subject do
6
+ IEX::Resources::Price.get('MSFT')
7
+ end
8
+ it 'retrieves a price' do
9
+ expect(subject).to eq 93.78
10
+ end
11
+ end
12
+ context 'invalid symbol', vcr: { cassette_name: 'price/invalid' } do
13
+ subject do
14
+ IEX::Resources::Price.get('INVALID')
15
+ end
16
+ it 'fails with SymbolNotFoundError' do
17
+ expect { subject }.to raise_error IEX::Errors::SymbolNotFoundError, 'Symbol INVALID Not Found'
18
+ end
19
+ end
20
+ end
@@ -9,21 +9,21 @@ describe IEX::Resources::Quote do
9
9
  expect(subject.symbol).to eq 'MSFT'
10
10
  expect(subject.primary_exchange).to eq 'Nasdaq Global Select'
11
11
  expect(subject.company_name).to eq 'Microsoft Corporation'
12
- expect(subject.market_cap).to eq 694_251_822_501
12
+ expect(subject.market_cap).to eq 749_419_084_443
13
13
  end
14
14
  it 'coerces numbers' do
15
- expect(subject.latest_price).to eq 90.165
16
- expect(subject.change).to eq 0.375
17
- expect(subject.week_52_high).to eq 97.24
18
- expect(subject.week_52_low).to eq 64.35
19
- expect(subject.change_percent).to eq 0.00418
20
- expect(subject.change_percent_s).to eq '+0.42%'
15
+ expect(subject.latest_price).to eq 97.54
16
+ expect(subject.change).to eq -0.06
17
+ expect(subject.week_52_high).to eq 98.69
18
+ expect(subject.week_52_low).to eq 67.5
19
+ expect(subject.change_percent).to eq -0.00061
20
+ expect(subject.change_percent_s).to eq '-0.06%'
21
21
  end
22
22
  it 'coerces times' do
23
- expect(subject.latest_update).to eq 1_521_818_145_007
24
- expect(subject.latest_update_t).to eq Time.at(1_521_818_145)
25
- expect(subject.iex_last_updated).to eq 1_521_818_145_007
26
- expect(subject.iex_last_updated_t).to eq Time.at(1_521_818_145)
23
+ expect(subject.latest_update).to eq 1_527_019_187_506
24
+ expect(subject.latest_update_t).to eq Time.at(1_527_019_187)
25
+ expect(subject.iex_last_updated).to eq 1_527_019_187_506
26
+ expect(subject.iex_last_updated_t).to eq Time.at(1_527_019_187)
27
27
  end
28
28
  end
29
29
  context 'invalid symbol', vcr: { cassette_name: 'quote/invalid' } do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iex-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Doubrovkine
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-26 00:00:00.000000000 Z
11
+ date: 2018-05-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -143,20 +143,44 @@ files:
143
143
  - iex-ruby-client.gemspec
144
144
  - lib/iex-ruby-client.rb
145
145
  - lib/iex/api.rb
146
+ - lib/iex/api/chart.rb
146
147
  - lib/iex/api/company.rb
148
+ - lib/iex/api/news.rb
149
+ - lib/iex/api/price.rb
147
150
  - lib/iex/api/quote.rb
148
151
  - lib/iex/errors.rb
149
152
  - lib/iex/errors/symbol_not_found_error.rb
150
153
  - lib/iex/resources.rb
154
+ - lib/iex/resources/chart.rb
155
+ - lib/iex/resources/chart/base.rb
156
+ - lib/iex/resources/chart/default.rb
157
+ - lib/iex/resources/chart/one_day.rb
151
158
  - lib/iex/resources/company.rb
159
+ - lib/iex/resources/news.rb
160
+ - lib/iex/resources/price.rb
152
161
  - lib/iex/resources/quote.rb
153
162
  - lib/iex/resources/resource.rb
154
163
  - lib/iex/version.rb
164
+ - spec/fixtures/iex/chart/1d.yml
165
+ - spec/fixtures/iex/chart/20180227.yml
166
+ - spec/fixtures/iex/chart/chartInterval.yml
167
+ - spec/fixtures/iex/chart/dynamic/1m.yml
168
+ - spec/fixtures/iex/chart/invalid.yml
169
+ - spec/fixtures/iex/chart/msft.yml
155
170
  - spec/fixtures/iex/company/invalid.yml
156
171
  - spec/fixtures/iex/company/msft.yml
172
+ - spec/fixtures/iex/news/invalid.yml
173
+ - spec/fixtures/iex/news/market.yml
174
+ - spec/fixtures/iex/news/msft.yml
175
+ - spec/fixtures/iex/news/msft_7.yml
176
+ - spec/fixtures/iex/price/invalid.yml
177
+ - spec/fixtures/iex/price/msft.yml
157
178
  - spec/fixtures/iex/quote/invalid.yml
158
179
  - spec/fixtures/iex/quote/msft.yml
180
+ - spec/iex/resources/chart_spec.rb
159
181
  - spec/iex/resources/company_spec.rb
182
+ - spec/iex/resources/news_spec.rb
183
+ - spec/iex/resources/price_spec.rb
160
184
  - spec/iex/resources/quote_spec.rb
161
185
  - spec/iex/version_spec.rb
162
186
  - spec/spec_helper.rb
@@ -186,11 +210,26 @@ signing_key:
186
210
  specification_version: 4
187
211
  summary: IEX Finance API Ruby client with support for retrieving stock quotes.
188
212
  test_files:
213
+ - spec/fixtures/iex/chart/1d.yml
214
+ - spec/fixtures/iex/chart/20180227.yml
215
+ - spec/fixtures/iex/chart/chartInterval.yml
216
+ - spec/fixtures/iex/chart/dynamic/1m.yml
217
+ - spec/fixtures/iex/chart/invalid.yml
218
+ - spec/fixtures/iex/chart/msft.yml
189
219
  - spec/fixtures/iex/company/invalid.yml
190
220
  - spec/fixtures/iex/company/msft.yml
221
+ - spec/fixtures/iex/news/invalid.yml
222
+ - spec/fixtures/iex/news/market.yml
223
+ - spec/fixtures/iex/news/msft.yml
224
+ - spec/fixtures/iex/news/msft_7.yml
225
+ - spec/fixtures/iex/price/invalid.yml
226
+ - spec/fixtures/iex/price/msft.yml
191
227
  - spec/fixtures/iex/quote/invalid.yml
192
228
  - spec/fixtures/iex/quote/msft.yml
229
+ - spec/iex/resources/chart_spec.rb
193
230
  - spec/iex/resources/company_spec.rb
231
+ - spec/iex/resources/news_spec.rb
232
+ - spec/iex/resources/price_spec.rb
194
233
  - spec/iex/resources/quote_spec.rb
195
234
  - spec/iex/version_spec.rb
196
235
  - spec/spec_helper.rb