cryptum 0.0.380 → 0.0.382

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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/.rubocop_todo.yml +3 -8
  4. data/Gemfile +1 -2
  5. data/bin/cryptum +3 -3
  6. data/bin/cryptum-forecast +3 -3
  7. data/lib/cryptum/api/exchange_rates.rb +42 -0
  8. data/lib/cryptum/api/fees.rb +36 -0
  9. data/lib/cryptum/api/order_history.rb +56 -0
  10. data/lib/cryptum/api/orders.rb +261 -0
  11. data/lib/cryptum/api/portfolio.rb +79 -0
  12. data/lib/cryptum/api/products.rb +65 -0
  13. data/lib/cryptum/api/rest.rb +177 -0
  14. data/lib/cryptum/api/signature.rb +79 -0
  15. data/lib/cryptum/api.rb +9 -692
  16. data/lib/cryptum/bot_conf.rb +14 -3
  17. data/lib/cryptum/event/buy.rb +1 -1
  18. data/lib/cryptum/event/cancel.rb +1 -1
  19. data/lib/cryptum/event/exit.rb +1 -1
  20. data/lib/cryptum/event/gtfo.rb +1 -1
  21. data/lib/cryptum/event/history.rb +4 -1
  22. data/lib/cryptum/event/parse.rb +1 -1
  23. data/lib/cryptum/event/sell.rb +1 -1
  24. data/lib/cryptum/option/choice.rb +1 -1
  25. data/lib/cryptum/order_book/generate.rb +4 -5
  26. data/lib/cryptum/portfolio/balance.rb +3 -5
  27. data/lib/cryptum/ui/command.rb +1 -1
  28. data/lib/cryptum/ui/exit.rb +43 -0
  29. data/lib/cryptum/ui/key_press_event.rb +1 -1
  30. data/lib/cryptum/ui/market_trend.rb +4 -1
  31. data/lib/cryptum/ui/matrix.rb +187 -0
  32. data/lib/cryptum/ui/order_execute_details.rb +4 -1
  33. data/lib/cryptum/ui/order_execution.rb +8 -3
  34. data/lib/cryptum/ui/order_plan.rb +6 -2
  35. data/lib/cryptum/ui/order_plan_details.rb +4 -1
  36. data/lib/cryptum/ui/order_timer.rb +5 -1
  37. data/lib/cryptum/ui/portfolio.rb +5 -1
  38. data/lib/cryptum/ui/signal_engine.rb +1 -1
  39. data/lib/cryptum/ui/terminal_window.rb +1 -1
  40. data/lib/cryptum/ui/ticker.rb +4 -1
  41. data/lib/cryptum/ui.rb +19 -17
  42. data/lib/cryptum/version.rb +1 -1
  43. data/lib/cryptum/web_sock/coinbase.rb +2 -2
  44. data/lib/cryptum/web_sock/event_machine.rb +1 -1
  45. data/lib/cryptum.rb +0 -31
  46. data/spec/lib/cryptum/api/exchange_rates_spec.rb +10 -0
  47. data/spec/lib/cryptum/api/fees_spec.rb +10 -0
  48. data/spec/lib/cryptum/api/order_history_spec.rb +10 -0
  49. data/spec/lib/cryptum/api/orders_spec.rb +10 -0
  50. data/spec/lib/cryptum/api/portfolio_spec.rb +10 -0
  51. data/spec/lib/cryptum/api/products_spec.rb +10 -0
  52. data/spec/lib/cryptum/api/rest_spec.rb +10 -0
  53. data/spec/lib/cryptum/api/signature_spec.rb +10 -0
  54. data/spec/lib/cryptum/{matrix_spec.rb → ui/exit_spec.rb} +2 -2
  55. data/spec/lib/cryptum/ui/matrix_spec.rb +10 -0
  56. metadata +24 -20
  57. data/lib/cryptum/matrix.rb +0 -181
@@ -45,7 +45,11 @@ module Cryptum
45
45
  retry
46
46
  rescue Interrupt
47
47
  # Exit Gracefully if CTRL+C is Pressed During Session
48
- Cryptum.exit_gracefully(which_self: self)
48
+ Cryptum::UI::Exit.gracefully(
49
+ which_self: self,
50
+ event_history: event_history,
51
+ option_choice: option_choice
52
+ )
49
53
  rescue StandardError => e
50
54
  # Produce a Stacktrace for anything else
51
55
  Curses.close_screen
@@ -148,7 +152,11 @@ module Cryptum
148
152
  retry
149
153
  rescue Interrupt
150
154
  # Exit Gracefully if CTRL+C is Pressed During Session
151
- Cryptum.exit_gracefully(which_self: self)
155
+ Cryptum::UI::Exit.gracefully(
156
+ which_self: self,
157
+ event_history: event_history,
158
+ option_choice: option_choice
159
+ )
152
160
  rescue StandardError => e
153
161
  # Produce a Stacktrace for anything else
154
162
  Curses.close_screen
@@ -178,7 +186,10 @@ module Cryptum
178
186
  retry
179
187
  rescue Interrupt
180
188
  # Exit Gracefully if CTRL+C is Pressed During Session
181
- Cryptum.exit_gracefully(which_self: self)
189
+ Cryptum::UI::Exit.gracefully(
190
+ which_self: self,
191
+ option_choice: option_choice
192
+ )
182
193
  rescue StandardError => e
183
194
  # Produce a Stacktrace for anything else
184
195
  Curses.close_screen
@@ -117,7 +117,7 @@ module Cryptum
117
117
  event_history.order_submitted = true
118
118
  event_history.event_notes = "{ \"event_type\": \"#{event_history.event_type}\", \"cancel\": \"#{event_history.order_canceled}\", \"submitted\": \"#{event_history.order_submitted}\" }" if option_choice.proxy
119
119
 
120
- event_history = Cryptum::API.submit_limit_order(
120
+ event_history = Cryptum::API::Orders.submit_limit_order(
121
121
  option_choice: option_choice,
122
122
  env: env,
123
123
  price: price,
@@ -16,7 +16,7 @@ module Cryptum
16
16
  # order_action = opts[:order_action]
17
17
 
18
18
  terminal_win.key_press_event.key_c = false
19
- Cryptum::API.cancel_all_open_orders(
19
+ Cryptum::API::Orders.cancel_all_open_orders(
20
20
  env: env,
21
21
  option_choice: option_choice
22
22
  )
@@ -14,7 +14,7 @@ module Cryptum
14
14
  env = opts[:env]
15
15
 
16
16
  terminal_win.key_press_event.key_x = false
17
- Cryptum.exit_gracefully(
17
+ Cryptum::UI::Exit.gracefully(
18
18
  which_self: self,
19
19
  event_history: event_history,
20
20
  option_choice: option_choice,
@@ -15,7 +15,7 @@ module Cryptum
15
15
  bot_conf = opts[:bot_conf]
16
16
 
17
17
  terminal_win.key_press_event.key_g = false
18
- Cryptum::API.gtfo(
18
+ Cryptum::API::Orders.gtfo(
19
19
  option_choice: option_choice,
20
20
  env: env,
21
21
  event_history: event_history,
@@ -195,7 +195,10 @@ module Cryptum
195
195
  end
196
196
  rescue Interrupt
197
197
  # Exit Gracefully if CTRL+C is Pressed During Session
198
- Cryptum.exit_gracefully(which_self: self)
198
+ Cryptum::UI::Exit.gracefully(
199
+ which_self: self,
200
+ option_choice: option_choice
201
+ )
199
202
  rescue StandardError => e
200
203
  # Produce a Stacktrace for anything else
201
204
  raise e
@@ -152,7 +152,7 @@ module Cryptum
152
152
  event_history
153
153
  rescue Interrupt
154
154
  # Exit Gracefully if CTRL+C is Pressed During Session
155
- Cryptum.exit_gracefully(
155
+ Cryptum::UI::Exit.gracefully(
156
156
  which_self: self,
157
157
  event_history: event_history,
158
158
  option_choice: option_choice,
@@ -96,7 +96,7 @@ module Cryptum
96
96
  event_history.order_submitted = true
97
97
  event_history.event_notes = "{ \"event_type\": \"#{event_history.event_type}\", \"cancel\": \"#{event_history.order_canceled}\", \"submitted\": \"#{event_history.order_submitted}\" }" if option_choice.proxy
98
98
 
99
- event_history = Cryptum::API.submit_limit_order(
99
+ event_history = Cryptum::API::Orders.submit_limit_order(
100
100
  option_choice: option_choice,
101
101
  env: env,
102
102
  price: price,
@@ -18,7 +18,7 @@ module Cryptum
18
18
 
19
19
  rescue Interrupt
20
20
  # Exit Gracefully if CTRL+C is Pressed During Session
21
- Cryptum.exit_gracefully(which_self: self)
21
+ Cryptum::UI::Exit.gracefully(which_self: self)
22
22
  rescue StandardError => e
23
23
  # Produce a Stacktrace for anything else
24
24
  Curses.close_screen
@@ -3,19 +3,18 @@
3
3
  require 'io/console'
4
4
  require 'json'
5
5
  require 'logger'
6
- require 'tty-spinner'
7
6
 
8
7
  module Cryptum
9
8
  # This module is used to define the Order Book Data Structure
10
9
  module OrderBook
11
10
  module Generate
12
11
  # Supported Method Parameters::
13
- # Cryptum::OrderBook.generate(
12
+ # Cryptum::OrderBook::Generate.new(
14
13
  # symbol: 'required - target symbol (e.g. btc-usd)',
15
14
  # this_product: 'required - this_product',
16
15
  # )
17
16
 
18
- public_class_method def self.new_order_book(opts = {})
17
+ public_class_method def self.new(opts = {})
19
18
  start_time = opts[:start_time]
20
19
  option_choice = opts[:option_choice]
21
20
  env = opts[:env]
@@ -25,7 +24,7 @@ module Cryptum
25
24
  order_book_file = "#{session_root}/order_books/#{symbol}.ORDER_BOOK.json"
26
25
 
27
26
  # Only need to retrieve a product list once / session.
28
- products = Cryptum::API.get_products(
27
+ products = Cryptum::API::Products.get(
29
28
  option_choice: option_choice,
30
29
  env: env
31
30
  )
@@ -103,7 +102,7 @@ module Cryptum
103
102
 
104
103
  public_class_method def self.help
105
104
  puts "USAGE:
106
- order_book = #{self}.new_order_book(
105
+ order_book = #{self}.new(
107
106
  symbol: 'required - target symbol (e.g. btc-usd)',
108
107
  this_product: 'required - this_product'
109
108
  )
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'logger'
4
-
5
3
  module Cryptum
6
4
  # This plugin is used to instantiate a Cryptum logger with a custom message format
7
5
  module Portfolio
@@ -64,7 +62,7 @@ module Cryptum
64
62
  enotes = "{ \"event_type\": \"#{etype}\", \"cancel\": \"#{ocancel}\", \"submitted\": \"#{osubmit}\" }" if option_choice.proxy
65
63
  event_history.event_notes = enotes
66
64
 
67
- portfolio = Cryptum::API.get_portfolio(
65
+ portfolio = Cryptum::API::Portfolio.get(
68
66
  option_choice: option_choice,
69
67
  env: env,
70
68
  crypto: crypto,
@@ -74,13 +72,13 @@ module Cryptum
74
72
  )
75
73
  event_history.order_book[:portfolio] = portfolio unless portfolio.empty?
76
74
 
77
- order_history = Cryptum::API.get_order_history(
75
+ order_history = Cryptum::API::OrderHistory.get(
78
76
  option_choice: option_choice,
79
77
  env: env
80
78
  )
81
79
  event_history.order_book[:order_history] = order_history unless order_history.empty?
82
80
 
83
- fees = Cryptum::API.get_fees(
81
+ fees = Cryptum::API::Fees.get(
84
82
  option_choice: option_choice,
85
83
  env: env
86
84
  )
@@ -295,7 +295,7 @@ module Cryptum
295
295
  key_press_event.key_x
296
296
  rescue Interrupt
297
297
  # Exit Gracefully if CTRL+C is Pressed During Session
298
- Cryptum.exit_gracefully(which_self: self)
298
+ Cryptum::UI::Exit.gracefully(which_self: self)
299
299
  rescue StandardError => e
300
300
  raise e
301
301
  end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cryptum
4
+ module UI
5
+ # This Class is Used to Detect Key Press Events
6
+ module Exit
7
+ public_class_method def self.gracefully(opts = {})
8
+ which_self = opts[:which_self]
9
+ event_history = opts[:event_history]
10
+ # option_choice = opts[:option_choice]
11
+ # env = opts[:env]
12
+
13
+ # Clear out candle data to ensure
14
+ # Cryptum Statistics Only Apply to
15
+ # Live Sessions
16
+ if event_history
17
+ File.write(
18
+ order_book_file,
19
+ JSON.pretty_generate(event_history.order_book)
20
+ )
21
+ end
22
+
23
+ Curses.close_screen
24
+ puts "Interrupt detected in #{which_self}...goodbye."
25
+
26
+ exit 0
27
+ rescue NameError
28
+ puts "\nInterrupt detected in #{which_self}...goodbye."
29
+
30
+ exit 0
31
+ rescue StandardError => e
32
+ # Produce a Stacktrace for anything else
33
+ raise e
34
+ end
35
+
36
+ # Display a List of Every UI Module
37
+
38
+ public_class_method def self.help
39
+ constants.sort
40
+ end
41
+ end
42
+ end
43
+ end
@@ -23,7 +23,7 @@ module Cryptum
23
23
 
24
24
  rescue Interrupt
25
25
  # Exit Gracefully if CTRL+C is Pressed During Session
26
- Cryptum.exit_gracefully(which_self: self)
26
+ Cryptum::UI::Exit.gracefully(which_self: self)
27
27
  rescue StandardError => e
28
28
  # Produce a Stacktrace for anything else
29
29
  Curses.close_screen
@@ -57,7 +57,10 @@ module Cryptum
57
57
  event_history
58
58
  rescue Interrupt
59
59
  # Exit Gracefully if CTRL+C is Pressed During Session
60
- Cryptum.exit_gracefully(which_self: self)
60
+ Cryptum::UI::Exit.gracefully(
61
+ which_self: self,
62
+ event_history: event_history
63
+ )
61
64
  rescue StandardError => e
62
65
  raise e
63
66
  end
@@ -0,0 +1,187 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'logger'
4
+
5
+ module Cryptum
6
+ # This plugin is used to Refresh the Cryptum console UI
7
+ module UI
8
+ # This plugin is used as a visual representation of being in a, "Red Pill" state
9
+ module Matrix
10
+ # Supported Method Parameters::
11
+ # Cryptum::Matrix.generate(
12
+ # cols: cols
13
+ # )
14
+
15
+ public_class_method def self.generate(opts = {})
16
+ # Need to divide by two for wide characters
17
+ cols = opts[:cols].to_i
18
+
19
+ matrix_arr = [
20
+ 0x30a0.chr('UTF-8'),
21
+ 0x30a1.chr('UTF-8'),
22
+ 0x30a2.chr('UTF-8'),
23
+ 0x30a3.chr('UTF-8'),
24
+ 0x30a4.chr('UTF-8'),
25
+ 0x30a5.chr('UTF-8'),
26
+ 0x30a6.chr('UTF-8'),
27
+ 0x30a7.chr('UTF-8'),
28
+ 0x30a8.chr('UTF-8'),
29
+ 0x30a9.chr('UTF-8'),
30
+ 0x30aa.chr('UTF-8'),
31
+ 0x30ab.chr('UTF-8'),
32
+ 0x30ac.chr('UTF-8'),
33
+ 0x30ad.chr('UTF-8'),
34
+ 0x30ae.chr('UTF-8'),
35
+ 0x30af.chr('UTF-8'),
36
+ 0x30b0.chr('UTF-8'),
37
+ 0x30b1.chr('UTF-8'),
38
+ 0x30b2.chr('UTF-8'),
39
+ 0x30b3.chr('UTF-8'),
40
+ 0x30b4.chr('UTF-8'),
41
+ 0x30b5.chr('UTF-8'),
42
+ 0x30b6.chr('UTF-8'),
43
+ 0x30b7.chr('UTF-8'),
44
+ 0x30b8.chr('UTF-8'),
45
+ 0x30b9.chr('UTF-8'),
46
+ 0x30ba.chr('UTF-8'),
47
+ 0x30bb.chr('UTF-8'),
48
+ 0x30bc.chr('UTF-8'),
49
+ 0x30bd.chr('UTF-8'),
50
+ 0x30be.chr('UTF-8'),
51
+ 0x30bf.chr('UTF-8'),
52
+ 0x30c0.chr('UTF-8'),
53
+ 0x30c1.chr('UTF-8'),
54
+ 0x30c2.chr('UTF-8'),
55
+ 0x30c3.chr('UTF-8'),
56
+ 0x30c4.chr('UTF-8'),
57
+ 0x30c5.chr('UTF-8'),
58
+ 0x30c6.chr('UTF-8'),
59
+ 0x30c7.chr('UTF-8'),
60
+ 0x30c8.chr('UTF-8'),
61
+ 0x30c9.chr('UTF-8'),
62
+ 0x30ca.chr('UTF-8'),
63
+ 0x30cb.chr('UTF-8'),
64
+ 0x30cc.chr('UTF-8'),
65
+ 0x30cd.chr('UTF-8'),
66
+ 0x30ce.chr('UTF-8'),
67
+ 0x30cf.chr('UTF-8'),
68
+ 0x30d0.chr('UTF-8'),
69
+ 0x30d1.chr('UTF-8'),
70
+ 0x30d2.chr('UTF-8'),
71
+ 0x30d3.chr('UTF-8'),
72
+ 0x30d4.chr('UTF-8'),
73
+ 0x30d5.chr('UTF-8'),
74
+ 0x30d6.chr('UTF-8'),
75
+ 0x30d7.chr('UTF-8'),
76
+ 0x30d8.chr('UTF-8'),
77
+ 0x30d9.chr('UTF-8'),
78
+ 0x30da.chr('UTF-8'),
79
+ 0x30db.chr('UTF-8'),
80
+ 0x30dc.chr('UTF-8'),
81
+ 0x30dd.chr('UTF-8'),
82
+ 0x30de.chr('UTF-8'),
83
+ 0x30df.chr('UTF-8'),
84
+ 0x30e0.chr('UTF-8'),
85
+ 0x30e1.chr('UTF-8'),
86
+ 0x30e2.chr('UTF-8'),
87
+ 0x30e3.chr('UTF-8'),
88
+ 0x30e4.chr('UTF-8'),
89
+ 0x30e5.chr('UTF-8'),
90
+ 0x30e6.chr('UTF-8'),
91
+ 0x30e7.chr('UTF-8'),
92
+ 0x30e8.chr('UTF-8'),
93
+ 0x30e9.chr('UTF-8'),
94
+ 0x30ea.chr('UTF-8'),
95
+ 0x30eb.chr('UTF-8'),
96
+ 0x30ec.chr('UTF-8'),
97
+ 0x30ed.chr('UTF-8'),
98
+ 0x30ee.chr('UTF-8'),
99
+ 0x30ef.chr('UTF-8'),
100
+ 0x30f0.chr('UTF-8'),
101
+ 0x30f1.chr('UTF-8'),
102
+ 0x30f2.chr('UTF-8'),
103
+ 0x30f3.chr('UTF-8'),
104
+ 0x30f4.chr('UTF-8'),
105
+ 0x30f5.chr('UTF-8'),
106
+ 0x30f6.chr('UTF-8'),
107
+ 0x30f7.chr('UTF-8'),
108
+ 0x30f8.chr('UTF-8'),
109
+ 0x30f9.chr('UTF-8'),
110
+ 0x30fa.chr('UTF-8'),
111
+ 0x30fb.chr('UTF-8'),
112
+ 0x30fc.chr('UTF-8'),
113
+ 0x30fd.chr('UTF-8'),
114
+ 0x30fe.chr('UTF-8'),
115
+ '0 ',
116
+ '1 ',
117
+ '2 ',
118
+ '3 ',
119
+ '4 ',
120
+ '5 ',
121
+ '6 ',
122
+ '7 ',
123
+ '8 ',
124
+ '9 ',
125
+ 'A ',
126
+ 'c ',
127
+ 'R ',
128
+ 'y ',
129
+ 'P ',
130
+ 't ',
131
+ 'U ',
132
+ 'm ',
133
+ 'x ',
134
+ 'Z ',
135
+ ': ',
136
+ '{ ',
137
+ '[ ',
138
+ '} ',
139
+ '] ',
140
+ '| ',
141
+ '` ',
142
+ '~ ',
143
+ '! ',
144
+ '@ ',
145
+ '# ',
146
+ '$ ',
147
+ '% ',
148
+ '^ ',
149
+ '& ',
150
+ '* ',
151
+ '( ',
152
+ ') ',
153
+ '_ ',
154
+ '- ',
155
+ '= ',
156
+ '+ ',
157
+ '> ',
158
+ '< ',
159
+ '. ',
160
+ ', '
161
+ ]
162
+
163
+ last_index = matrix_arr.length - 1
164
+
165
+ matrix_row = ''
166
+ most_cols = cols - 1
167
+ most_cols.times.each do
168
+ matrix_row += "#{matrix_arr[Random.rand(0..last_index)]} "
169
+ end
170
+ matrix_row += matrix_arr[Random.rand(0..last_index)]
171
+ rescue Interrupt
172
+ # Exit Gracefully if CTRL+C is Pressed During Session
173
+ Cryptum::UI::Exit.gracefully(which_self: self)
174
+ rescue StandardError => e
175
+ raise e
176
+ end
177
+
178
+ # Display Usage for this Module
179
+
180
+ public_class_method def self.help
181
+ puts "USAGE:
182
+ matrix_row = #{self}.generate(cols: Curses.cols)
183
+ "
184
+ end
185
+ end
186
+ end
187
+ end
@@ -279,7 +279,10 @@ module Cryptum
279
279
  event_history
280
280
  rescue Interrupt
281
281
  # Exit Gracefully if CTRL+C is Pressed During Session
282
- Cryptum.exit_gracefully(which_self: self)
282
+ Cryptum::UI::Exit.gracefully(
283
+ which_self: self,
284
+ event_history: event_history
285
+ )
283
286
  rescue StandardError => e
284
287
  raise e
285
288
  end
@@ -127,7 +127,7 @@ module Cryptum
127
127
  event_history.red_pill = true if fiat_invested_this_order > fiat_avail_to_trade.to_f
128
128
 
129
129
  unless event_history.red_pill
130
- event_history = Cryptum::API.submit_limit_order(
130
+ event_history = Cryptum::API::Orders.submit_limit_order(
131
131
  option_choice: option_choice,
132
132
  env: env,
133
133
  price: price,
@@ -253,7 +253,7 @@ module Cryptum
253
253
 
254
254
  size = order_ready_to_sell[:size]
255
255
 
256
- Cryptum::API.submit_limit_order(
256
+ Cryptum::API::Orders.submit_limit_order(
257
257
  option_choice: option_choice,
258
258
  env: env,
259
259
  price: price,
@@ -604,7 +604,12 @@ module Cryptum
604
604
  event_history
605
605
  rescue Interrupt
606
606
  # Exit Gracefully if CTRL+C is Pressed During Session
607
- Cryptum.exit_gracefully(which_self: self)
607
+ Cryptum::UI::Exit.gracefully(
608
+ which_self: self,
609
+ event_history: event_history,
610
+ option_choice: option_choice,
611
+ env: env
612
+ )
608
613
  rescue StandardError => e
609
614
  raise e
610
615
  end
@@ -334,7 +334,7 @@ module Cryptum
334
334
 
335
335
  max_rows_to_display.times.each do
336
336
  out_line_no += 1
337
- this_matrix_row = Cryptum::Matrix.generate(cols: Curses.cols)
337
+ this_matrix_row = Cryptum::UI::Matrix.generate(cols: Curses.cols)
338
338
  order_plan_win.setpos(out_line_no, Cryptum::UI.col_first)
339
339
  order_plan_win.clrtoeol
340
340
  Cryptum::UI.colorize(
@@ -494,7 +494,11 @@ module Cryptum
494
494
  event_history
495
495
  rescue Interrupt
496
496
  # Exit Gracefully if CTRL+C is Pressed During Session
497
- Cryptum.exit_gracefully(which_self: self)
497
+ Cryptum::UI::Exit.gracefully(
498
+ which_self: self,
499
+ event_history: event_history,
500
+ option_choice: option_choice
501
+ )
498
502
  rescue StandardError => e
499
503
  raise e
500
504
  end
@@ -222,7 +222,10 @@ module Cryptum
222
222
  event_history
223
223
  rescue Interrupt
224
224
  # Exit Gracefully if CTRL+C is Pressed During Session
225
- Cryptum.exit_gracefully(which_self: self)
225
+ Cryptum::UI::Exit.gracefully(
226
+ which_self: self,
227
+ event_history: event_history
228
+ )
226
229
  rescue StandardError => e
227
230
  raise e
228
231
  end
@@ -118,7 +118,11 @@ module Cryptum
118
118
  order_countdown.to_f
119
119
  rescue Interrupt
120
120
  # Exit Gracefully if CTRL+C is Pressed During Session
121
- Cryptum.exit_gracefully(which_self: self)
121
+ Cryptum::UI::Exit.gracefully(
122
+ which_self: self,
123
+ event_history: event_history,
124
+ option_choice: option_choice
125
+ )
122
126
  rescue StandardError => e
123
127
  raise e
124
128
  end
@@ -201,7 +201,11 @@ module Cryptum
201
201
  event_history
202
202
  rescue Interrupt
203
203
  # Exit Gracefully if CTRL+C is Pressed During Session
204
- Cryptum.exit_gracefully(which_self: self)
204
+ Cryptum::UI::Exit.gracefully(
205
+ which_self: self,
206
+ event_history: event_history,
207
+ option_choice: option_choice
208
+ )
205
209
  rescue StandardError => e
206
210
  raise e
207
211
  end
@@ -89,7 +89,7 @@ module Cryptum
89
89
  indicator_status
90
90
  rescue Interrupt
91
91
  # Exit Gracefully if CTRL+C is Pressed During Session
92
- Cryptum.exit_gracefully(which_self: self)
92
+ Cryptum::UI::Exit.gracefully(which_self: self)
93
93
  rescue StandardError => e
94
94
  raise e
95
95
  end
@@ -101,7 +101,7 @@ module Cryptum
101
101
  end
102
102
  rescue Interrupt
103
103
  # Exit Gracefully if CTRL+C is Pressed During Session
104
- Cryptum.exit_gracefully(which_self: self)
104
+ Cryptum::UI::Exit.gracefully(which_self: self)
105
105
  rescue StandardError => e
106
106
  # Produce a Stacktrace for anything else
107
107
  Curses.close_screen
@@ -299,7 +299,10 @@ module Cryptum
299
299
  event_history
300
300
  rescue Interrupt
301
301
  # Exit Gracefully if CTRL+C is Pressed During Session
302
- Cryptum.exit_gracefully(which_self: self)
302
+ Cryptum::UI::Exit.gracefully(
303
+ which_self: self,
304
+ event_history: event_history
305
+ )
303
306
  rescue StandardError => e
304
307
  raise e
305
308
  end