cryptum 0.0.389 → 0.0.393

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d3009461c0a539d8bdd7ca40e6223558e174880f62cd66ff7ad4a0c14ee932b
4
- data.tar.gz: 56780f30a968d75a4db3ec5aecb7b0e664f3595f8f06f5a876e78a83a6ed230d
3
+ metadata.gz: ca637e5a3a716df2681e8b1b5596c179eef4a83664d387edfc71d19a088dc4d0
4
+ data.tar.gz: ee4e852ed2cbaccfc985f9f0ac5b1fab3e0e9e9e028da55e315476163e51e1f2
5
5
  SHA512:
6
- metadata.gz: d2cb84edbd025ea4c5b0bc3cc4e394bba84b90055c590a12e0a0415e56b8f1f7ea7eabab6eff34e7499d5432c65875f0691f54f5d2fed97d74ab8b745e5fb622
7
- data.tar.gz: 967f8c3f94a945f267d5e3802980aa2a00a05ca0b84d6503c8759be8b5852d7ed8854322c9e215452e7ae93efd1958183f6acb89a143b68371bd34e7bc3fc386
6
+ metadata.gz: 004ea17a91df64ef33f9aef8a62cce6b9d558a06f8f46b98ccd473cc4ec4e81ee306ba9734149bbabac7078a59773eb104d1baef1dd76dda566b89a0aebc1ffe
7
+ data.tar.gz: 269567118f7ff64cc9ed35d615b7fe65598a8b3f82bea963241b293132558523c6005794823093ed6bc00cb80adea516a97c06c7af299a73490deb3d21df9d28
data/.rubocop_todo.yml CHANGED
@@ -1,21 +1,11 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2023-04-03 17:23:47 UTC using RuboCop version 1.49.0.
3
+ # on 2023-04-03 22:26:52 UTC using RuboCop version 1.49.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 1
10
- Lint/UnreachableCode:
11
- Exclude:
12
- - 'bin/cryptum'
13
-
14
- # Offense count: 1
15
- Style/ClassVars:
16
- Exclude:
17
- - 'bin/cryptum'
18
-
19
9
  # Offense count: 5
20
10
  # This cop supports safe autocorrection (--autocorrect).
21
11
  # Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
@@ -30,9 +20,3 @@ Style/ConditionalAssignment:
30
20
  # Configuration parameters: AllowedConstants.
31
21
  Style/Documentation:
32
22
  Enabled: false
33
-
34
- # Offense count: 1
35
- # This cop supports safe autocorrection (--autocorrect).
36
- Style/RedundantSelf:
37
- Exclude:
38
- - 'lib/cryptum/api.rb'
data/bin/cryptum CHANGED
@@ -19,12 +19,7 @@ if option_choice.list_products
19
19
  )
20
20
  end
21
21
 
22
- # Instantiate Our Status Indicators & History Objects
23
- indicator_status = Cryptum::OrderBook::Indicator.new
24
-
25
22
  # Generate an Order Book for Session Tracking
26
- # Load previous order_book_justification from
27
- # Order Book File (if it exists)
28
23
  event_history = Cryptum::OrderBook::Generate.new(
29
24
  option_choice: option_choice,
30
25
  env: env
@@ -34,25 +29,12 @@ event_history = Cryptum::OrderBook::Generate.new(
34
29
  terminal_win = Cryptum::UI.init(event_history: event_history)
35
30
  terminal_win.key_press_event.key_w = true if option_choice.reset_session_countdown
36
31
 
37
- # Automatically Create Bot Confs if they don't
38
- # Exist and Initialize Automated Trading Parameters
39
- bot_conf = Cryptum::BotConf.read(
40
- option_choice: option_choice,
41
- event_history: event_history
42
- )
43
-
44
32
  # Connect to WebSocket
45
- # Trigger Events as Event Data
46
- # Generated via Coinbase Pro
47
- # Web Socket HTTP Responses
48
- # Refresh UI with Event Data
49
- # Update "Status Indicators"
50
- # Leverage "Status Indicators" to Initiate Actions
33
+ # Refresh UI and Trigger Events as Messages via Web Socket are Received.
34
+ # Leverage Indicators to Initiate Actions
51
35
  Cryptum::WebSock::EventMachine.run(
52
36
  option_choice: option_choice,
53
37
  env: env,
54
38
  terminal_win: terminal_win,
55
- event_history: event_history,
56
- indicator_status: indicator_status,
57
- bot_conf: bot_conf
39
+ event_history: event_history
58
40
  )
data/lib/cryptum/api.rb CHANGED
@@ -13,7 +13,7 @@ module Cryptum
13
13
  require 'cryptum/api/signature'
14
14
 
15
15
  public_class_method def self.help
16
- puts self.constants
16
+ puts constants.sort
17
17
  end
18
18
  end
19
19
  end
data/lib/cryptum/event.rb CHANGED
@@ -19,7 +19,7 @@ module Cryptum
19
19
  # Display Usage for this Module
20
20
 
21
21
  public_class_method def self.help
22
- constants.sort
22
+ puts constants.sort
23
23
  end
24
24
  end
25
25
  end
@@ -5,8 +5,7 @@ module Cryptum
5
5
  module Option
6
6
  # attr_accessor objects to pass through application
7
7
  class Choice
8
- attr_accessor :autotrade,
9
- :driver_name,
8
+ attr_accessor :driver_name,
10
9
  :list_products,
11
10
  :proxy,
12
11
  :reset_session_countdown,
@@ -36,7 +36,9 @@ module Cryptum
36
36
 
37
37
  # Display Usage for this Module
38
38
  public_class_method def self.help
39
- constants.sort
39
+ puts "USAGE:
40
+ #{self}.get(option_choice: option_choice)
41
+ "
40
42
  end
41
43
  end
42
44
  end
@@ -78,7 +78,9 @@ module Cryptum
78
78
 
79
79
  # Display Usage for this Module
80
80
  public_class_method def self.help
81
- constants.sort
81
+ puts "USAGE:
82
+ #{self}.check(option_choice: option_choice)
83
+ "
82
84
  end
83
85
  end
84
86
  end
@@ -19,12 +19,6 @@ module Cryptum
19
19
  '<Required - Crypto Symbol.(e.g. btc-usd, eth-usd, etc.)'
20
20
  ) { |s| option_choice.symbol = s.to_s.gsub('-', '_').downcase.to_sym }
21
21
 
22
- options.on(
23
- '-A',
24
- '--[no-]autotrade',
25
- '<Optional - Automatically Buy and Sell Crypto>'
26
- ) { |a| option_choice.autotrade = a }
27
-
28
22
  options.on(
29
23
  '-l',
30
24
  '--[no-]list-products',
@@ -76,7 +70,9 @@ module Cryptum
76
70
 
77
71
  # Display Usage for this Module
78
72
  public_class_method def self.help
79
- constants.sort
73
+ puts "USAGE:
74
+ #{self}.get(option_choice: option_choice)
75
+ "
80
76
  end
81
77
  end
82
78
  end
@@ -10,7 +10,7 @@ module Cryptum
10
10
 
11
11
  # Display Usage for this Module
12
12
  public_class_method def self.help
13
- constants.sort
13
+ puts constants.sort
14
14
  end
15
15
  end
16
16
  end
@@ -7,7 +7,7 @@ module Cryptum
7
7
 
8
8
  # Display Usage for this Module
9
9
  public_class_method def self.help
10
- constants.sort
10
+ puts constants.sort
11
11
  end
12
12
  end
13
13
  end
@@ -30,7 +30,7 @@ module Cryptum
30
30
  # Display a List of Every UI Module
31
31
 
32
32
  public_class_method def self.help
33
- constants.sort
33
+ puts constants.sort
34
34
  end
35
35
  end
36
36
  end
@@ -29,7 +29,7 @@ module Cryptum
29
29
  # Display a List of Every UI Module
30
30
 
31
31
  public_class_method def self.help
32
- constants.sort
32
+ puts constants.sort
33
33
  end
34
34
  end
35
35
  end
@@ -19,9 +19,9 @@ module Cryptum
19
19
  indicator_status = opts[:indicator_status]
20
20
  bot_conf = opts[:bot_conf]
21
21
 
22
- event_type = event_history.event_type if option_choice.autotrade
23
- event_side = event_history.event[:side].to_s.to_sym if option_choice.autotrade
24
- event_reason = event_history.event[:reason].to_s.to_sym if option_choice.autotrade
22
+ event_type = event_history.event_type
23
+ event_side = event_history.event[:side].to_s.to_sym
24
+ event_reason = event_history.event[:reason].to_s.to_sym
25
25
 
26
26
  ticker_price = event_history.order_book[:ticker_price].to_f
27
27
  open_24h = event_history.order_book[:open_24h].to_f
@@ -42,11 +42,11 @@ module Cryptum
42
42
  limit_price = last_three_prices_arr.sort[1]
43
43
  return event_history unless limit_price.positive?
44
44
 
45
- tpm = bot_conf[:target_profit_margin_percent].to_f
46
- tpm_cast_as_decimal = tpm / 100
45
+ # tpm = bot_conf[:target_profit_margin_percent].to_f
46
+ # tpm_cast_as_decimal = tpm / 100
47
47
 
48
48
  order_history_meta = event_history.order_book[:order_history_meta]
49
- order_history = event_history.order_book[:order_history] if option_choice.autotrade
49
+ order_history = event_history.order_book[:order_history]
50
50
 
51
51
  margin_percent_open_24h = (1 - (open_24h / ticker_price)) * 100
52
52
  cast_margin_to_sec = margin_percent_open_24h * 0.1
@@ -79,87 +79,60 @@ module Cryptum
79
79
  indicator_status.action_signal == :buy &&
80
80
  !event_history.red_pill
81
81
 
82
- if option_choice.autotrade
83
- this_order = event_history.order_book[:order_plan].first
82
+ this_order = event_history.order_book[:order_plan].first
84
83
 
85
- # If price is greater than the previous order,
86
- # force it to be slightly less
87
- last_order = order_history_meta.select do |order|
88
- order if order[:color] == 'yellow'
89
- end.last
84
+ # If price is greater than the previous order,
85
+ # force it to be slightly less
86
+ last_order = order_history_meta.select do |order|
87
+ order if order[:color] == 'yellow'
88
+ end.last
90
89
 
91
- last_purchase_price = 0.0
92
- last_purchase_price = last_order[:price].to_f if last_order
90
+ last_purchase_price = 0.0
91
+ last_purchase_price = last_order[:price].to_f if last_order
93
92
 
94
- limit_price = last_purchase_price - quote_increment.to_f if last_purchase_price.positive? && last_purchase_price < limit_price
93
+ limit_price = last_purchase_price - quote_increment.to_f if last_purchase_price.positive? && last_purchase_price < limit_price
95
94
 
96
- # Debug last order
97
- File.open('/tmp/cryptum-errors.txt', 'a') do |f|
98
- f.puts "Last Order: #{last_order}"
99
- f.puts "Last Purchase Price: #{last_purchase_price}"
100
- f.puts "Limit Price (Should be <= quote_increment-- ^): #{limit_price}"
101
- f.puts "\n\n\n"
102
- end
95
+ # Debug last order
96
+ File.open('/tmp/cryptum-errors.txt', 'a') do |f|
97
+ f.puts "Last Order: #{last_order}"
98
+ f.puts "Last Purchase Price: #{last_purchase_price}"
99
+ f.puts "Limit Price (Should be <= quote_increment-- ^): #{limit_price}"
100
+ f.puts "\n\n\n"
101
+ end
103
102
 
104
- price = format(
105
- "%0.#{fiat_smallest_decimal}f",
106
- limit_price
107
- )
103
+ price = format(
104
+ "%0.#{fiat_smallest_decimal}f",
105
+ limit_price
106
+ )
108
107
 
109
- size = this_order[:invest].to_f / limit_price
108
+ size = this_order[:invest].to_f / limit_price
110
109
 
111
- loop do
112
- size = size.to_f + base_increment.to_f
113
- break if (size.to_f * price.to_f) > min_market_funds.to_f
114
- end
110
+ loop do
111
+ size = size.to_f + base_increment.to_f
112
+ break if (size.to_f * price.to_f) > min_market_funds.to_f
113
+ end
115
114
 
116
- size = format(
117
- "%0.#{crypto_smallest_decimal}f",
118
- size
119
- )
115
+ size = format(
116
+ "%0.#{crypto_smallest_decimal}f",
117
+ size
118
+ )
120
119
 
121
- fiat_invested_this_order = size.to_f * price.to_f
122
-
123
- fiat_portfolio = event_history.order_book[:fiat_portfolio]
124
- fiat_avail_to_trade = format('%0.2f', fiat_portfolio.first[:available])
125
-
126
- event_history.red_pill = true if fiat_invested_this_order > fiat_avail_to_trade.to_f
127
-
128
- unless event_history.red_pill
129
- event_history = Cryptum::Event::Buy.crypto(
130
- option_choice: option_choice,
131
- env: env,
132
- price: price,
133
- size: size,
134
- event_history: event_history,
135
- bot_conf: bot_conf
136
- )
137
- end
138
- else
139
- this_order = event_history.order_book[:order_plan].shift
140
- # Mock Order ID
141
- this_order[:buy_order_id] = format(
142
- '%0.6i',
143
- Random.rand(0..999_999)
144
- )
120
+ fiat_invested_this_order = size.to_f * price.to_f
145
121
 
146
- this_order[:price] = limit_price.to_s
147
- this_order[:size] = format(
148
- "%0.#{crypto_smallest_decimal}f",
149
- this_order[:invest].to_f / limit_price
150
- )
122
+ fiat_portfolio = event_history.order_book[:fiat_portfolio]
123
+ fiat_avail_to_trade = format('%0.2f', fiat_portfolio.first[:available])
151
124
 
152
- targ_price = limit_price + (limit_price * tpm_cast_as_decimal)
153
- this_order[:tpm] = format(
154
- '%0.2f',
155
- tpm
156
- )
157
- this_order[:target_price] = format(
158
- "%0.#{fiat_smallest_decimal}f",
159
- targ_price
125
+ event_history.red_pill = true if fiat_invested_this_order > fiat_avail_to_trade.to_f
126
+
127
+ unless event_history.red_pill
128
+ event_history = Cryptum::Event::Buy.crypto(
129
+ option_choice: option_choice,
130
+ env: env,
131
+ price: price,
132
+ size: size,
133
+ event_history: event_history,
134
+ bot_conf: bot_conf
160
135
  )
161
- this_order[:color] = :cyan
162
- order_history_meta.push(this_order)
163
136
  end
164
137
 
165
138
  # SAUCE 4 (SAUCE 3 RELATES TO SAUCE 4)
@@ -181,23 +154,6 @@ module Cryptum
181
154
  # be more than event_history.time_between_orders_max
182
155
  event_history.time_between_orders = event_history.time_between_orders_max if event_history.time_between_orders > event_history.time_between_orders_max
183
156
  end
184
-
185
- # SELL
186
- # Once buy arders are fulfilled submit a
187
- # limit sell order for fulfillment
188
- unless option_choice.autotrade
189
- # Testing logic via Mock
190
- event_type_arr = %i[received open done]
191
- last_et_index = event_type_arr.length - 1
192
- rand_et_index = Random.rand(0..last_et_index)
193
- event_type = event_type_arr[rand_et_index]
194
-
195
- event_side_arr = %i[buy sell]
196
- last_es_index = event_side_arr.length - 1
197
- rand_es_index = Random.rand(0..last_es_index)
198
- event_side = event_type_arr[rand_es_index].to_s.to_sym
199
- event_reason = 'mock'
200
- end
201
157
  end
202
158
 
203
159
  # Update Completed Sell Orders w/ Green
@@ -227,52 +183,30 @@ module Cryptum
227
183
  event_side == :buy &&
228
184
  event_reason != :canceled
229
185
 
230
- if option_choice.autotrade
231
- order_ready_to_sell_arr = order_history_meta.select do |meta|
232
- meta[:buy_order_id] == event_history.event[:order_id]
233
- end
234
- else
235
- last_index = order_history_meta.length - 1
236
- rand_index = Random.rand(0..last_index)
237
- order_ready_to_sell_arr = [
238
- order_history_meta[rand_index]
239
- ]
186
+ order_ready_to_sell_arr = order_history_meta.select do |meta|
187
+ meta[:buy_order_id] == event_history.event[:order_id]
240
188
  end
241
189
 
242
190
  if order_ready_to_sell_arr.length.positive?
243
191
  order_ready_to_sell = order_ready_to_sell_arr.first
244
192
  buy_order_id = order_ready_to_sell[:buy_order_id]
245
193
 
246
- if option_choice.autotrade
247
- price = format(
248
- "%0.#{fiat_smallest_decimal}f",
249
- order_ready_to_sell[:target_price]
250
- )
194
+ price = format(
195
+ "%0.#{fiat_smallest_decimal}f",
196
+ order_ready_to_sell[:target_price]
197
+ )
251
198
 
252
- size = order_ready_to_sell[:size]
199
+ size = order_ready_to_sell[:size]
253
200
 
254
- event_history = Cryptum::Event::Sell.crypto(
255
- option_choice: option_choice,
256
- env: env,
257
- price: price,
258
- size: size,
259
- event_history: event_history,
260
- bot_conf: bot_conf,
261
- buy_order_id: buy_order_id
262
- )
263
- else
264
- sell_order_id = format(
265
- '%0.2i',
266
- Random.rand(0..999_999)
267
- )
268
-
269
- event_history.order_book[:order_history_meta].each do |meta|
270
- if meta[:buy_order_id] == buy_order_id
271
- meta[:sell_order_id] = sell_order_id
272
- meta[:color] = :yellow
273
- end
274
- end
275
- end
201
+ event_history = Cryptum::Event::Sell.crypto(
202
+ option_choice: option_choice,
203
+ env: env,
204
+ price: price,
205
+ size: size,
206
+ event_history: event_history,
207
+ bot_conf: bot_conf,
208
+ buy_order_id: buy_order_id
209
+ )
276
210
  end
277
211
  end
278
212
 
@@ -14,7 +14,7 @@ module Cryptum
14
14
  # Display a List of Every UI Module
15
15
 
16
16
  public_class_method def self.help
17
- constants.sort
17
+ puts constants.sort
18
18
  end
19
19
  end
20
20
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Cryptum
4
- VERSION = '0.0.389'
4
+ VERSION = '0.0.393'
5
5
  end
@@ -15,8 +15,16 @@ module Cryptum
15
15
  option_choice = opts[:option_choice]
16
16
  terminal_win = opts[:terminal_win]
17
17
  event_history = opts[:event_history]
18
- indicator_status = opts[:indicator_status]
19
- bot_conf = opts[:bot_conf]
18
+
19
+ # Instantiate Our Status Indicator Objects
20
+ indicator_status = Cryptum::OrderBook::Indicator.new
21
+
22
+ # Automatically Create Bot Confs if they don't
23
+ # Exist and Initialize Automated Trading Parameters
24
+ bot_conf = Cryptum::BotConf.read(
25
+ option_choice: option_choice,
26
+ event_history: event_history
27
+ )
20
28
 
21
29
  max_conn_attempts = 30
22
30
  conn_attempt = 0
@@ -49,12 +57,7 @@ module Cryptum
49
57
  end
50
58
 
51
59
  ws.on :message do |event|
52
- # TODO: The Speed of the UI is dictated by the
53
- # Frequency of WebSocket Messages Coming Through.
54
- # Explore another way to decouple required events
55
- # (such as keypresses) from only being triggered
56
- # when messages come through.
57
-
60
+ # Convert Web Socket Response JSON Message to Hash
58
61
  event_history.event = JSON.parse(
59
62
  event.data,
60
63
  symbolize_names: true
@@ -73,8 +76,7 @@ module Cryptum
73
76
  # Detect Key Press Events
74
77
  Cryptum::Event::KeyPress.detect(terminal_win: terminal_win)
75
78
 
76
- # Cancel ALL Open Orders when
77
- # C is pressed
79
+ # Cancel ALL Open Orders when C is pressed
78
80
  if terminal_win.key_press_event.key_c
79
81
  Cryptum::Event::Cancel.open_orders(
80
82
  terminal_win: terminal_win,
@@ -83,8 +85,7 @@ module Cryptum
83
85
  )
84
86
  end
85
87
 
86
- # Get the F* Out (GTFO) when
87
- # G is pressed
88
+ # Get the F* Out (GTFO) when G is pressed
88
89
  if terminal_win.key_press_event.key_g
89
90
  event_history = Cryptum::Event::GTFO.now(
90
91
  terminal_win: terminal_win,
@@ -104,8 +105,7 @@ module Cryptum
104
105
  )
105
106
  end
106
107
 
107
- # Only Write Order Book to File when
108
- # W is Pressed
108
+ # Write Order Book to File when W is Pressed
109
109
  if terminal_win.key_press_event.key_w
110
110
  Cryptum::Event::OrderBook.write(
111
111
  terminal_win: terminal_win,
@@ -114,7 +114,11 @@ module Cryptum
114
114
  end
115
115
 
116
116
  # Exit if x is Pressed
117
- Cryptum::Event::Exit.gracefully(event_history: event_history) if terminal_win.key_press_event.key_x
117
+ if terminal_win.key_press_event.key_x
118
+ Cryptum::Event::Exit.gracefully(
119
+ event_history: event_history
120
+ )
121
+ end
118
122
 
119
123
  # TAB through Order Plan / Order Execution Window Panes
120
124
  if terminal_win.key_press_event.key_tab
@@ -182,9 +186,9 @@ module Cryptum
182
186
  end
183
187
 
184
188
  ws.on :close do
185
- # raise when remote peer forces reset...this
186
- # is then caught below and reattempts to connect
187
- # until conn_attempt > max_conn_attempts
189
+ # raise Errno::ECONNRESET when remote peer forces reset...
190
+ # This will be caught in the rescue block below which reattempts
191
+ # to connect until conn_attempt > max_conn_attempts
188
192
  raise Errno::ECONNRESET
189
193
  end
190
194
 
@@ -211,7 +215,7 @@ module Cryptum
211
215
 
212
216
  EM.add_periodic_timer(option_choice.market_trend_reset) do
213
217
  # NOTE: To ensure the integrity of event_history is maintained,
214
- # changes to its contenta _MUST_ stay in thos block.
218
+ # changes to its contents _MUST_ stay in this block.
215
219
  event_history.order_book[:market_trend][:buy] = 0
216
220
  event_history.order_book[:market_trend][:sell] = 0
217
221
  event_history.order_book[:last_trend_reset] = Time.now.strftime(
@@ -10,7 +10,7 @@ module Cryptum
10
10
  # Display Usage for this Module
11
11
 
12
12
  public_class_method def self.help
13
- constants.sort
13
+ puts constants.sort
14
14
  end
15
15
  end
16
16
  end
@@ -4,7 +4,7 @@ require 'spec_helper'
4
4
 
5
5
  describe Cryptum::Option::Environment do
6
6
  it 'should return data for help method' do
7
- help_response = Cryptum::Option::Environment.help
8
- expect(help_response).not_to be_nil
7
+ help_response = Cryptum::Option::Environment
8
+ expect(help_response).to respond_to :help
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ require 'spec_helper'
4
4
 
5
5
  describe Cryptum::Option::InputValidation do
6
6
  it 'should return data for help method' do
7
- help_response = Cryptum::Option::InputValidation.help
8
- expect(help_response).not_to be_nil
7
+ help_response = Cryptum::Option::InputValidation
8
+ expect(help_response).to respond_to :help
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ require 'spec_helper'
4
4
 
5
5
  describe Cryptum::Option::Parser do
6
6
  it 'should return data for help method' do
7
- help_response = Cryptum::Option::Parser.help
8
- expect(help_response).not_to be_nil
7
+ help_response = Cryptum::Option::Parser
8
+ expect(help_response).to respond_to :help
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ require 'spec_helper'
4
4
 
5
5
  describe Cryptum do
6
6
  it 'should return data for help method' do
7
- help_response = Cryptum.help
7
+ help_response = Cryptum
8
8
  expect(help_response).not_to be_nil
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cryptum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.389
4
+ version: 0.0.393
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-03 00:00:00.000000000 Z
11
+ date: 2023-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable