polygon-ruby-client 1.0.0 → 1.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 88a32dcdcf095e88b1f0263483dc1f3b1744525e97f243d2d8778224e27bee0d
4
- data.tar.gz: 61edd7dd2fbbde5a0e573ef4cb7e3d282859c4ca69254f2517abd20f9da5315b
3
+ metadata.gz: 413fdf33c1af25992cd26a6b4b50e2bb6640c23b456961d46b743595e29ee05a
4
+ data.tar.gz: 0fb5014338907d0dc27e78ffc0b66eb6dfe83b25eacac5c39d718e535d51101b
5
5
  SHA512:
6
- metadata.gz: a0316425b8e05f75850b5760cb407196acba7a328d3be5caa7ff6db4897b6769b7d27c8cb33019e2204438e4895d69b304f464df9f02a7a1cd492a07d3924173
7
- data.tar.gz: f6c8d4f96c22a68b87d3d4ed6b96c2faca782c28c6a16c0fbbd26c1cacffd348f492fc56255d266e742780051df01a26aa4f5b8514ad7645394d56ce9cc517f9
6
+ metadata.gz: c434debe4dfb9a1569fea69a22cbdd67fd7e1213876105bc6e8fc002b925d2093141bb11df62968d2390026188fd496d165282003234e78fc662e3bba54606f9
7
+ data.tar.gz: 9512a95cfa6c7cb5b1ee30c6fa3ab78ea73ce8e30bc89e8a6770be2d8f696076f2ff939d513b914554e433572e7315452e84e99d9da13b35c70158fdca4eef1d
data/README.md CHANGED
@@ -2,7 +2,25 @@
2
2
  Polygon.io API ruby client
3
3
 
4
4
  Example usage:
5
+
6
+ ### Client config
5
7
  ```ruby
6
8
  client = Polygon::Api::Client.new(api_key: 'xxx')
7
- client.trades('AAPL', '2020-08-14', {limit: 100})
9
+ ```
10
+
11
+ ### Trades
12
+ ```ruby
13
+ client.trades(symbol: 'AAPL', date: '2020-08-14', options: {limit: 3})
14
+ ```
15
+
16
+ ### All trades
17
+ ```ruby
18
+ client.all_trades(symbol: 'AAPL', date: '2020-08-14'){ |trade| puts trade }
19
+ client.all_trades(symbol: 'AAPL', date: '2020-08-14', options: {timestamp: 1597414943490858428, timestampLimit: 1597430760261736603}){ |trade| puts trade }
20
+ ```
21
+
22
+ ### Aggregates
23
+ ```ruby
24
+ client.aggregates(symbol: 'AAPL', multiplier: 2, timespan: 'minute', from: '1597941120000', to: '1597942920000')
25
+ client.aggregates(symbol: 'AAPL', multiplier: 3, timespan: 'minute', from: '2020-08-19', to: '2020-08-20')
8
26
  ```
@@ -3,9 +3,23 @@
3
3
  module Polygon
4
4
  module Api
5
5
  module Endpoints
6
- def trades(symbol, date, options = {})
6
+ def trades(symbol:, date:, options: {})
7
7
  get("/v2/ticks/stocks/trades/#{symbol}/#{date}", { apiKey: api_key }.merge(options))
8
8
  end
9
+
10
+ def all_trades(symbol:, date:, options: {}, &block)
11
+ last_trade = nil
12
+ loop do
13
+ trades = trades(symbol: symbol, date: date, options: options.merge(timestamp: last_trade&.dig(:t).to_i))[:results]
14
+ trades.each { |trade| block.call(trade) }
15
+ last_trade = trades.last
16
+ break if trades.size < (options[:limit] || 50_000)
17
+ end
18
+ end
19
+
20
+ def aggregates(symbol:, multiplier:, timespan:, from:, to:, options: {})
21
+ get("/v2/aggs/ticker/#{symbol}/range/#{multiplier}/#{timespan}/#{from}/#{to}", { apiKey: api_key }.merge(options))
22
+ end
9
23
  end
10
24
  end
11
25
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Polygon
4
- VERSION = '1.0.0'
4
+ VERSION = '1.0.3'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polygon-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Yussupov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-17 00:00:00.000000000 Z
11
+ date: 2020-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday