coingecko_ruby 0.2.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +31 -0
  3. data/.gitignore +11 -0
  4. data/.travis.yml +6 -0
  5. data/CHANGELOG.md +44 -0
  6. data/Gemfile +16 -0
  7. data/Gemfile.lock +37 -0
  8. data/README.md +7 -5
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/coingecko_ruby.gemspec +5 -5
  12. data/fixtures/vcr_cassettes/test_that_it_gets_a_coins_complete_current_data.yml +74 -0
  13. data/fixtures/vcr_cassettes/test_that_it_gets_a_coins_tickers.yml +99 -0
  14. data/fixtures/vcr_cassettes/test_that_it_gets_a_derivative_exchange.yml +71 -0
  15. data/fixtures/vcr_cassettes/test_that_it_gets_a_specific_exchange_ticker_from_an_exchange.yml +145 -0
  16. data/fixtures/vcr_cassettes/test_that_it_gets_btc_to_eth_exchange_rate.yml +120 -0
  17. data/fixtures/vcr_cassettes/test_that_it_gets_btc_to_usd_exchange_rate.yml +122 -0
  18. data/fixtures/vcr_cassettes/test_that_it_gets_complete_data_for_an_exchange.yml +72 -0
  19. data/fixtures/vcr_cassettes/test_that_it_gets_daily_historical_prices_for_one_coin.yml +120 -0
  20. data/fixtures/vcr_cassettes/test_that_it_gets_derivative_exchanges.yml +79 -0
  21. data/fixtures/vcr_cassettes/test_that_it_gets_derivatives.yml +1732 -0
  22. data/fixtures/vcr_cassettes/test_that_it_gets_derivatives_exchanges_ids_and_names.yml +95 -0
  23. data/fixtures/vcr_cassettes/test_that_it_gets_event_countries.yml +76 -0
  24. data/fixtures/vcr_cassettes/test_that_it_gets_event_types.yml +71 -0
  25. data/fixtures/vcr_cassettes/test_that_it_gets_exchange_ids_supported_by_coingecko.yml +159 -0
  26. data/fixtures/vcr_cassettes/test_that_it_gets_exchange_tickers_from_an_exchange.yml +78 -0
  27. data/fixtures/vcr_cassettes/test_that_it_gets_finance_platforms.yml +95 -0
  28. data/fixtures/vcr_cassettes/test_that_it_gets_finance_products.yml +100 -0
  29. data/fixtures/vcr_cassettes/test_that_it_gets_global_crypto_data.yml +71 -0
  30. data/fixtures/vcr_cassettes/test_that_it_gets_global_defi_data.yml +71 -0
  31. data/fixtures/vcr_cassettes/test_that_it_gets_historical_price_for_one_coin_at_a_previous_date.yml +173 -0
  32. data/fixtures/vcr_cassettes/test_that_it_gets_hourly_historical_prices_for_one_coin.yml +120 -0
  33. data/fixtures/vcr_cassettes/test_that_it_gets_indexes.yml +127 -0
  34. data/fixtures/vcr_cassettes/test_that_it_gets_indexes_by_market_id_and_coin_id.yml +66 -0
  35. data/fixtures/vcr_cassettes/test_that_it_gets_indexes_by_market_id_and_index_id.yml +71 -0
  36. data/fixtures/vcr_cassettes/test_that_it_gets_indexes_ids.yml +630 -0
  37. data/fixtures/vcr_cassettes/test_that_it_gets_last_7_days_exchange_volume_from_an_exchange.yml +120 -0
  38. data/fixtures/vcr_cassettes/test_that_it_gets_market_data_for_a_coin.yml +169 -0
  39. data/fixtures/vcr_cassettes/test_that_it_gets_market_data_for_a_coin_in_myr.yml +120 -0
  40. data/fixtures/vcr_cassettes/test_that_it_gets_market_data_for_multiple_coins_in_eth.yml +120 -0
  41. data/fixtures/vcr_cassettes/test_that_it_gets_minutely_historical_prices_for_one_coin.yml +188 -0
  42. data/fixtures/vcr_cassettes/test_that_it_gets_ohlc_data_for_one_coin_in_the_last_30_days_in_myr.yml +120 -0
  43. data/fixtures/vcr_cassettes/test_that_it_gets_ohlc_data_for_one_coin_in_the_last_7_days.yml +120 -0
  44. data/fixtures/vcr_cassettes/test_that_it_gets_price_for_multiple_coins.yml +71 -0
  45. data/fixtures/vcr_cassettes/test_that_it_gets_price_for_multiple_coins_in_different_currencies.yml +71 -0
  46. data/fixtures/vcr_cassettes/test_that_it_gets_price_for_one_coin.yml +122 -0
  47. data/fixtures/vcr_cassettes/test_that_it_gets_price_for_one_coin_in_a_different_currency.yml +120 -0
  48. data/fixtures/vcr_cassettes/test_that_it_gets_simple_price_for_one_coin.yml +73 -0
  49. data/fixtures/vcr_cassettes/test_that_it_gets_status_updates.yml +79 -0
  50. data/fixtures/vcr_cassettes/test_that_it_gets_status_updates_for_an_exchange.yml +76 -0
  51. data/fixtures/vcr_cassettes/test_that_it_gets_the_list_of_asset_platforms.yml +80 -0
  52. data/fixtures/vcr_cassettes/test_that_it_gets_the_list_of_categories.yml +114 -0
  53. data/fixtures/vcr_cassettes/test_that_it_gets_the_list_of_categories_with_market_data.yml +100 -0
  54. data/fixtures/vcr_cassettes/test_that_it_gets_the_list_of_supported_coins.yml +143 -0
  55. data/fixtures/vcr_cassettes/test_that_it_gets_the_list_of_supported_exchanges.yml +79 -0
  56. data/fixtures/vcr_cassettes/test_that_it_gets_the_list_supported_coins.yml +74 -0
  57. data/fixtures/vcr_cassettes/test_that_it_gets_trending_searches.yml +77 -0
  58. data/lib/coingecko_ruby/client.rb +16 -0
  59. data/lib/coingecko_ruby/client/categories.rb +42 -363
  60. data/lib/coingecko_ruby/client/coins.rb +32 -31
  61. data/lib/coingecko_ruby/client/derivatives.rb +154 -0
  62. data/lib/coingecko_ruby/client/events.rb +84 -0
  63. data/lib/coingecko_ruby/client/exchanges.rb +51 -1458
  64. data/lib/coingecko_ruby/client/finance.rb +100 -0
  65. data/lib/coingecko_ruby/client/indexes.rb +88 -0
  66. data/lib/coingecko_ruby/client/infos.rb +174 -0
  67. data/lib/coingecko_ruby/client/prices.rb +85 -269
  68. data/lib/coingecko_ruby/client/status.rb +1 -1
  69. data/lib/coingecko_ruby/connection.rb +5 -9
  70. data/lib/coingecko_ruby/version.rb +1 -1
  71. metadata +60 -2
@@ -8,7 +8,7 @@ module CoingeckoRuby
8
8
  # @example Fetch CoinGecko's API status.
9
9
  # client.status
10
10
  def status
11
- get('ping')
11
+ get 'ping'
12
12
  end
13
13
  end
14
14
  end
@@ -4,24 +4,20 @@ 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, options = {})
9
+ def get(endpoint, params = {}, **options)
10
10
  url = BASE_URL + endpoint
11
11
  uri = URI(url)
12
- uri = build_query(uri, options) unless options.empty?
12
+ uri = build_request(uri, params) unless params.empty?
13
13
  response = Net::HTTP.get(uri)
14
14
  JSON.parse(response)
15
15
  end
16
16
 
17
17
  private
18
18
 
19
- def build_query(uri, query)
20
- if query[:options]
21
- options = query.delete(:options)
22
- query = query.merge(options)
23
- end
24
- uri.query = URI.encode_www_form(query)
19
+ def build_request(uri, params)
20
+ uri.query = URI.encode_www_form(params)
25
21
  uri
26
22
  end
27
23
  end
@@ -1,3 +1,3 @@
1
1
  module CoingeckoRuby
2
- VERSION = "0.2.0"
2
+ VERSION = "0.4.1"
3
3
  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.2.0
4
+ version: 0.4.1
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-05-16 00:00:00.000000000 Z
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,16 +18,74 @@ executables: []
18
18
  extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
+ - ".github/workflows/ruby.yml"
22
+ - ".gitignore"
23
+ - ".travis.yml"
21
24
  - CHANGELOG.md
25
+ - Gemfile
26
+ - Gemfile.lock
22
27
  - LICENSE.md
23
28
  - README.md
24
29
  - Rakefile
30
+ - bin/console
31
+ - bin/setup
25
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
26
79
  - lib/coingecko_ruby.rb
27
80
  - lib/coingecko_ruby/client.rb
28
81
  - lib/coingecko_ruby/client/categories.rb
29
82
  - lib/coingecko_ruby/client/coins.rb
83
+ - lib/coingecko_ruby/client/derivatives.rb
84
+ - lib/coingecko_ruby/client/events.rb
30
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
31
89
  - lib/coingecko_ruby/client/prices.rb
32
90
  - lib/coingecko_ruby/client/status.rb
33
91
  - lib/coingecko_ruby/connection.rb