coinmarketcap_free 0.1.2 → 0.1.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: 9d2f0b9d06cb2aa30965c8c67c23fe6694628466364a16b0cdad46ccf96dbd39
4
- data.tar.gz: caef79e1398c48c30e246ca336388ba5986f5f5ad0391f33e0825f48547f8bac
3
+ metadata.gz: 2f89d021dcc8f88f0730ed6c3a95de9fe66125138007e30f643e2637c3cc0829
4
+ data.tar.gz: 5402fc9c5ff6766a6ee126057de2e12d96519c9622325b3d939e978f5e8f5dcb
5
5
  SHA512:
6
- metadata.gz: 41ac065298e6cbe7daf6c57f64afb9eae284b1589447260f1a166854f5e7ce1201c2f514c9fa645c9095de3b7890223593d38c1a971a10fc601f82d2aacf6511
7
- data.tar.gz: 677eb71065cd99bc1d7cc9524e4f785684522272c98ab2c52f2de09b9e40b47e671f7af02dcee902b342a9ad77b5fb3842268476bd512a0fb44235fe2afd8539
6
+ metadata.gz: 47678471ba7e3a8362485be4f4781d0c0837c22b969e90f20bcb40bfe662080827742fe6790137102817b076f18bb3a45685ef6199ea829d5d2cb861960835e9
7
+ data.tar.gz: 3a46d496f02511b7b6536c8d4dda4b1cc4ca73ee485b39a8271ca5ce1436ff0404563633ab792028f5226c8226b3426074f8497a6fed249b66408f9a90fac586
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- coinmarketcap_free (0.1.1)
4
+ coinmarketcap_free (0.1.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -115,7 +115,7 @@ Result:
115
115
  If you want to sort in ascending, just write parameter:
116
116
 
117
117
  ``` Ruby
118
- list = CoinmarketcapFree::Cryptocurrencies.new(limit: 100, start: 1, sort_type:'asc')
118
+ list = CoinmarketcapFree::Cryptocurrencies.new(limit: 100, start: 1, sortType:'asc')
119
119
  ```
120
120
  or
121
121
  ``` Ruby
@@ -123,25 +123,38 @@ list = CoinmarketcapFree::Cryptocurrencies.new(limit: 100, start: 1)
123
123
  list.sort_type = 'asc'
124
124
  ```
125
125
 
126
- Also other parameters for Cryptocurrencies:
127
-
128
- | Name | Type | Description | Examples |
129
- |:--------------------------------|:---------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------|
130
- | ```limit:``` | Integer. | Optionally specify the number of results to return. Use this parameter and the "start" parameter to determine your own pagination size. ||
131
- | ```start:``` | Integer. | Optionally offset the start (1-based index) of the paginated list of items to return. ||
132
- | ```sort_by:``` | String. | Default: ```market_cap```. (```rank```, ```name```, ```symbol```, ```date_added```, ```market_cap```, ```market_cap_strict```, ```price```, ```circulating_supply```, ```total_supply```, ```max_supply```, ```num_market_pairs```, ```volume_24h```, ```percent_change_1h```, ```percent_change_24h```, ```percent_change_7d```, ```market_cap_by_total_supply_strict```, ```volume_7d```, ```volume_30d```). What field to sort the list of cryptocurrencies by. ||
133
- | ```sort_type:``` | String. | Default: ```desc```. (```asc``` or ```desc```). The direction in which to order cryptocurrencies against the specified sort. ||
134
- | ```convert:``` | String. | Default: ```USD,BTC,ETH``` . Select cryptocurrencies to exchange (```AUD```, ```BRL```, ```CAD```, ```CHF```, ```CLP```, ```CNY```, ```CZK```, ```DKK```, ```EUR```, ```GBP```, ```HKD```, ```HUF```, ```IDR```, ```ILS```, ```INR```, ```JPY```, ```KRW```, ```MXN```, ```MYR```, ```NOK```, ```NZD```, ```PHP```, ```PKR```, ```PLN```, ```RUB```, ```SEK```, ```SGD```, ```THB```, ```TRY```, ```TWD```, ```ZAR```). | ```USD``` or ```USD,BTC,ETH``` |
135
- | ```crypto_type:``` | String. | Default: ```all```. (```all```, ```coins```, ```tokens```). The type of cryptocurrency to include. ||
136
- | ```tag_type:``` | String. | Default: ```all```. (```all```, ```defi```, ```filesharing```). The tag of cryptocurrency to include. ||
137
- | ```audited:``` | Boolean. | Show audited (true) or not (false) ||
138
- | ```aux:``` | String. | Optionally specify a comma-separated list of supplemental data fields to return. Pass ```ath, atl, high24h, low24h, num_market_pairs, cmc_rank, date_added, max_supply, circulating_supply, total_supply, volume_7d, volume_30d, self_reported_circulating_supply, self_reported_market_cap``` to include all auxiliary fields. | ```ath``` or ```ath, atl, high24h, low24h``` |
139
- | ```tags:``` | string. | If you want to see cryptocurrencies that can be mined, just type ```mineable```. ||
140
- | ```volume_24h_range:``` | String. | Optionally specify a threshold 24 hour USD volume to filter results by. | ```0~100000000000000000``` |
141
- | ```percent_change_24h_range:``` | String. | Optionally specify a threshold 24 hour percent change to filter results by. | ```0~100``` or ```-10~100``` |
142
- | ```circulating_supply_range:``` | String. | Optionally specify a threshold circulating supply to filter results by. | ```0~100000000000000000``` |
143
- | ```price_range:``` | String. | Optionally specify a threshold USD price to filter results by. | ```0~100000000000000000``` |
144
- | ```market_cap_range:``` | String. | Optionally specify a threshold market cap to filter results by. | ```0~100000000000000000``` |
126
+ You can also adding sort by:
127
+
128
+ ``` Ruby
129
+ list = CoinmarketcapFree.coins(limit: 100, start: 1, sortType:'asc', sortBy: 'name')
130
+ ```
131
+
132
+ Convert cryptocurrency to:
133
+
134
+ ``` Ruby
135
+ list = CoinmarketcapFree.coins(limit: 100, start: 1, convert: 'USD,BTC,ETH')
136
+ ```
137
+
138
+
139
+ Parameters for Cryptocurrencies:
140
+
141
+ | Name | Type | Description | Examples |
142
+ |:------------------------------|:---------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------|
143
+ | ```limit:``` | Integer. | Optionally specify the number of results to return. Use this parameter and the "start" parameter to determine your own pagination size. ||
144
+ | ```start:``` | Integer. | Optionally offset the start (1-based index) of the paginated list of items to return. ||
145
+ | ```sortBy:``` | String. | Default: ```market_cap```. (```rank```, ```name```, ```symbol```, ```date_added```, ```market_cap```, ```market_cap_strict```, ```price```, ```circulating_supply```, ```total_supply```, ```max_supply```, ```num_market_pairs```, ```volume_24h```, ```percent_change_1h```, ```percent_change_24h```, ```percent_change_7d```, ```market_cap_by_total_supply_strict```, ```volume_7d```, ```volume_30d```). What field to sort the list of cryptocurrencies by. ||
146
+ | ```sortType:``` | String. | Default: ```desc```. (```asc``` or ```desc```). The direction in which to order cryptocurrencies against the specified sort. ||
147
+ | ```convert:``` | String. | Default: ```USD,BTC,ETH``` . Select cryptocurrencies to exchange (```AUD```, ```BRL```, ```CAD```, ```CHF```, ```CLP```, ```CNY```, ```CZK```, ```DKK```, ```EUR```, ```GBP```, ```HKD```, ```HUF```, ```IDR```, ```ILS```, ```INR```, ```JPY```, ```KRW```, ```MXN```, ```MYR```, ```NOK```, ```NZD```, ```PHP```, ```PKR```, ```PLN```, ```RUB```, ```SEK```, ```SGD```, ```THB```, ```TRY```, ```TWD```, ```ZAR```). | ```USD``` or ```USD,BTC,ETH``` |
148
+ | ```cryptoType:``` | String. | Default: ```all```. (```all```, ```coins```, ```tokens```). The type of cryptocurrency to include. ||
149
+ | ```tagType:``` | String. | Default: ```all```. (```all```, ```defi```, ```filesharing```). The tag of cryptocurrency to include. ||
150
+ | ```audited:``` | Boolean. | Show audited (true) or not (false) ||
151
+ | ```aux:``` | String. | Optionally specify a comma-separated list of supplemental data fields to return. Pass ```ath, atl, high24h, low24h, num_market_pairs, cmc_rank, date_added, max_supply, circulating_supply, total_supply, volume_7d, volume_30d, self_reported_circulating_supply, self_reported_market_cap``` to include all auxiliary fields. | ```ath``` or ```ath, atl, high24h, low24h``` |
152
+ | ```tags:``` | string. | If you want to see cryptocurrencies that can be mined, just type ```mineable```. ||
153
+ | ```volume24hRange:``` | String. | Optionally specify a threshold 24 hour USD volume to filter results by. | ```0~100000000000000000``` |
154
+ | ```percentChange24hRange:``` | String. | Optionally specify a threshold 24 hour percent change to filter results by. | ```0~100``` or ```-10~100``` |
155
+ | ```circulatingSupplyRange:``` | String. | Optionally specify a threshold circulating supply to filter results by. | ```0~100000000000000000``` |
156
+ | ```priceRange:``` | String. | Optionally specify a threshold USD price to filter results by. | ```0~100000000000000000``` |
157
+ | ```marketCapRange:``` | String. | Optionally specify a threshold market cap to filter results by. | ```0~100000000000000000``` |
145
158
 
146
159
  ### Returns an interval of historic market quotes:
147
160
 
@@ -6,6 +6,8 @@ module CoinmarketcapFree
6
6
  class BASE
7
7
  protected
8
8
 
9
+ # @param [URI] url
10
+ # @return [String]
9
11
  def request_to_read_data(url)
10
12
  response = Net::HTTP.get_response(url, Hash('Accept': '*/*'))
11
13
 
@@ -14,6 +16,7 @@ module CoinmarketcapFree
14
16
  response.read_body
15
17
  end
16
18
 
19
+ # @return [String]
17
20
  def generate_uri_for_data
18
21
  raise NotImplementedError
19
22
  end
@@ -22,7 +25,6 @@ module CoinmarketcapFree
22
25
 
23
26
  attr_reader :get_data
24
27
 
25
- # Refresh to get data
26
28
  # @return [false, true] true data update is good If false is bad request, wrong parameter values, or the API has been updated
27
29
  def update
28
30
  begin
@@ -46,6 +46,7 @@ module CoinmarketcapFree
46
46
 
47
47
  attr_accessor :id,
48
48
  :range_time
49
+
49
50
  # Returns the CoinmarketcapFree::Coin.
50
51
  # @param id [Integer] Cryptocurrency identifier from coinmarketcap. For example, Bitcoin has the number 1
51
52
  # @param range_time [String] Range time. For example, '1D', '7D', '1M', '3M', '1Y', 'YTD', 'ALL' or custom range '1668981600~1671659999'
@@ -53,6 +54,71 @@ module CoinmarketcapFree
53
54
  @id = id
54
55
  @range_time = range_time
55
56
  end
57
+ class << self
58
+ @@coin = Coin.new()
59
+
60
+ # Returns an interval of historic for the day
61
+ #
62
+ # @param [Integer] id Cryptocurrency identifier
63
+ def history_day(id)
64
+ history(id, '1D')
65
+ end
66
+ # Returns an interval of historic for the seven days
67
+ #
68
+ # @param [Integer] id Cryptocurrency identifier
69
+ def history_seven_days(id)
70
+ history(id, '7D')
71
+ end
72
+ # Returns an interval of historic for the one month
73
+ #
74
+ # @param [Integer] id Cryptocurrency identifier
75
+ def history_one_month(id)
76
+ history(id, '1M')
77
+ end
78
+ # Returns an interval of historic for the three months
79
+ #
80
+ # @param [Integer] id Cryptocurrency identifier
81
+ def history_three_months(id)
82
+ history(id, '3M')
83
+ end
84
+ # Returns an interval of historic for the one year
85
+ #
86
+ # @param [Integer] id Cryptocurrency identifier
87
+ def history_one_year(id)
88
+ history(id, '1Y')
89
+ end
90
+ # Returns an interval of historic for the current year
91
+ #
92
+ # @param [Integer] id Cryptocurrency identifier
93
+ def history_current_year(id)
94
+ history(id, 'YTD')
95
+ end
96
+ # Returns an interval of historic for the current year
97
+ #
98
+ # @param [Integer] id Cryptocurrency identifier
99
+ def history_all(id)
100
+ history(id, 'ALL')
101
+ end
102
+
103
+ # Returns an interval of historic market quotes for any cryptocurrency based on time and interval parameters.
104
+ #
105
+ # Unix Epoch. (SECONDS SINCE JAN 01 1970 (UTC))
106
+ #
107
+ # CoinmarketcapFree::Coin.history_custom_time(1, 1675085165, 1675105165)
108
+ #
109
+ # @param [Integer] id Cryptocurrency identifier
110
+ # @param [Integer] from Enter a Timestamp
111
+ # @param [Integer] to Enter a Timestamp
112
+ def history_custom_time(id, from, to)
113
+ history(id, "#{from}~#{to}")
114
+ end
115
+
116
+ private def history(id, range_time)
117
+ @@coin.id = id
118
+ @@coin.range_time = range_time
119
+ @@coin.update ? @@coin.get_data : nil
120
+ end
121
+ end
56
122
 
57
123
  private
58
124
  def generate_uri_for_data
@@ -101,12 +101,12 @@ module CoinmarketcapFree
101
101
  #
102
102
  # If you want to sort in ascending, just write parameter:
103
103
  #
104
- # list = CoinmarketcapFree::Cryptocurrencies.new(limit: 100, start: 1, sort_type:'asc')
104
+ # list = CoinmarketcapFree::Cryptocurrencies.new(limit: 100, start: 1, sortType:'asc')
105
105
  #
106
106
  # or
107
107
  #
108
108
  # list = CoinmarketcapFree::Cryptocurrencies.new(limit: 100, start: 1)
109
- # list.sort_type = 'asc'
109
+ # list.sortType = 'asc'
110
110
  #
111
111
  # Also see other parameters.
112
112
  class Cryptocurrencies < BASE
@@ -116,63 +116,55 @@ module CoinmarketcapFree
116
116
 
117
117
  # Returns the CoinmarketcapFree::Cryptocurrencies that's dictated by the options hash. The primary options are:
118
118
  #
119
- # * <tt> start: </tt> - [Integer] Default: 1. Optionally offset the start (1-based index) of the paginated list of items to return.
120
- # * <tt> limit: </tt> - [Integer] Default: 100. Optionally specify the number of results to return.
121
- # Use this parameter and the "start" parameter to determine your own pagination size.
122
- # * <tt> sort_by: </tt> - [String] Default: "market_cap". ("rank", "name", "symbol", "date_added", "market_cap", "market_cap_strict", "price", "circulating_supply", "total_supply", "max_supply", "num_market_pairs", "volume_24h", "percent_change_1h", "percent_change_24h", "percent_change_7d", "market_cap_by_total_supply_strict", "volume_7d", "volume_30d").
123
- # What field to sort the list of cryptocurrencies by.
124
- # * <tt> sort_type: </tt> - [String] Default: "desc". ("asc" or "desc"). The direction in which to order cryptocurrencies against the specified sort.
125
- # * <tt> convert: </tt> - [String] Default: 'USD'. Default: 'USD'. Select cryptocurrencies to exchange
126
- # ("AUD", "BRL", "CAD", "CHF", "CLP", "CNY", "CZK", "DKK", "EUR", "GBP", "HKD", "HUF", "IDR", "ILS", "INR", "JPY", "KRW", "MXN", "MYR", "NOK", "NZD", "PHP", "PKR", "PLN", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "ZAR").
127
- # For example, many 'USD,BTC,ETH' to convert or only one 'USD'
128
- # * <tt> crypto_typ: </tt> - [String] Default: "all". ("all", "coins", "tokens"). The type of cryptocurrency to include.
129
- # * <tt> tag_type: </tt> - [String] Default: "all". ("all", "defi", "filesharing"). The tag of cryptocurrency to include.
130
- # * <tt> audited: </tt> - [FalseClass, TrueClass] Show audited (true) or not (false)
131
- # * <tt> aux: </tt> - [String] Optionally specify a comma-separated list of supplemental data fields to return.
132
- # Pass 'ath, atl, high24h, low24h, num_market_pairs, cmc_rank, date_added, max_supply, circulating_supply, total_supply, volume_7d, volume_30d, self_reported_circulating_supply, self_reported_market_cap' to include all auxiliary fields.
133
- # * <tt> tags: </tt> - [String] If you want to see cryptocurrencies that can be mined, just type 'mineable'.
134
- # * <tt> volume_24h_range: </tt> - [String] Optionally specify a threshold 24 hour USD volume to filter results by.
135
- # For example, For example, '0~100000000000000000'
136
- # * <tt> percent_change_24h_range: </tt> - [String] Optionally specify a threshold 24 hour percent change to filter results by.
137
- # For example, '0~100' or '-10~100'
138
- # * <tt> circulating_supply_range: </tt> - [String] Optionally specify a threshold circulating supply to filter results by. For example, '0~100000000000000000'
139
- # * <tt> price_range: </tt> - [String] Optionally specify a threshold USD price to filter results by. For example, '0~100000000000000000'
140
- # * <tt> market_cap_range: </tt> - [String] Optionally specify a threshold market cap to filter results by. For example, '0~100000000000000000'
141
- #
142
- # @param [Hash] options
143
- def initialize(**options)
119
+ # @param [Hash] options the parameters for creating a request to the server
120
+ # @option options [Integer] :start (1) Optionally offset the start (1-based index) of the paginated list of items to return.
121
+ # @option options [Integer] :limit (100) Optionally specify the number of results to return. Use this parameter and the 'start' parameter to determine your own pagination size.
122
+ # @option options [String] :sortBy ('market_cap') What field to sort the list of cryptocurrencies by. ('rank', 'name', 'symbol', 'date_added', 'market_cap', 'market_cap_strict', 'price', 'circulating_supply', 'total_supply', 'max_supply', 'num_market_pairs', 'volume_24h', 'percent_change_1h', 'percent_change_24h', 'percent_change_7d', 'market_cap_by_total_supply_strict', 'volume_7d', 'volume_30d")
123
+ # @option options [String] :sortType ('desc') The direction in which to order cryptocurrencies against the specified sort. ('asc', 'desc')
124
+ # @option options [String] :convert ('USD') Select cryptocurrencies to exchange ('AUD', 'BRL', 'CAD', 'CHF', 'CLP', 'CNY', 'CZK', 'DKK', 'EUR', 'GBP', 'HKD', 'HUF', 'IDR', 'ILS', 'INR', 'JPY', 'KRW', 'MXN', 'MYR', 'NOK', 'NZD', 'PHP', 'PKR', 'PLN', 'RUB', 'SEK', 'SGD', 'THB', 'TRY', 'TWD', 'ZAR'). For example, many 'USD,BTC,ETH' to convert or only one 'USD'
125
+ # @option options [String] :cryptoType ('all') The type of cryptocurrency to include. ('all', 'coins', 'tokens')
126
+ # @option options [String] :tagType ('all') The tag of cryptocurrency to include. ('all', 'defi', 'filesharing')
127
+ # @option options [false, true] :audited Show audited 'true' or not 'false'
128
+ # @option options [String] :aux Optionally specify a comma-separated list of supplemental data fields to return. Pass 'ath, atl, high24h, low24h, num_market_pairs, cmc_rank, date_added, max_supply, circulating_supply, total_supply, volume_7d, volume_30d, self_reported_circulating_supply, self_reported_market_cap' to include all auxiliary fields.
129
+ # @option options [String] :tags If you want to see cryptocurrencies that can be mined, just type 'mineable'.
130
+ # @option options [String] :volume24hRange Optionally specify a threshold 24 hour USD volume to filter results by. For example, '0~100000000000000000'
131
+ # @option options [String] :percentChange24hRange Optionally specify a threshold 24 hour percent change to filter results by. For example, '0~100' or '-10~100'
132
+ # @option options [String] :circulatingSupplyRange Optionally specify a threshold circulating supply to filter results by. For example, '0~100000000000000000'
133
+ # @option options [String] :priceRange Optionally specify a threshold USD price to filter results by. For example, '0~100000000000000000'
134
+ # @option options [String] :marketCapRange Optionally specify a threshold market cap to filter results by. For example, '0~100000000000000000'
135
+ def initialize(options = {})
144
136
  @limit = options[:limit].nil? ? 100 : options[:limit] # Integer
145
137
  @start = options[:start].nil? ? 1 : options[:start] # Integer
146
- @sort_by = options[:sort_by] # String
147
- @sort_type = options[:sort_type] # String
138
+ @sortBy = options[:sortBy] # String
139
+ @sortType = options[:sortType] # String
148
140
  @convert = options[:convert] # String
149
- @crypto_type = options[:crypto_type] # String
150
- @tag_type = options[:tag_type] # String
141
+ @cryptoType = options[:cryptoType] # String
142
+ @tagType = options[:tagType] # String
151
143
  @audited = options[:audited] # Boolean
152
144
  @aux = options[:aux] # String
153
145
  @tags = options[:tags] # String
154
- @volume_24h_range = options[:volume_24h_range] # String
155
- @percent_change_24h_range = options[:percent_change_24h_range] # String
156
- @circulating_supply_range = options[:circulating_supply_range] # String
157
- @price_range = options[:price_range] # String
158
- @market_cap_range = options[:market_cap_range] # String
146
+ @volume24hRange = options[:volume24hRange] # String
147
+ @percentChange24hRange = options[:percentChange24hRange] # String
148
+ @circulatingSupplyRange = options[:circulatingSupplyRange] # String
149
+ @priceRange = options[:priceRange] # String
150
+ @marketCapRange = options[:marketCapRange] # String
159
151
  end
160
152
 
161
153
  attr_accessor :limit,
162
154
  :start,
163
- :sort_by,
164
- :sort_type,
155
+ :sortBy,
156
+ :sortType,
165
157
  :convert,
166
- :crypto_type,
167
- :tag_type,
158
+ :cryptoType,
159
+ :tagType,
168
160
  :audited,
169
161
  :aux,
170
162
  :tags,
171
- :volume_24h_range,
172
- :percent_change_24h_range,
173
- :circulating_supply_range,
174
- :price_range,
175
- :market_cap_range
163
+ :volume24hRange,
164
+ :percentChange24hRange,
165
+ :circulatingSupplyRange,
166
+ :priceRange,
167
+ :marketCapRange
176
168
 
177
169
  private
178
170
  def generate_uri_for_data
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CoinmarketcapFree
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.3"
5
5
  end
@@ -153,36 +153,39 @@ module CoinmarketcapFree
153
153
  #
154
154
  # If you want to sort in ascending, just write parameter:
155
155
  #
156
- # list = CoinmarketcapFree.coins(limit: 100, start: 1, sort_type:'asc')
157
- #
158
- # Also see other parameters:
159
- #
160
- # * <tt> start: </tt> - [Integer] Default: 1. Optionally offset the start (1-based index) of the paginated list of items to return.
161
- # * <tt> limit: </tt> - [Integer] Default: 100. Optionally specify the number of results to return.
162
- # Use this parameter and the "start" parameter to determine your own pagination size.
163
- # * <tt> sort_by: </tt> - [String] Default: "market_cap". ("rank", "name", "symbol", "date_added", "market_cap", "market_cap_strict", "price", "circulating_supply", "total_supply", "max_supply", "num_market_pairs", "volume_24h", "percent_change_1h", "percent_change_24h", "percent_change_7d", "market_cap_by_total_supply_strict", "volume_7d", "volume_30d").
164
- # What field to sort the list of cryptocurrencies by.
165
- # * <tt> sort_type: </tt> - [String] Default: "desc". ("asc" or "desc"). The direction in which to order cryptocurrencies against the specified sort.
166
- # * <tt> convert: </tt> - [String] Default: 'USD'. Default: 'USD'. Select cryptocurrencies to exchange
167
- # ("AUD", "BRL", "CAD", "CHF", "CLP", "CNY", "CZK", "DKK", "EUR", "GBP", "HKD", "HUF", "IDR", "ILS", "INR", "JPY", "KRW", "MXN", "MYR", "NOK", "NZD", "PHP", "PKR", "PLN", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "ZAR").
168
- # For example, many 'USD,BTC,ETH' to convert or only one 'USD'
169
- # * <tt> crypto_typ: </tt> - [String] Default: "all". ("all", "coins", "tokens"). The type of cryptocurrency to include.
170
- # * <tt> tag_type: </tt> - [String] Default: "all". ("all", "defi", "filesharing"). The tag of cryptocurrency to include.
171
- # * <tt> audited: </tt> - [FalseClass, TrueClass] Show audited (true) or not (false)
172
- # * <tt> aux: </tt> - [String] Optionally specify a comma-separated list of supplemental data fields to return.
173
- # Pass 'ath, atl, high24h, low24h, num_market_pairs, cmc_rank, date_added, max_supply, circulating_supply, total_supply, volume_7d, volume_30d, self_reported_circulating_supply, self_reported_market_cap' to include all auxiliary fields.
174
- # * <tt> tags: </tt> - [String] If you want to see cryptocurrencies that can be mined, just type 'mineable'.
175
- # * <tt> volume_24h_range: </tt> - [String] Optionally specify a threshold 24 hour USD volume to filter results by.
176
- # For example, For example, '0~100000000000000000'
177
- # * <tt> percent_change_24h_range: </tt> - [String] Optionally specify a threshold 24 hour percent change to filter results by.
178
- # For example, '0~100' or '-10~100'
179
- # * <tt> circulating_supply_range: </tt> - [String] Optionally specify a threshold circulating supply to filter results by. For example, '0~100000000000000000'
180
- # * <tt> price_range: </tt> - [String] Optionally specify a threshold USD price to filter results by. For example, '0~100000000000000000'
181
- # * <tt> market_cap_range: </tt> - [String] Optionally specify a threshold market cap to filter results by. For example, '0~100000000000000000'
182
- #
183
- # @param [Hash] options
156
+ # list = CoinmarketcapFree.coins(limit: 100, start: 1, sortType:'asc')
157
+ #
158
+ # or
159
+ #
160
+ # list = CoinmarketcapFree.coins(limit: 100, start: 1, sortType:'desc')
161
+ #
162
+ # You can also adding sort by:
163
+ #
164
+ # list = CoinmarketcapFree.coins(limit: 100, start: 1, sortType:'asc', sortBy: 'name')
165
+ #
166
+ # Convert cryptocurrency to::
167
+ #
168
+ # list = CoinmarketcapFree.coins(limit: 100, start: 1, convert: 'USD,BTC,ETH')
169
+ #
170
+ #
171
+ # @param [Hash] options the parameters for creating a request to the server
184
172
  # @return [String, nil]
185
- def coins(**options)
173
+ # @option options [Integer] :start (1) Optionally offset the start (1-based index) of the paginated list of items to return.
174
+ # @option options [Integer] :limit (100) Optionally specify the number of results to return. Use this parameter and the 'start' parameter to determine your own pagination size.
175
+ # @option options [String] :sortBy ('market_cap') What field to sort the list of cryptocurrencies by. ('rank', 'name', 'symbol', 'date_added', 'market_cap', 'market_cap_strict', 'price', 'circulating_supply', 'total_supply', 'max_supply', 'num_market_pairs', 'volume_24h', 'percent_change_1h', 'percent_change_24h', 'percent_change_7d', 'market_cap_by_total_supply_strict', 'volume_7d', 'volume_30d")
176
+ # @option options [String] :sortType ('desc') The direction in which to order cryptocurrencies against the specified sort. ('asc', 'desc')
177
+ # @option options [String] :convert ('USD') Select cryptocurrencies to exchange ('AUD', 'BRL', 'CAD', 'CHF', 'CLP', 'CNY', 'CZK', 'DKK', 'EUR', 'GBP', 'HKD', 'HUF', 'IDR', 'ILS', 'INR', 'JPY', 'KRW', 'MXN', 'MYR', 'NOK', 'NZD', 'PHP', 'PKR', 'PLN', 'RUB', 'SEK', 'SGD', 'THB', 'TRY', 'TWD', 'ZAR'). For example, many 'USD,BTC,ETH' to convert or only one 'USD'
178
+ # @option options [String] :cryptoType ('all') The type of cryptocurrency to include. ('all', 'coins', 'tokens')
179
+ # @option options [String] :tagType ('all') The tag of cryptocurrency to include. ('all', 'defi', 'filesharing')
180
+ # @option options [false, true] :audited Show audited 'true' or not 'false'
181
+ # @option options [String] :aux Optionally specify a comma-separated list of supplemental data fields to return. Pass 'ath, atl, high24h, low24h, num_market_pairs, cmc_rank, date_added, max_supply, circulating_supply, total_supply, volume_7d, volume_30d, self_reported_circulating_supply, self_reported_market_cap' to include all auxiliary fields.
182
+ # @option options [String] :tags If you want to see cryptocurrencies that can be mined, just type 'mineable'.
183
+ # @option options [String] :volume24hRange Optionally specify a threshold 24 hour USD volume to filter results by. For example, '0~100000000000000000'
184
+ # @option options [String] :percentChange24hRange Optionally specify a threshold 24 hour percent change to filter results by. For example, '0~100' or '-10~100'
185
+ # @option options [String] :circulatingSupplyRange Optionally specify a threshold circulating supply to filter results by. For example, '0~100000000000000000'
186
+ # @option options [String] :priceRange Optionally specify a threshold USD price to filter results by. For example, '0~100000000000000000'
187
+ # @option options [String] :marketCapRange Optionally specify a threshold market cap to filter results by. For example, '0~100000000000000000'
188
+ def coins(options = {})
186
189
  @@cryptocurrencies.instance_variables.each do |var_name|
187
190
  value = options[var_name.to_s.delete('@').to_sym]
188
191
  @@cryptocurrencies.instance_variable_set(var_name, value) unless value.nil?
@@ -193,16 +196,21 @@ module CoinmarketcapFree
193
196
 
194
197
  # Get coin logo URL from coinmarketcap
195
198
  #
196
- # logo = CoinmarketcapFree.img_coin(1, '64x64')
199
+ # logo = CoinmarketcapFree.img_coin(1, 64)
197
200
  #
198
201
  # Result:
199
202
  # "https://s2.coinmarketcap.com/static/img/coins/64x64/1.png"
200
203
  #
201
204
  # @return [String] Return URL from coinmarketcap
202
205
  # @param [Integer] id_coin Identify coin. For example, bitcoin has 1
203
- # @param [String] size Choose one size: 64x64, 128x128, 200x200
204
- def img_coin(id_coin, size)
205
- "https://s2.coinmarketcap.com/static/img/coins/#{size}/#{id_coin}.png"
206
+ # @param [Integer] size Choose one size: 64, 128, 200
207
+ def img_coin_url(id_coin, size)
208
+ size_x_size = case size
209
+ when 64, 128, 200
210
+ "#{size}x#{size}"
211
+ else raise ArgumentError
212
+ end
213
+ "https://s2.coinmarketcap.com/static/img/coins/#{size_x_size}/#{id_coin}.png"
206
214
  end
207
215
  end
208
- end
216
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coinmarketcap_free
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - cosmic-1
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-23 00:00:00.000000000 Z
11
+ date: 2023-01-30 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Cryptocurrency information from the Coinmarketcap site without a key.
14
14
  email:
@@ -32,7 +32,7 @@ files:
32
32
  - lib/coinmarketcap_free/cryptocurrencies.rb
33
33
  - lib/coinmarketcap_free/helper.rb
34
34
  - lib/coinmarketcap_free/version.rb
35
- homepage: https://github.com/Cosmic-1/coinmarketcap_free
35
+ homepage:
36
36
  licenses:
37
37
  - MIT
38
38
  metadata: