coingecko_ruby 0.1.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +31 -0
- data/.gitignore +11 -0
- data/.travis.yml +6 -0
- data/CHANGELOG.md +66 -0
- data/Gemfile +16 -0
- data/Gemfile.lock +37 -0
- data/README.md +7 -5
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/coingecko_ruby.gemspec +5 -5
- data/fixtures/vcr_cassettes/test_that_it_gets_a_coins_complete_current_data.yml +74 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_a_coins_tickers.yml +99 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_a_derivative_exchange.yml +71 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_a_specific_exchange_ticker_from_an_exchange.yml +145 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_btc_to_eth_exchange_rate.yml +120 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_btc_to_usd_exchange_rate.yml +122 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_complete_data_for_an_exchange.yml +72 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_daily_historical_prices_for_one_coin.yml +120 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_derivative_exchanges.yml +79 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_derivatives.yml +1732 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_derivatives_exchanges_ids_and_names.yml +95 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_event_countries.yml +76 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_event_types.yml +71 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_exchange_ids_supported_by_coingecko.yml +159 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_exchange_tickers_from_an_exchange.yml +78 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_finance_platforms.yml +95 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_finance_products.yml +100 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_global_crypto_data.yml +71 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_global_defi_data.yml +71 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_historical_price_for_one_coin_at_a_previous_date.yml +173 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_hourly_historical_prices_for_one_coin.yml +120 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_indexes.yml +127 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_indexes_by_market_id_and_coin_id.yml +66 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_indexes_by_market_id_and_index_id.yml +71 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_indexes_ids.yml +630 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_last_7_days_exchange_volume_from_an_exchange.yml +120 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_market_data_for_a_coin.yml +169 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_market_data_for_a_coin_in_myr.yml +120 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_market_data_for_multiple_coins_in_eth.yml +120 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_minutely_historical_prices_for_one_coin.yml +188 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_ohlc_data_for_one_coin_in_the_last_30_days_in_myr.yml +120 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_ohlc_data_for_one_coin_in_the_last_7_days.yml +120 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_price_for_multiple_coins.yml +71 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_price_for_multiple_coins_in_different_currencies.yml +71 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_price_for_one_coin.yml +122 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_price_for_one_coin_in_a_different_currency.yml +120 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_simple_price_for_one_coin.yml +73 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_status_updates.yml +79 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_status_updates_for_an_exchange.yml +76 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_the_list_of_asset_platforms.yml +80 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_the_list_of_categories.yml +114 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_the_list_of_categories_with_market_data.yml +100 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_the_list_of_supported_coins.yml +143 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_the_list_of_supported_exchanges.yml +79 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_the_list_supported_coins.yml +74 -0
- data/fixtures/vcr_cassettes/test_that_it_gets_trending_searches.yml +77 -0
- data/lib/coingecko_ruby.rb +1 -1
- data/lib/coingecko_ruby/client.rb +20 -0
- data/lib/coingecko_ruby/client/categories.rb +85 -0
- data/lib/coingecko_ruby/client/coins.rb +213 -10
- data/lib/coingecko_ruby/client/derivatives.rb +154 -0
- data/lib/coingecko_ruby/client/events.rb +84 -0
- data/lib/coingecko_ruby/client/exchanges.rb +193 -0
- data/lib/coingecko_ruby/client/finance.rb +100 -0
- data/lib/coingecko_ruby/client/indexes.rb +88 -0
- data/lib/coingecko_ruby/client/infos.rb +174 -0
- data/lib/coingecko_ruby/client/prices.rb +302 -10
- data/lib/coingecko_ruby/client/status.rb +7 -1
- data/lib/coingecko_ruby/connection.rb +4 -6
- data/lib/coingecko_ruby/version.rb +1 -1
- metadata +63 -2
@@ -1,8 +1,14 @@
|
|
1
1
|
module CoingeckoRuby
|
2
2
|
class Client
|
3
3
|
module Status
|
4
|
+
# Fetches CoinGecko's API status.
|
5
|
+
#
|
6
|
+
# @return [Hash] returns CoinGecko's API status.
|
7
|
+
#
|
8
|
+
# @example Fetch CoinGecko's API status.
|
9
|
+
# client.status
|
4
10
|
def status
|
5
|
-
get
|
11
|
+
get 'ping'
|
6
12
|
end
|
7
13
|
end
|
8
14
|
end
|
@@ -4,21 +4,19 @@ require 'json'
|
|
4
4
|
|
5
5
|
module CoingeckoRuby
|
6
6
|
module Connection
|
7
|
-
BASE_URL = 'https://api.coingecko.com/api/v3/'
|
7
|
+
BASE_URL = 'https://api.coingecko.com/api/v3/'.freeze
|
8
8
|
|
9
|
-
def get(endpoint,
|
9
|
+
def get(endpoint, params = {}, **options)
|
10
10
|
url = BASE_URL + endpoint
|
11
11
|
uri = URI(url)
|
12
|
-
|
13
|
-
uri = build_params(uri, options[:query])
|
14
|
-
end
|
12
|
+
uri = build_request(uri, params) unless params.empty?
|
15
13
|
response = Net::HTTP.get(uri)
|
16
14
|
JSON.parse(response)
|
17
15
|
end
|
18
16
|
|
19
17
|
private
|
20
18
|
|
21
|
-
def
|
19
|
+
def build_request(uri, params)
|
22
20
|
uri.query = URI.encode_www_form(params)
|
23
21
|
uri
|
24
22
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coingecko_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julian Foo Siang Sen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: An easy-to-use client/wrapper for CoinGecko's crypto API. Get prices,
|
14
14
|
exchanges, volume, and more without building your own API class.
|
@@ -18,13 +18,74 @@ executables: []
|
|
18
18
|
extensions: []
|
19
19
|
extra_rdoc_files: []
|
20
20
|
files:
|
21
|
+
- ".github/workflows/ruby.yml"
|
22
|
+
- ".gitignore"
|
23
|
+
- ".travis.yml"
|
24
|
+
- CHANGELOG.md
|
25
|
+
- Gemfile
|
26
|
+
- Gemfile.lock
|
21
27
|
- LICENSE.md
|
22
28
|
- README.md
|
23
29
|
- Rakefile
|
30
|
+
- bin/console
|
31
|
+
- bin/setup
|
24
32
|
- coingecko_ruby.gemspec
|
33
|
+
- fixtures/vcr_cassettes/test_that_it_gets_a_coins_complete_current_data.yml
|
34
|
+
- fixtures/vcr_cassettes/test_that_it_gets_a_coins_tickers.yml
|
35
|
+
- fixtures/vcr_cassettes/test_that_it_gets_a_derivative_exchange.yml
|
36
|
+
- fixtures/vcr_cassettes/test_that_it_gets_a_specific_exchange_ticker_from_an_exchange.yml
|
37
|
+
- fixtures/vcr_cassettes/test_that_it_gets_btc_to_eth_exchange_rate.yml
|
38
|
+
- fixtures/vcr_cassettes/test_that_it_gets_btc_to_usd_exchange_rate.yml
|
39
|
+
- fixtures/vcr_cassettes/test_that_it_gets_complete_data_for_an_exchange.yml
|
40
|
+
- fixtures/vcr_cassettes/test_that_it_gets_daily_historical_prices_for_one_coin.yml
|
41
|
+
- fixtures/vcr_cassettes/test_that_it_gets_derivative_exchanges.yml
|
42
|
+
- fixtures/vcr_cassettes/test_that_it_gets_derivatives.yml
|
43
|
+
- fixtures/vcr_cassettes/test_that_it_gets_derivatives_exchanges_ids_and_names.yml
|
44
|
+
- fixtures/vcr_cassettes/test_that_it_gets_event_countries.yml
|
45
|
+
- fixtures/vcr_cassettes/test_that_it_gets_event_types.yml
|
46
|
+
- fixtures/vcr_cassettes/test_that_it_gets_exchange_ids_supported_by_coingecko.yml
|
47
|
+
- fixtures/vcr_cassettes/test_that_it_gets_exchange_tickers_from_an_exchange.yml
|
48
|
+
- fixtures/vcr_cassettes/test_that_it_gets_finance_platforms.yml
|
49
|
+
- fixtures/vcr_cassettes/test_that_it_gets_finance_products.yml
|
50
|
+
- fixtures/vcr_cassettes/test_that_it_gets_global_crypto_data.yml
|
51
|
+
- fixtures/vcr_cassettes/test_that_it_gets_global_defi_data.yml
|
52
|
+
- fixtures/vcr_cassettes/test_that_it_gets_historical_price_for_one_coin_at_a_previous_date.yml
|
53
|
+
- fixtures/vcr_cassettes/test_that_it_gets_hourly_historical_prices_for_one_coin.yml
|
54
|
+
- fixtures/vcr_cassettes/test_that_it_gets_indexes.yml
|
55
|
+
- fixtures/vcr_cassettes/test_that_it_gets_indexes_by_market_id_and_coin_id.yml
|
56
|
+
- fixtures/vcr_cassettes/test_that_it_gets_indexes_by_market_id_and_index_id.yml
|
57
|
+
- fixtures/vcr_cassettes/test_that_it_gets_indexes_ids.yml
|
58
|
+
- fixtures/vcr_cassettes/test_that_it_gets_last_7_days_exchange_volume_from_an_exchange.yml
|
59
|
+
- fixtures/vcr_cassettes/test_that_it_gets_market_data_for_a_coin.yml
|
60
|
+
- fixtures/vcr_cassettes/test_that_it_gets_market_data_for_a_coin_in_myr.yml
|
61
|
+
- fixtures/vcr_cassettes/test_that_it_gets_market_data_for_multiple_coins_in_eth.yml
|
62
|
+
- fixtures/vcr_cassettes/test_that_it_gets_minutely_historical_prices_for_one_coin.yml
|
63
|
+
- fixtures/vcr_cassettes/test_that_it_gets_ohlc_data_for_one_coin_in_the_last_30_days_in_myr.yml
|
64
|
+
- fixtures/vcr_cassettes/test_that_it_gets_ohlc_data_for_one_coin_in_the_last_7_days.yml
|
65
|
+
- fixtures/vcr_cassettes/test_that_it_gets_price_for_multiple_coins.yml
|
66
|
+
- fixtures/vcr_cassettes/test_that_it_gets_price_for_multiple_coins_in_different_currencies.yml
|
67
|
+
- fixtures/vcr_cassettes/test_that_it_gets_price_for_one_coin.yml
|
68
|
+
- fixtures/vcr_cassettes/test_that_it_gets_price_for_one_coin_in_a_different_currency.yml
|
69
|
+
- fixtures/vcr_cassettes/test_that_it_gets_simple_price_for_one_coin.yml
|
70
|
+
- fixtures/vcr_cassettes/test_that_it_gets_status_updates.yml
|
71
|
+
- fixtures/vcr_cassettes/test_that_it_gets_status_updates_for_an_exchange.yml
|
72
|
+
- fixtures/vcr_cassettes/test_that_it_gets_the_list_of_asset_platforms.yml
|
73
|
+
- fixtures/vcr_cassettes/test_that_it_gets_the_list_of_categories.yml
|
74
|
+
- fixtures/vcr_cassettes/test_that_it_gets_the_list_of_categories_with_market_data.yml
|
75
|
+
- fixtures/vcr_cassettes/test_that_it_gets_the_list_of_supported_coins.yml
|
76
|
+
- fixtures/vcr_cassettes/test_that_it_gets_the_list_of_supported_exchanges.yml
|
77
|
+
- fixtures/vcr_cassettes/test_that_it_gets_the_list_supported_coins.yml
|
78
|
+
- fixtures/vcr_cassettes/test_that_it_gets_trending_searches.yml
|
25
79
|
- lib/coingecko_ruby.rb
|
26
80
|
- lib/coingecko_ruby/client.rb
|
81
|
+
- lib/coingecko_ruby/client/categories.rb
|
27
82
|
- lib/coingecko_ruby/client/coins.rb
|
83
|
+
- lib/coingecko_ruby/client/derivatives.rb
|
84
|
+
- lib/coingecko_ruby/client/events.rb
|
85
|
+
- lib/coingecko_ruby/client/exchanges.rb
|
86
|
+
- lib/coingecko_ruby/client/finance.rb
|
87
|
+
- lib/coingecko_ruby/client/indexes.rb
|
88
|
+
- lib/coingecko_ruby/client/infos.rb
|
28
89
|
- lib/coingecko_ruby/client/prices.rb
|
29
90
|
- lib/coingecko_ruby/client/status.rb
|
30
91
|
- lib/coingecko_ruby/connection.rb
|