cryptum 0.0.355 → 0.0.356

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 (101) hide show
  1. checksums.yaml +4 -4
  2. metadata +13 -116
  3. data/.github/workflows/main.yml +0 -16
  4. data/.gitignore +0 -30
  5. data/.rspec +0 -3
  6. data/.rspec_status +0 -0
  7. data/.rubocop.yml +0 -31
  8. data/.rubocop_todo.yml +0 -32
  9. data/.ruby-gemset +0 -1
  10. data/.ruby-version +0 -1
  11. data/CODE_OF_CONDUCT.md +0 -84
  12. data/Gemfile +0 -38
  13. data/LICENSE +0 -674
  14. data/README.md +0 -87
  15. data/Rakefile +0 -19
  16. data/bin/cryptum +0 -73
  17. data/bin/cryptum-forecast +0 -200
  18. data/bin/cryptum-repl +0 -73
  19. data/bin/cryptum_autoinc_version +0 -38
  20. data/build_cryptum_gem.sh +0 -58
  21. data/cryptum.gemspec +0 -52
  22. data/cryptum_container.sh +0 -1
  23. data/docker/cryptum.json +0 -60
  24. data/docker/cryptum_container.sh +0 -59
  25. data/docker/packer_secrets.json.EXAMPLE +0 -7
  26. data/docker/provisioners/cryptum.sh +0 -11
  27. data/docker/provisioners/docker_bashrc.sh +0 -2
  28. data/docker/provisioners/docker_rvm.sh +0 -22
  29. data/docker/provisioners/init_image.sh +0 -28
  30. data/docker/provisioners/post_install.sh +0 -6
  31. data/docker/provisioners/ruby.sh +0 -16
  32. data/docker/provisioners/upload_globals.sh +0 -49
  33. data/etc/bot_confs/.gitkeep +0 -0
  34. data/etc/bot_confs/BOT_CONF.TEMPLATE +0 -10
  35. data/etc/coinbase_pro.yaml.EXAMPLE +0 -8
  36. data/etc/open_ai.yaml.EXAMPLE +0 -1
  37. data/git_commit.sh +0 -22
  38. data/lib/cryptum/api.rb +0 -688
  39. data/lib/cryptum/bot_conf.rb +0 -197
  40. data/lib/cryptum/event/bot_conf.rb +0 -34
  41. data/lib/cryptum/event/buy.rb +0 -145
  42. data/lib/cryptum/event/cancel.rb +0 -35
  43. data/lib/cryptum/event/exit.rb +0 -35
  44. data/lib/cryptum/event/gtfo.rb +0 -36
  45. data/lib/cryptum/event/history.rb +0 -105
  46. data/lib/cryptum/event/key_press.rb +0 -64
  47. data/lib/cryptum/event/order_book.rb +0 -34
  48. data/lib/cryptum/event/pane.rb +0 -65
  49. data/lib/cryptum/event/parse.rb +0 -181
  50. data/lib/cryptum/event/scroll.rb +0 -200
  51. data/lib/cryptum/event/sell.rb +0 -124
  52. data/lib/cryptum/event.rb +0 -27
  53. data/lib/cryptum/log.rb +0 -34
  54. data/lib/cryptum/matrix.rb +0 -181
  55. data/lib/cryptum/open_ai.rb +0 -156
  56. data/lib/cryptum/option/choice.rb +0 -28
  57. data/lib/cryptum/option.rb +0 -206
  58. data/lib/cryptum/order_book/generate.rb +0 -114
  59. data/lib/cryptum/order_book/indicator.rb +0 -15
  60. data/lib/cryptum/order_book/market_trend.rb +0 -137
  61. data/lib/cryptum/order_book/profit_margin.rb +0 -55
  62. data/lib/cryptum/order_book.rb +0 -19
  63. data/lib/cryptum/portfolio/balance.rb +0 -123
  64. data/lib/cryptum/portfolio.rb +0 -15
  65. data/lib/cryptum/ui/command.rb +0 -314
  66. data/lib/cryptum/ui/key_press_event.rb +0 -33
  67. data/lib/cryptum/ui/market_trend.rb +0 -74
  68. data/lib/cryptum/ui/order_execute_details.rb +0 -297
  69. data/lib/cryptum/ui/order_execution.rb +0 -573
  70. data/lib/cryptum/ui/order_plan.rb +0 -503
  71. data/lib/cryptum/ui/order_plan_details.rb +0 -240
  72. data/lib/cryptum/ui/order_timer.rb +0 -121
  73. data/lib/cryptum/ui/portfolio.rb +0 -221
  74. data/lib/cryptum/ui/signal_engine.rb +0 -109
  75. data/lib/cryptum/ui/terminal_window.rb +0 -111
  76. data/lib/cryptum/ui/ticker.rb +0 -319
  77. data/lib/cryptum/ui.rb +0 -343
  78. data/lib/cryptum/version.rb +0 -5
  79. data/lib/cryptum/web_sock/coinbase.rb +0 -102
  80. data/lib/cryptum/web_sock/event_machine.rb +0 -274
  81. data/lib/cryptum/web_sock.rb +0 -16
  82. data/lib/cryptum.rb +0 -120
  83. data/order_books/.gitkeep +0 -0
  84. data/reinstall_cryptum_gemset.sh +0 -29
  85. data/spec/lib/cryptum/api_spec.rb +0 -10
  86. data/spec/lib/cryptum/event_spec.rb +0 -10
  87. data/spec/lib/cryptum/log_spec.rb +0 -10
  88. data/spec/lib/cryptum/option_spec.rb +0 -10
  89. data/spec/lib/cryptum/order_book/generate_spec.rb +0 -10
  90. data/spec/lib/cryptum/order_book/market_trend_spec.rb +0 -10
  91. data/spec/lib/cryptum/order_book_spec.rb +0 -10
  92. data/spec/lib/cryptum/ui/command_spec.rb +0 -10
  93. data/spec/lib/cryptum/ui/ticker_spec.rb +0 -10
  94. data/spec/lib/cryptum/ui_spec.rb +0 -10
  95. data/spec/lib/cryptum/web_sock_spec.rb +0 -10
  96. data/spec/lib/cryptum_spec.rb +0 -10
  97. data/spec/spec_helper.rb +0 -3
  98. data/upgrade_Gemfile_gems.sh +0 -20
  99. data/upgrade_cryptum.sh +0 -13
  100. data/upgrade_gem.sh +0 -4
  101. data/upgrade_ruby.sh +0 -45
@@ -1,137 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Cryptum
4
- # This plugin is used to indicate if the order trend
5
-
6
- module OrderBook
7
- module MarketTrend
8
- # Supported Method Parameters::
9
- # Cryptum::OrderBook::OrderTrend.status(
10
- # )
11
-
12
- public_class_method def self.status(opts = {})
13
- event_history = opts[:event_history]
14
- event = opts[:event]
15
- indicator_status = opts[:indicator_status]
16
-
17
- # Compatible w/ l2update websocket channel
18
- # buy_or_sell = event[:changes].first[0].to_s.to_sym
19
- # case buy_or_sell
20
- # when :buy
21
- # event_history.order_book[:market_trend][:buy] += 1
22
- # when :sell
23
- # event_history.order_book[:market_trend][:sell] += 1
24
- # else
25
- # raise "UNKNOWN Value in event[:changes] => #{buy_or_sell}"
26
- # end
27
-
28
- # Compatible w/ l2update_batch websocket channel
29
- buy_count = event[:changes].select { |change| change.first == 'buy' }.length
30
- sell_count = event[:changes].select { |change| change.first == 'sell' }.length
31
- event_history.order_book[:market_trend][:buy] += buy_count
32
- event_history.order_book[:market_trend][:sell] += sell_count
33
-
34
- indicator_hash = {}
35
- buy_total = event_history.order_book[:market_trend][:buy].to_i
36
- indicator_hash[:buy] = buy_total
37
-
38
- sell_total = event_history.order_book[:market_trend][:sell].to_i
39
- indicator_hash[:sell] = sell_total
40
-
41
- # order_difference = 0
42
- if buy_total > sell_total
43
- order_difference = buy_total - sell_total
44
- motivation = 'BUYING THE DIP'
45
- indicator_hash[:color] = :red
46
- if event_history.bullish_trend
47
- motivation = 'FOMO' if event_history.bullish_trend
48
- indicator_hash[:color] = :green
49
- end
50
- trend = "BUYS #{Cryptum.up_arrow} BY #{order_difference.to_i}"
51
- indicator_hash[:status] = "B#{Cryptum.up_arrow}"
52
- elsif buy_total < sell_total
53
- order_difference = sell_total - buy_total
54
- motivation = 'REKT'
55
- indicator_hash[:color] = :red
56
- if event_history.bullish_trend
57
- motivation = 'TAKING PROFITS' if event_history.bullish_trend
58
- indicator_hash[:color] = :green
59
- end
60
- trend = "SELLS #{Cryptum.up_arrow} BY #{order_difference.to_i}"
61
- indicator_hash[:status] = "S#{Cryptum.up_arrow}"
62
- else
63
- # This Condition is Met When candle_buy_tot == candle_sell_tot
64
- motivation = 'FLAT'
65
- indicator_hash[:color] = :yellow
66
- trend = 'BUYS == SELLS'
67
- indicator_hash[:status] = "F#{Cryptum.up_arrow}"
68
- end
69
- indicator_hash[:ui] = "Market is #{motivation} | #{trend}"
70
-
71
- indicator_status.market_trend = indicator_hash
72
- rescue StandardError => e
73
- raise e
74
- end
75
-
76
- # public_class_method def self.reset(opts = {})
77
- # # IT IS ABSOLUTELY CRITICAL THIS METHOD IS AS FAST AS POSSIBLE
78
- # # TO AVOID TICKER PRICE SYNCING ISSUES.
79
- # event_history = opts[:event_history]
80
-
81
- # # order_history = event_history.order_book[:order_history]
82
- # # order_history_meta = event_history.order_book[:order_history_meta]
83
-
84
- # # Only retain past 24 hours of
85
- # # order history meta for bought, sold, and expired
86
- # # keep open limit sell orders indefintely
87
- # # before_twenty_four_hrs_ago = Time.now - 86_400
88
- # # order_history_meta.delete_if do |ohm|
89
- # # order_history.find do |oh|
90
- # # next unless oh[:done_at]
91
-
92
- # # Time.parse(oh[:done_at]) < before_twenty_four_hrs_ago && (
93
- # # oh[:id] == ohm[:buy_order_id] ||
94
- # # oh[:id] == ohm[:sell_order_id]
95
- # # ) && (
96
- # # ohm[:color].to_sym == :white ||
97
- # # ohm[:color].to_sym == :green ||
98
- # # ohm[:color].to_sym == :cyan ||
99
- # # ohm[:color].to_sym == :red
100
- # # )
101
- # # end
102
- # # end
103
-
104
- # # Only keep order history meta for those
105
- # # hashes that exist in the last order history
106
- # # response
107
- # # order_history_meta.keep_if do |ohm|
108
- # # order_history.find do |oh|
109
- # # (oh[:id] == ohm[:buy_order_id] || oh[:id] == ohm[:sell_order_id]) && (
110
- # # ohm[:color].to_sym == :white ||
111
- # # ohm[:color].to_sym == :green ||
112
- # # ohm[:color].to_sym == :yellow
113
- # # )
114
- # # end
115
- # # end
116
- # # event_history.order_book[:order_history_meta] = order_history_meta
117
-
118
- # # Reset Market Trend Counter
119
- # event_history.order_book[:market_trend][:buy] = 0
120
- # event_history.order_book[:market_trend][:sell] = 0
121
- # event_history.order_book[:last_trend_reset] = Time.now.strftime(
122
- # '%Y-%m-%d %H:%M:%S.%N%z'
123
- # )
124
- # rescue StandardError => e
125
- # raise e
126
- # end
127
-
128
- # Display Usage for this Module
129
-
130
- public_class_method def self.help
131
- puts "USAGE:
132
- order_trend_indicator_hash = #{self}.status
133
- "
134
- end
135
- end
136
- end
137
- end
@@ -1,55 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Cryptum
4
- # This plugin is used to indicate if the
5
- # Projected Profit Margin is greater than
6
- # the Target Profit Margin Outlined in the
7
- # Respective Bot Conf
8
-
9
- module OrderBook
10
- module ProfitMargin
11
- # Supported Method Parameters::
12
- # Cryptum::OrderBook::ProfitMargin.status(
13
- # )
14
-
15
- public_class_method def self.status(opts = {})
16
- indicator_hash = {}
17
- target_profit_margin_percent = opts[:target_profit_margin_percent]
18
- total_invested = opts[:total_invested]
19
- total_projected_return = opts[:total_projected_return]
20
- indicator_status = opts[:indicator_status]
21
- invested = opts[:invested]
22
-
23
- ave_profit_margin_percent = 100 - ((total_invested / total_projected_return) * 100)
24
-
25
- if ave_profit_margin_percent > target_profit_margin_percent
26
- indicator_hash[:color] = :green
27
- pm_op = '>'
28
- elsif ave_profit_margin_percent < target_profit_margin_percent
29
- indicator_hash[:color] = :red
30
- pm_op = '<'
31
- else
32
- indicator_hash[:color] = :yellow
33
- pm_op = '=='
34
- end
35
-
36
- profit_margin_status_out = "Profit Margin #{pm_op} TPM"
37
- indicator_hash[:invested] = invested
38
- indicator_hash[:status] = profit_margin_status_out
39
-
40
- indicator_status.profit_margin = indicator_hash
41
- rescue StandardError => e
42
- raise e
43
- end
44
-
45
- # Display Usage for this Module
46
-
47
- public_class_method def self.help
48
- puts "USAGE:
49
- weighted_ave_indicator_hash = #{self}.status(
50
- )
51
- "
52
- end
53
- end
54
- end
55
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'json'
4
- require 'logger'
5
-
6
- module Cryptum
7
- # This module is used to define the Order Book Data Structure
8
- module OrderBook
9
- require 'cryptum/order_book/generate'
10
- require 'cryptum/order_book/indicator'
11
- require 'cryptum/order_book/market_trend'
12
- require 'cryptum/order_book/profit_margin'
13
-
14
- # Display Usage for this Module
15
- public_class_method def self.help
16
- constants.sort
17
- end
18
- end
19
- end
@@ -1,123 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'logger'
4
-
5
- module Cryptum
6
- # This plugin is used to instantiate a Cryptum logger with a custom message format
7
- module Portfolio
8
- module Balance
9
- # Supported Method Parameters::
10
- # Cryptum::Event::Update.summary(
11
- # )
12
- public_class_method def self.refresh(opts = {})
13
- option_choice = opts[:option_choice]
14
- env = opts[:env]
15
- terminal_win = opts[:terminal_win]
16
- event_history = opts[:event_history]
17
- fiat_portfolio_file = opts[:fiat_portfolio_file]
18
-
19
- this_product = event_history.order_book[:this_product]
20
- crypto = this_product[:base_currency]
21
- fiat = this_product[:quote_currency]
22
-
23
- if event_history.first_event ||
24
- event_history.reconnected ||
25
- event_history.event_type == :received ||
26
- event_history.event_type == :open ||
27
- event_history.event_type == :done ||
28
- event_history.event_type == :match ||
29
- event_history.event_type == :change ||
30
- event_history.event_type == :activate ||
31
- terminal_win.key_press_event.key_u
32
-
33
- etype = event_history.event_type
34
- manual_refresh = terminal_win.key_press_event.key_u
35
- etype = :manual_refresh if manual_refresh
36
- etype = :first_event if event_history.first_event
37
- etype = :reconnected if event_history.reconnected
38
- event_history.event_type = etype
39
-
40
- # Prevent Multiple Order Events from Occuring --- #
41
- ocancel = event_history.order_canceled
42
- osubmit = event_history.order_submitted
43
-
44
- # POTENTIAL STOP IN ORDERS WHEN
45
- # event_history.order_canceled = true
46
- # Verify it's not due to EMA being red.
47
- # ocancel = false if (etype == :open || etype == :done) &&
48
- # osubmit == false &&
49
- # !manual_refresh
50
-
51
- ocancel = false if etype == :done &&
52
- osubmit == true &&
53
- !manual_refresh
54
-
55
- event_history.order_canceled = ocancel
56
-
57
- osubmit = false if etype == :done &&
58
- !manual_refresh
59
-
60
- event_history.order_submitted = osubmit
61
- # ---------------------------------------------- #
62
-
63
- enotes = event_history.event_notes
64
- enotes = "{ \"event_type\": \"#{etype}\", \"cancel\": \"#{ocancel}\", \"submitted\": \"#{osubmit}\" }" if option_choice.proxy
65
- event_history.event_notes = enotes
66
-
67
- portfolio = Cryptum::API.get_portfolio(
68
- option_choice: option_choice,
69
- env: env,
70
- crypto: crypto,
71
- fiat: fiat,
72
- fiat_portfolio_file: fiat_portfolio_file,
73
- event_notes: event_history.event_notes
74
- )
75
- event_history.order_book[:portfolio] = portfolio unless portfolio.empty?
76
-
77
- order_history = Cryptum::API.get_order_history(
78
- option_choice: option_choice,
79
- env: env
80
- )
81
- event_history.order_book[:order_history] = order_history unless order_history.empty?
82
-
83
- fees = Cryptum::API.get_fees(
84
- option_choice: option_choice,
85
- env: env
86
- )
87
- event_history.order_book[:fees] = fees unless fees.empty?
88
-
89
- terminal_win.key_press_event.key_u = false if manual_refresh
90
- # First Event to Refresh No Longer Needed
91
- event_history.first_event = false
92
- # Reconnected Event to Refresh No Longer Needed
93
- event_history.reconnected = false
94
- end
95
-
96
- # Always reload fiat portfolio as it's shared
97
- # by all sessions (unless it's empty)
98
- fpf = ''
99
- fpf = File.read(fiat_portfolio_file) unless File.empty?(
100
- fiat_portfolio_file
101
- )
102
-
103
- unless fpf.empty?
104
- event_history.order_book[:fiat_portfolio] = JSON.parse(
105
- fpf,
106
- symbolize_names: true
107
- )
108
- end
109
-
110
- event_history
111
- rescue StandardError => e
112
- raise e
113
- end
114
-
115
- # Display Usage for this Module
116
- public_class_method def self.help
117
- puts "USAGE:
118
- event_history.order_book = #{self}.crypto()
119
- "
120
- end
121
- end
122
- end
123
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'logger'
4
-
5
- module Cryptum
6
- # This plugin is used to instantiate a Cryptum logger with a custom message format
7
- module Portfolio
8
- require 'cryptum/portfolio/balance'
9
-
10
- # Display Usage for this Module
11
- public_class_method def self.help
12
- constants.sort
13
- end
14
- end
15
- end
@@ -1,314 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'logger'
4
-
5
- module Cryptum
6
- module UI
7
- # This plugin is used to Refresh the Cryptum Command Section UI
8
- module Command
9
- # Supported Method Parameters::
10
- # Cryptum::UI::Command.refresh(
11
- # action_command_status: 'required - Instatiated Cryptum::OrderBook::Probabilities Object'
12
- # )
13
- public_class_method def self.refresh(opts = {})
14
- command_win = opts[:command_win]
15
- key_press_event = opts[:key_press_event]
16
-
17
- key_press_event = Cryptum::UI.detect_key_press_in_ui(
18
- key_press_event: key_press_event,
19
- ui_win: command_win
20
- )
21
-
22
- if key_press_event.key_c
23
- key_c_color = :cyan
24
- key_c_style = :reverse
25
- else
26
- key_c_color = :white
27
- key_c_style = :bold
28
- end
29
-
30
- if key_press_event.key_g
31
- key_g_color = :cyan
32
- key_g_style = :reverse
33
- else
34
- key_g_color = :white
35
- key_g_style = :bold
36
- end
37
-
38
- if key_press_event.key_r
39
- key_r_color = :cyan
40
- key_r_style = :reverse
41
- else
42
- key_r_color = :white
43
- key_r_style = :bold
44
- end
45
-
46
- if key_press_event.key_u
47
- key_u_color = :cyan
48
- key_u_style = :reverse
49
- else
50
- key_u_color = :white
51
- key_u_style = :bold
52
- end
53
-
54
- if key_press_event.key_w
55
- key_w_color = :cyan
56
- key_w_style = :reverse
57
- else
58
- key_w_color = :white
59
- key_w_style = :bold
60
- end
61
-
62
- if key_press_event.key_x
63
- key_x_color = :cyan
64
- key_x_style = :reverse
65
- else
66
- key_x_color = :white
67
- key_x_style = :bold
68
- end
69
-
70
- command_str_r2_arr = [
71
- "* v#{Cryptum::VERSION} >>> ",
72
- '[',
73
- 'C',
74
- ']ancel Open Orders',
75
- ' | ',
76
- '[',
77
- 'G',
78
- ']TFO',
79
- ' | ',
80
- '[',
81
- 'r',
82
- ']eload bot conf'
83
- ]
84
-
85
- command_str_r3_arr = [
86
- '[',
87
- 'u',
88
- ']pdate summary',
89
- ' | ',
90
- '[',
91
- 'w',
92
- ']rite order book',
93
- ' | ',
94
- 'e[',
95
- 'x',
96
- ']it'
97
- ]
98
- # ROW 1
99
- out_line_no = 0
100
- command_win.setpos(
101
- out_line_no,
102
- Cryptum::UI.col_center(str: command_str_r2_arr.join)
103
- )
104
- command_win.clrtoeol
105
-
106
- # * v#{Cryptum::VERSION} >>>
107
- Cryptum::UI.colorize(
108
- ui_win: command_win,
109
- color: :yellow,
110
- style: :bold,
111
- string: command_str_r2_arr.first
112
- )
113
-
114
- # [C]ancel Open Orders
115
- Cryptum::UI.colorize(
116
- ui_win: command_win,
117
- color: key_c_color,
118
- style: key_c_style,
119
- string: command_str_r2_arr[1]
120
- )
121
-
122
- Cryptum::UI.colorize(
123
- ui_win: command_win,
124
- color: :yellow,
125
- style: key_c_style,
126
- string: command_str_r2_arr[2]
127
- )
128
-
129
- Cryptum::UI.colorize(
130
- ui_win: command_win,
131
- color: key_c_color,
132
- style: key_c_style,
133
- string: command_str_r2_arr[3]
134
- )
135
-
136
- # |
137
- Cryptum::UI.colorize(
138
- ui_win: command_win,
139
- color: :white,
140
- string: command_str_r2_arr[4]
141
- )
142
-
143
- # [G]TFO
144
- Cryptum::UI.colorize(
145
- ui_win: command_win,
146
- color: key_g_color,
147
- style: key_g_style,
148
- string: command_str_r2_arr[5]
149
- )
150
-
151
- Cryptum::UI.colorize(
152
- ui_win: command_win,
153
- color: :yellow,
154
- style: key_g_style,
155
- string: command_str_r2_arr[6]
156
- )
157
-
158
- Cryptum::UI.colorize(
159
- ui_win: command_win,
160
- color: key_g_color,
161
- style: key_g_style,
162
- string: command_str_r2_arr[7]
163
- )
164
-
165
- # |
166
- Cryptum::UI.colorize(
167
- ui_win: command_win,
168
- color: :white,
169
- string: command_str_r2_arr[8]
170
- )
171
-
172
- # [r]eload bot conf
173
- Cryptum::UI.colorize(
174
- ui_win: command_win,
175
- color: key_r_color,
176
- style: key_r_style,
177
- string: command_str_r2_arr[9]
178
- )
179
-
180
- Cryptum::UI.colorize(
181
- ui_win: command_win,
182
- color: :yellow,
183
- style: key_r_style,
184
- string: command_str_r2_arr[10]
185
- )
186
-
187
- Cryptum::UI.colorize(
188
- ui_win: command_win,
189
- color: key_r_color,
190
- style: key_r_style,
191
- string: command_str_r2_arr.last
192
- )
193
-
194
- # ROW 3
195
- out_line_no += 1
196
- command_win.setpos(
197
- out_line_no,
198
- Cryptum::UI.col_center(str: command_str_r3_arr.join)
199
- )
200
- command_win.clrtoeol
201
-
202
- # [u]date summary
203
- Cryptum::UI.colorize(
204
- ui_win: command_win,
205
- color: key_u_color,
206
- style: key_u_style,
207
- string: command_str_r3_arr.first
208
- )
209
-
210
- Cryptum::UI.colorize(
211
- ui_win: command_win,
212
- color: :yellow,
213
- style: key_u_style,
214
- string: command_str_r3_arr[1]
215
- )
216
-
217
- Cryptum::UI.colorize(
218
- ui_win: command_win,
219
- color: key_u_color,
220
- style: key_u_style,
221
- string: command_str_r3_arr[2]
222
- )
223
-
224
- # |
225
- Cryptum::UI.colorize(
226
- ui_win: command_win,
227
- color: :white,
228
- string: command_str_r3_arr[3]
229
- )
230
-
231
- # [w]rite order book
232
- Cryptum::UI.colorize(
233
- ui_win: command_win,
234
- color: key_w_color,
235
- style: key_w_style,
236
- string: command_str_r3_arr[4]
237
- )
238
-
239
- Cryptum::UI.colorize(
240
- ui_win: command_win,
241
- color: :yellow,
242
- style: key_w_style,
243
- string: command_str_r3_arr[5]
244
- )
245
-
246
- Cryptum::UI.colorize(
247
- ui_win: command_win,
248
- color: key_w_color,
249
- style: key_w_style,
250
- string: command_str_r3_arr[6]
251
- )
252
-
253
- # |
254
- Cryptum::UI.colorize(
255
- ui_win: command_win,
256
- color: :white,
257
- string: command_str_r3_arr[7]
258
- )
259
-
260
- # e[x]it
261
- Cryptum::UI.colorize(
262
- ui_win: command_win,
263
- color: key_x_color,
264
- style: key_x_style,
265
- string: command_str_r3_arr[8]
266
- )
267
-
268
- Cryptum::UI.colorize(
269
- ui_win: command_win,
270
- color: :yellow,
271
- style: key_x_style,
272
- string: command_str_r3_arr[9]
273
- )
274
-
275
- Cryptum::UI.colorize(
276
- ui_win: command_win,
277
- color: key_x_color,
278
- style: key_x_style,
279
- string: command_str_r3_arr.last
280
- )
281
-
282
- # ROW 4
283
- out_line_no += 1
284
- Cryptum::UI.line(
285
- ui_win: command_win,
286
- out_line_no: out_line_no
287
- )
288
-
289
- command_win.refresh
290
-
291
- sleep 0.15 if key_press_event.key_g ||
292
- key_press_event.key_r ||
293
- key_press_event.key_u ||
294
- key_press_event.key_w ||
295
- key_press_event.key_x
296
- rescue Interrupt
297
- # Exit Gracefully if CTRL+C is Pressed During Session
298
- Cryptum.exit_gracefully(which_self: self)
299
- rescue StandardError => e
300
- raise e
301
- end
302
-
303
- # Display Usage for this Module
304
-
305
- public_class_method def self.help
306
- puts "USAGE:
307
- #{self}.refresh(
308
- command_status: 'required - Instatiated Cryptum::OrderBook::Probabilities Object'
309
- )
310
- "
311
- end
312
- end
313
- end
314
- end
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Cryptum
4
- module UI
5
- # This Class is Used to Detect Key Press Events
6
- class KeyPressEvent
7
- attr_accessor :key_c,
8
- :key_g,
9
- :key_r,
10
- :key_u,
11
- :key_w,
12
- :key_x,
13
- :key_ansi,
14
- :key_down_arrow,
15
- :key_end,
16
- :key_enter,
17
- :key_esc,
18
- :key_home,
19
- :key_page_down,
20
- :key_page_up,
21
- :key_tab,
22
- :key_up_arrow
23
-
24
- rescue Interrupt
25
- # Exit Gracefully if CTRL+C is Pressed During Session
26
- Cryptum.exit_gracefully(which_self: self)
27
- rescue StandardError => e
28
- # Produce a Stacktrace for anything else
29
- Curses.close_screen
30
- raise e
31
- end
32
- end
33
- end