iex-ruby-client 0.4.3 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,65 @@
1
+ require 'spec_helper'
2
+
3
+ describe IEX::Resources::Crypto do
4
+ context 'gets crypto information', vcr: { cassette_name: 'crypto' } do
5
+ subject do
6
+ IEX::Resources::Crypto.get
7
+ end
8
+ it 'retrieves real-time information' do
9
+ expect(subject.first.ask_price).to eq 6617.99
10
+ expect(subject.first.symbol).to eq 'BTCUSDT'
11
+ expect(subject.first.company_name).to eq 'Bitcoin USD'
12
+ expect(subject.first.primary_exchange).to eq 'crypto'
13
+ expect(subject.first.sector).to eq 'cryptocurrency'
14
+ expect(subject.first.calculation_price).to eq 'realtime'
15
+ expect(subject.first.open).to eq 6645.76
16
+ expect(subject.first.open_dollar).to eq '$6,645'
17
+ expect(subject.first.open_time).to eq 1_538_360_540_423
18
+ expect(subject.first.close).to eq 6595.49934953
19
+ expect(subject.first.close_dollar).to eq '$6,595'
20
+ expect(subject.first.close_time).to eq 1_538_446_940_423
21
+ expect(subject.first.high).to eq 6663.1
22
+ expect(subject.first.high_dollar).to eq '$6,663'
23
+ expect(subject.first.low).to eq 6510
24
+ expect(subject.first.low_dollar).to eq '$6,510'
25
+ expect(subject.first.latest_price).to eq 6618.7
26
+ expect(subject.first.latest_price_dollar).to eq '$6,618'
27
+ expect(subject.first.latest_source).to eq 'Real time price'
28
+ expect(subject.first.latest_time).to eq '10:22:20 PM'
29
+ expect(subject.first.latest_update).to eq 1_538_446_940_423
30
+ expect(subject.first.latest_volume).to eq 20_027.36393
31
+ expect(subject.first.latest_volume_dollar).to eq '$20,027'
32
+ expect(subject.first.iex_realtime_price).to eq nil
33
+ expect(subject.first.iex_realtime_size).to eq nil
34
+ expect(subject.first.iex_last_updated).to eq nil
35
+ expect(subject.first.delayed_price).to eq nil
36
+ expect(subject.first.delayed_price_time).to eq nil
37
+ expect(subject.first.extended_change).to eq nil
38
+ expect(subject.first.extended_change_percent).to eq nil
39
+ expect(subject.first.extended_price_time).to eq nil
40
+ expect(subject.first.previous_close).to eq 6645.76
41
+ expect(subject.first.previous_close_dollar).to eq '$6,645'
42
+ expect(subject.first.change).to eq -27.06
43
+ expect(subject.first.change_percent).to eq -0.00407
44
+ expect(subject.first.change_percent_s).to eq '-0.41%'
45
+ expect(subject.first.iex_market_percent).to eq nil
46
+ expect(subject.first.iex_volume).to eq nil
47
+ expect(subject.first.avg_total_volume).to eq nil
48
+ expect(subject.first.iex_bid_price).to eq nil
49
+ expect(subject.first.iex_bid_size).to eq nil
50
+ expect(subject.first.iex_ask_price).to eq nil
51
+ expect(subject.first.iex_ask_size).to eq nil
52
+ expect(subject.first.market_cap).to eq nil
53
+ expect(subject.first.pe_ratio).to eq nil
54
+ expect(subject.first.week52_high).to eq nil
55
+ expect(subject.first.week52_high_dollar).to eq nil
56
+ expect(subject.first.week52_low).to eq nil
57
+ expect(subject.first.week52_low_dollar).to eq nil
58
+ expect(subject.first.ytd_change).to eq nil
59
+ expect(subject.first.bid_price).to eq 6613.16
60
+ expect(subject.first.bid_size).to eq 2.166213
61
+ expect(subject.first.ask_price).to eq 6617.99
62
+ expect(subject.first.ask_size).to eq 0.264944
63
+ end
64
+ end
65
+ end
@@ -32,8 +32,7 @@ describe IEX::Resources::Dividends do
32
32
  end
33
33
  let(:dividends) { subject.first }
34
34
  it 'retrieves dividends when invalid range is passed' do
35
- expect(subject.size).to eq 2 # Falls into default 1 year
36
- expect(dividends.type).to eq 'Dividend income'
35
+ expect(subject.size).to eq 0
37
36
  end
38
37
  end
39
38
  context 'with range', vcr: { cassette_name: 'dividends/msft_1y' } do
@@ -41,7 +40,7 @@ describe IEX::Resources::Dividends do
41
40
  IEX::Resources::Dividends.get('MSFT', '1y')
42
41
  end
43
42
  it 'retrieves dividends with range of 1 year' do
44
- expect(subject.size).to eq 2
43
+ expect(subject.size).to eq 4
45
44
  end
46
45
  end
47
46
  end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe IEX::Resources::LargestTrades do
4
+ context 'retrieves the largest trade for a specific stock', vcr: { cassette_name: 'largest-trades/aapl' } do
5
+ subject do
6
+ IEX::Resources::LargestTrades.get('aapl')
7
+ end
8
+ it 'retrieve largest trades' do
9
+ expect(subject.first.size).to eq 9_000
10
+ expect(subject.first.price).to eq 217.76
11
+ expect(subject.first.time).to eq 1_539_699_300_665
12
+ expect(subject.first.time_label).to eq '10:15:00'
13
+ expect(subject.first.venue).to eq('None')
14
+ expect(subject.first.venue_name).to eq('Off Exchange')
15
+ end
16
+ end
17
+
18
+ context 'invalid symbol', vcr: { cassette_name: 'largest-trades/invalid' } do
19
+ subject do
20
+ IEX::Resources::LargestTrades.get('INVALID')
21
+ end
22
+ it 'fails with SymbolNotFoundError' do
23
+ expect { subject }.to raise_error IEX::Errors::SymbolNotFoundError, 'Symbol INVALID Not Found'
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,28 @@
1
+
2
+ require 'spec_helper'
3
+
4
+ describe IEX::Resources::Sectors do
5
+ context 'known symbol' do
6
+ context 'with defaults', vcr: { cassette_name: 'sectors/sectors-performance' } do
7
+ subject do
8
+ IEX::Resources::Sectors.get('market')
9
+ end
10
+ let(:Sectors) { subject.first }
11
+ it 'retrieves Sectors' do
12
+ expect(subject.size).to eq 11
13
+ expect(subject.first.type).to eq('sector')
14
+ expect(subject.first.name).to eq 'Energy'
15
+ expect(subject.first.performance).to eq 0.01386
16
+ expect(subject.first.last_updated).to eq 1_538_424_000_406
17
+ end
18
+ end
19
+ end
20
+ context 'invalid symbol', vcr: { cassette_name: 'sectors/invalid' } do
21
+ subject do
22
+ IEX::Resources::Sectors.get('INVALID')
23
+ end
24
+ it 'fails with SymbolNotFoundError' do
25
+ expect { subject }.to raise_error IEX::Errors::SymbolNotFoundError, 'Symbol INVALID Not Found'
26
+ end
27
+ end
28
+ end
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.4.3
4
+ version: 0.4.4
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-08-18 00:00:00.000000000 Z
11
+ date: 2018-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -56,16 +56,16 @@ dependencies:
56
56
  name: money_helper
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '1.0'
61
+ version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '1.0'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -161,14 +161,17 @@ files:
161
161
  - lib/iex/api.rb
162
162
  - lib/iex/api/chart.rb
163
163
  - lib/iex/api/company.rb
164
+ - lib/iex/api/crypto.rb
164
165
  - lib/iex/api/dividends.rb
165
166
  - lib/iex/api/earnings.rb
166
167
  - lib/iex/api/key_stats.rb
168
+ - lib/iex/api/largest_trades.rb
167
169
  - lib/iex/api/logo.rb
168
170
  - lib/iex/api/news.rb
169
171
  - lib/iex/api/ohlc.rb
170
172
  - lib/iex/api/price.rb
171
173
  - lib/iex/api/quote.rb
174
+ - lib/iex/api/sectors.rb
172
175
  - lib/iex/errors.rb
173
176
  - lib/iex/errors/client_error.rb
174
177
  - lib/iex/errors/symbol_not_found_error.rb
@@ -179,9 +182,11 @@ files:
179
182
  - lib/iex/resources/chart/default.rb
180
183
  - lib/iex/resources/chart/one_day.rb
181
184
  - lib/iex/resources/company.rb
185
+ - lib/iex/resources/crypto.rb
182
186
  - lib/iex/resources/dividends.rb
183
187
  - lib/iex/resources/earnings.rb
184
188
  - lib/iex/resources/key_stats.rb
189
+ - lib/iex/resources/largest_trades.rb
185
190
  - lib/iex/resources/logo.rb
186
191
  - lib/iex/resources/news.rb
187
192
  - lib/iex/resources/ohlc.rb
@@ -190,6 +195,7 @@ files:
190
195
  - lib/iex/resources/price.rb
191
196
  - lib/iex/resources/quote.rb
192
197
  - lib/iex/resources/resource.rb
198
+ - lib/iex/resources/sectors.rb
193
199
  - lib/iex/version.rb
194
200
  - spec/fixtures/iex/chart/1d.yml
195
201
  - spec/fixtures/iex/chart/20180227.yml
@@ -200,6 +206,7 @@ files:
200
206
  - spec/fixtures/iex/chart/msft.yml
201
207
  - spec/fixtures/iex/company/invalid.yml
202
208
  - spec/fixtures/iex/company/msft.yml
209
+ - spec/fixtures/iex/crypto.yml
203
210
  - spec/fixtures/iex/dividends/invalid.yml
204
211
  - spec/fixtures/iex/dividends/msft.yml
205
212
  - spec/fixtures/iex/dividends/msft_1y.yml
@@ -209,6 +216,8 @@ files:
209
216
  - spec/fixtures/iex/earnings/msft.yml
210
217
  - spec/fixtures/iex/key_stats/invalid.yml
211
218
  - spec/fixtures/iex/key_stats/msft.yml
219
+ - spec/fixtures/iex/largest-trades/aapl.yml
220
+ - spec/fixtures/iex/largest-trades/invalid.yml
212
221
  - spec/fixtures/iex/logo/msft.yml
213
222
  - spec/fixtures/iex/news/invalid.yml
214
223
  - spec/fixtures/iex/news/market.yml
@@ -220,17 +229,22 @@ files:
220
229
  - spec/fixtures/iex/price/msft.yml
221
230
  - spec/fixtures/iex/quote/invalid.yml
222
231
  - spec/fixtures/iex/quote/msft.yml
232
+ - spec/fixtures/iex/sectors/invalid.yml
233
+ - spec/fixtures/iex/sectors/sectors-performance.yml
223
234
  - spec/iex/resources/base_spec.rb
224
235
  - spec/iex/resources/chart_spec.rb
225
236
  - spec/iex/resources/company_spec.rb
237
+ - spec/iex/resources/crypto_spec.rb
226
238
  - spec/iex/resources/dividends_spec.rb
227
239
  - spec/iex/resources/earnings_spec.rb
228
240
  - spec/iex/resources/key_stats_spec.rb
241
+ - spec/iex/resources/largest_trades_spec.rb
229
242
  - spec/iex/resources/logo_spec.rb
230
243
  - spec/iex/resources/news_spec.rb
231
244
  - spec/iex/resources/ohlc_spec.rb
232
245
  - spec/iex/resources/price_spec.rb
233
246
  - spec/iex/resources/quote_spec.rb
247
+ - spec/iex/resources/sectors_spec.rb
234
248
  - spec/iex/version_spec.rb
235
249
  - spec/spec_helper.rb
236
250
  - spec/support/vcr.rb
@@ -268,6 +282,7 @@ test_files:
268
282
  - spec/fixtures/iex/chart/msft.yml
269
283
  - spec/fixtures/iex/company/invalid.yml
270
284
  - spec/fixtures/iex/company/msft.yml
285
+ - spec/fixtures/iex/crypto.yml
271
286
  - spec/fixtures/iex/dividends/invalid.yml
272
287
  - spec/fixtures/iex/dividends/msft.yml
273
288
  - spec/fixtures/iex/dividends/msft_1y.yml
@@ -277,6 +292,8 @@ test_files:
277
292
  - spec/fixtures/iex/earnings/msft.yml
278
293
  - spec/fixtures/iex/key_stats/invalid.yml
279
294
  - spec/fixtures/iex/key_stats/msft.yml
295
+ - spec/fixtures/iex/largest-trades/aapl.yml
296
+ - spec/fixtures/iex/largest-trades/invalid.yml
280
297
  - spec/fixtures/iex/logo/msft.yml
281
298
  - spec/fixtures/iex/news/invalid.yml
282
299
  - spec/fixtures/iex/news/market.yml
@@ -288,17 +305,22 @@ test_files:
288
305
  - spec/fixtures/iex/price/msft.yml
289
306
  - spec/fixtures/iex/quote/invalid.yml
290
307
  - spec/fixtures/iex/quote/msft.yml
308
+ - spec/fixtures/iex/sectors/invalid.yml
309
+ - spec/fixtures/iex/sectors/sectors-performance.yml
291
310
  - spec/iex/resources/base_spec.rb
292
311
  - spec/iex/resources/chart_spec.rb
293
312
  - spec/iex/resources/company_spec.rb
313
+ - spec/iex/resources/crypto_spec.rb
294
314
  - spec/iex/resources/dividends_spec.rb
295
315
  - spec/iex/resources/earnings_spec.rb
296
316
  - spec/iex/resources/key_stats_spec.rb
317
+ - spec/iex/resources/largest_trades_spec.rb
297
318
  - spec/iex/resources/logo_spec.rb
298
319
  - spec/iex/resources/news_spec.rb
299
320
  - spec/iex/resources/ohlc_spec.rb
300
321
  - spec/iex/resources/price_spec.rb
301
322
  - spec/iex/resources/quote_spec.rb
323
+ - spec/iex/resources/sectors_spec.rb
302
324
  - spec/iex/version_spec.rb
303
325
  - spec/spec_helper.rb
304
326
  - spec/support/vcr.rb