cryptocompare 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +32 -0
- data/lib/cryptocompare.rb +1 -0
- data/lib/cryptocompare/coin_snapshot.rb +0 -1
- data/lib/cryptocompare/helpers/exchange_name_helper.rb +12 -0
- data/lib/cryptocompare/price.rb +6 -12
- data/lib/cryptocompare/price_historical.rb +0 -1
- data/lib/cryptocompare/top_pairs.rb +59 -0
- data/lib/cryptocompare/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ac9166226c481cf02e4943f7ff9d340fad3102d
|
4
|
+
data.tar.gz: 2bed9e8d7c43a11b55bef587e08d3b505911154d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ddf5f8016df804ec197f96604609b615e1773bb61f4c3334e33400ce6d32bc4f48ab6030a4b01ceabd788024628d94593ba935728eaa7df935de34dccab95333
|
7
|
+
data.tar.gz: 0bb7317bf99b124a0f0944e5365cfbbaf20526c195f94b7a8feb3451f4c6b9947909867721b622e06c691a6bd71b86582f4709d022f06d7bf80e6d100adc904f
|
data/README.md
CHANGED
@@ -172,6 +172,38 @@ Cryptocompare::CoinSnapshot.find('BTC', 'USD')
|
|
172
172
|
# }
|
173
173
|
```
|
174
174
|
|
175
|
+
### TopPairs
|
176
|
+
|
177
|
+
Get top pairs by volume for a currency (always uses aggregated data). The number of pairs you get is the minimum of the limit you set (default 5) and the total number of pairs available.
|
178
|
+
|
179
|
+
**Examples:**
|
180
|
+
|
181
|
+
Find top pairs by trading volume for a given currency.
|
182
|
+
|
183
|
+
```ruby
|
184
|
+
Cryptocompare::TopPairs.find('ETH')
|
185
|
+
# => {
|
186
|
+
# Response: "Success",
|
187
|
+
# Data: [
|
188
|
+
# {
|
189
|
+
# exchange: "CCCAGG",
|
190
|
+
# fromSymbol: "ETH",
|
191
|
+
# toSymbol: "USD",
|
192
|
+
# volume24h: 1310705.3005027298,
|
193
|
+
# volume24hTo: 288031723.3503975
|
194
|
+
# },
|
195
|
+
# {
|
196
|
+
# exchange: "CCCAGG",
|
197
|
+
# fromSymbol: "ETH",
|
198
|
+
# toSymbol: "BTC",
|
199
|
+
# volume24h: 978200.2198323006,
|
200
|
+
# volume24hTo: 77883.06190085363
|
201
|
+
# },
|
202
|
+
# ...
|
203
|
+
# ]
|
204
|
+
# }
|
205
|
+
```
|
206
|
+
|
175
207
|
## Supported Exchanges
|
176
208
|
|
177
209
|
* BTC38
|
data/lib/cryptocompare.rb
CHANGED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
# Helper module for exchange names.
|
4
|
+
module ExchangeNameHelper
|
5
|
+
EXCHANGES = YAML::load_file(File.join(__dir__, '../../../config/exchanges.yml'))
|
6
|
+
|
7
|
+
# Helper method to overcome case-sensitive exchange name enforced by the API.
|
8
|
+
# If no supported exchange mapping is found, it will try user's input.
|
9
|
+
def self.set_exchange(exchange)
|
10
|
+
EXCHANGES[exchange.upcase] || exchange
|
11
|
+
end
|
12
|
+
end
|
data/lib/cryptocompare/price.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
require 'faraday'
|
2
2
|
require 'json'
|
3
|
-
|
3
|
+
require_relative 'helpers/exchange_name_helper'
|
4
4
|
|
5
5
|
module Cryptocompare
|
6
|
-
EXCHANGES = YAML::load_file(File.join(__dir__, '../../config/exchanges.yml'))
|
7
|
-
|
8
6
|
module Price
|
7
|
+
extend ExchangeNameHelper
|
8
|
+
|
9
9
|
API_URL = 'https://min-api.cryptocompare.com/data/pricemulti'
|
10
10
|
|
11
11
|
# Finds the currency price(s) of a given currency symbol. Really fast,
|
@@ -62,17 +62,11 @@ module Cryptocompare
|
|
62
62
|
fsyms = Array(from_syms).join(',')
|
63
63
|
tsyms = Array(to_syms).join(',')
|
64
64
|
full_path = API_URL + "?fsyms=#{fsyms}&tsyms=#{tsyms}"
|
65
|
-
|
65
|
+
if (exchange = opts['e'])
|
66
|
+
full_path += "&e=#{ExchangeNameHelper.set_exchange(exchange)}"
|
67
|
+
end
|
66
68
|
api_resp = Faraday.get(full_path)
|
67
69
|
JSON.parse(api_resp.body)
|
68
70
|
end
|
69
|
-
|
70
|
-
private
|
71
|
-
|
72
|
-
# Helper method to overcome case-sensitive exchange name enforced by the API.
|
73
|
-
# If no supported exchange mapping is found, it will try user's input.
|
74
|
-
def self.set_exchange(exchange)
|
75
|
-
EXCHANGES[exchange.upcase] || exchange
|
76
|
-
end
|
77
71
|
end
|
78
72
|
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module Cryptocompare
|
5
|
+
module TopPairs
|
6
|
+
API_URL = 'https://min-api.cryptocompare.com/data/top/pairs'
|
7
|
+
|
8
|
+
# Get top pairs by volume for a currency (always uses aggregated data).
|
9
|
+
# The number of pairs you get is the minimum of the limit you set
|
10
|
+
# (default 5) and the total number of pairs available.
|
11
|
+
#
|
12
|
+
# ==== Parameters
|
13
|
+
#
|
14
|
+
# * +from_sym+ [String] - (required) currency symbol (ex: 'BTC', 'ETH', 'LTC', 'USD', 'EUR', 'CNY')
|
15
|
+
# * +opts+ [Hash] - (optional) options hash
|
16
|
+
#
|
17
|
+
# ==== Options
|
18
|
+
# * +limit+ [Integer] - (optional) limit. Default 5. Max 2000.
|
19
|
+
#
|
20
|
+
# ==== Returns
|
21
|
+
# [Hash] Returns a hash containing data as an array of hashes containing
|
22
|
+
# info about top-traded pairs.
|
23
|
+
#
|
24
|
+
# ==== Examples
|
25
|
+
#
|
26
|
+
# Find top pairs by trading volume for a given currency.
|
27
|
+
#
|
28
|
+
# Cryptocompare::TopPairs.find('ETH')
|
29
|
+
#
|
30
|
+
# Sample response
|
31
|
+
#
|
32
|
+
# {
|
33
|
+
# Response: "Success",
|
34
|
+
# Data: [
|
35
|
+
# {
|
36
|
+
# exchange: "CCCAGG",
|
37
|
+
# fromSymbol: "ETH",
|
38
|
+
# toSymbol: "USD",
|
39
|
+
# volume24h: 1310705.3005027298,
|
40
|
+
# volume24hTo: 288031723.3503975
|
41
|
+
# },
|
42
|
+
# {
|
43
|
+
# exchange: "CCCAGG",
|
44
|
+
# fromSymbol: "ETH",
|
45
|
+
# toSymbol: "BTC",
|
46
|
+
# volume24h: 978200.2198323006,
|
47
|
+
# volume24hTo: 77883.06190085363
|
48
|
+
# },
|
49
|
+
# ...
|
50
|
+
# ]
|
51
|
+
# }
|
52
|
+
def self.find(from_sym, opts = {})
|
53
|
+
full_path = API_URL + "?fsym=#{from_sym}"
|
54
|
+
full_path += "&limit=#{opts['limit']}" if opts['limit']
|
55
|
+
api_resp = Faraday.get(full_path)
|
56
|
+
JSON.parse(api_resp.body)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cryptocompare
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander David Pan
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07
|
11
|
+
date: 2017-08-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -128,8 +128,10 @@ files:
|
|
128
128
|
- cryptocompare.gemspec
|
129
129
|
- lib/cryptocompare.rb
|
130
130
|
- lib/cryptocompare/coin_snapshot.rb
|
131
|
+
- lib/cryptocompare/helpers/exchange_name_helper.rb
|
131
132
|
- lib/cryptocompare/price.rb
|
132
133
|
- lib/cryptocompare/price_historical.rb
|
134
|
+
- lib/cryptocompare/top_pairs.rb
|
133
135
|
- lib/cryptocompare/version.rb
|
134
136
|
homepage: https://github.com/alexanderdavidpan/cryptocompare
|
135
137
|
licenses:
|