cryptum 0.0.381 → 0.0.383

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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/.rubocop_todo.yml +11 -8
  4. data/Gemfile +1 -2
  5. data/bin/cryptum +2 -2
  6. data/lib/cryptum/api/exchange_rates.rb +0 -2
  7. data/lib/cryptum/api/orders.rb +9 -7
  8. data/lib/cryptum/api/portfolio.rb +0 -2
  9. data/lib/cryptum/api/rest.rb +3 -4
  10. data/lib/cryptum/api/signature.rb +0 -4
  11. data/lib/cryptum/api.rb +1 -40
  12. data/lib/cryptum/bot_conf.rb +14 -6
  13. data/lib/cryptum/event/exit.rb +1 -1
  14. data/lib/cryptum/event/history.rb +4 -1
  15. data/lib/cryptum/event/parse.rb +6 -6
  16. data/lib/cryptum/event.rb +0 -2
  17. data/lib/cryptum/log.rb +18 -4
  18. data/lib/cryptum/open_ai.rb +129 -32
  19. data/lib/cryptum/option/choice.rb +1 -1
  20. data/lib/cryptum/option/environment.rb +0 -2
  21. data/lib/cryptum/option/parser.rb +0 -2
  22. data/lib/cryptum/order_book/generate.rb +3 -8
  23. data/lib/cryptum/order_book.rb +0 -3
  24. data/lib/cryptum/portfolio.rb +0 -2
  25. data/lib/cryptum/ui/command.rb +1 -3
  26. data/lib/cryptum/ui/exit.rb +43 -0
  27. data/lib/cryptum/ui/key_press_event.rb +1 -1
  28. data/lib/cryptum/ui/market_trend.rb +4 -3
  29. data/lib/cryptum/ui/matrix.rb +185 -0
  30. data/lib/cryptum/ui/order/execute.rb +629 -0
  31. data/lib/cryptum/ui/order/execute_details.rb +300 -0
  32. data/lib/cryptum/ui/order/plan.rb +518 -0
  33. data/lib/cryptum/ui/order/plan_details.rb +243 -0
  34. data/lib/cryptum/ui/order/timer.rb +140 -0
  35. data/lib/cryptum/ui/order.rb +21 -0
  36. data/lib/cryptum/ui/portfolio.rb +5 -3
  37. data/lib/cryptum/ui/signal_engine.rb +1 -3
  38. data/lib/cryptum/ui/terminal_window.rb +1 -3
  39. data/lib/cryptum/ui/ticker.rb +4 -3
  40. data/lib/cryptum/ui.rb +17 -22
  41. data/lib/cryptum/version.rb +1 -1
  42. data/lib/cryptum/web_sock/coinbase.rb +1 -6
  43. data/lib/cryptum/web_sock/event_machine.rb +3 -7
  44. data/lib/cryptum.rb +16 -33
  45. data/spec/lib/cryptum/{matrix_spec.rb → ui/exit_spec.rb} +2 -2
  46. data/spec/lib/cryptum/ui/{order_plan_spec.rb → matrix_spec.rb} +2 -2
  47. data/spec/lib/cryptum/ui/{order_execute_details_spec.rb → order/execute_details_spec.rb} +2 -2
  48. data/spec/lib/cryptum/ui/{order_execution_spec.rb → order/execute_spec.rb} +2 -2
  49. data/spec/lib/cryptum/ui/{order_plan_details_spec.rb → order/plan_details_spec.rb} +2 -2
  50. data/spec/lib/cryptum/ui/order/plan_spec.rb +10 -0
  51. data/spec/lib/cryptum/ui/order/timer_spec.rb +10 -0
  52. data/spec/lib/cryptum/ui/{order_timer_spec.rb → order_spec.rb} +2 -2
  53. metadata +20 -30
  54. data/lib/cryptum/matrix.rb +0 -181
  55. data/lib/cryptum/ui/order_execute_details.rb +0 -297
  56. data/lib/cryptum/ui/order_execution.rb +0 -624
  57. data/lib/cryptum/ui/order_plan.rb +0 -514
  58. data/lib/cryptum/ui/order_plan_details.rb +0 -240
  59. data/lib/cryptum/ui/order_timer.rb +0 -136
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'json'
4
- require 'logger'
5
-
6
3
  module Cryptum
7
4
  # This module is used to define the Order Book Data Structure
8
5
  module OrderBook
@@ -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
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'logger'
4
-
5
3
  module Cryptum
6
4
  module UI
7
5
  # This plugin is used to Refresh the Cryptum Command Section UI
@@ -295,7 +293,7 @@ module Cryptum
295
293
  key_press_event.key_x
296
294
  rescue Interrupt
297
295
  # Exit Gracefully if CTRL+C is Pressed During Session
298
- Cryptum.exit_gracefully(which_self: self)
296
+ Cryptum::UI::Exit.gracefully(which_self: self)
299
297
  rescue StandardError => e
300
298
  raise e
301
299
  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
@@ -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 Refresh the Cryptum console UI
7
5
  module UI
@@ -57,7 +55,10 @@ module Cryptum
57
55
  event_history
58
56
  rescue Interrupt
59
57
  # Exit Gracefully if CTRL+C is Pressed During Session
60
- Cryptum.exit_gracefully(which_self: self)
58
+ Cryptum::UI::Exit.gracefully(
59
+ which_self: self,
60
+ event_history: event_history
61
+ )
61
62
  rescue StandardError => e
62
63
  raise e
63
64
  end
@@ -0,0 +1,185 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cryptum
4
+ # This plugin is used to Refresh the Cryptum console UI
5
+ module UI
6
+ # This plugin is used as a visual representation of being in a, "Red Pill" state
7
+ module Matrix
8
+ # Supported Method Parameters::
9
+ # Cryptum::Matrix.generate(
10
+ # cols: cols
11
+ # )
12
+
13
+ public_class_method def self.generate(opts = {})
14
+ # Need to divide by two for wide characters
15
+ cols = opts[:cols].to_i
16
+
17
+ matrix_arr = [
18
+ 0x30a0.chr('UTF-8'),
19
+ 0x30a1.chr('UTF-8'),
20
+ 0x30a2.chr('UTF-8'),
21
+ 0x30a3.chr('UTF-8'),
22
+ 0x30a4.chr('UTF-8'),
23
+ 0x30a5.chr('UTF-8'),
24
+ 0x30a6.chr('UTF-8'),
25
+ 0x30a7.chr('UTF-8'),
26
+ 0x30a8.chr('UTF-8'),
27
+ 0x30a9.chr('UTF-8'),
28
+ 0x30aa.chr('UTF-8'),
29
+ 0x30ab.chr('UTF-8'),
30
+ 0x30ac.chr('UTF-8'),
31
+ 0x30ad.chr('UTF-8'),
32
+ 0x30ae.chr('UTF-8'),
33
+ 0x30af.chr('UTF-8'),
34
+ 0x30b0.chr('UTF-8'),
35
+ 0x30b1.chr('UTF-8'),
36
+ 0x30b2.chr('UTF-8'),
37
+ 0x30b3.chr('UTF-8'),
38
+ 0x30b4.chr('UTF-8'),
39
+ 0x30b5.chr('UTF-8'),
40
+ 0x30b6.chr('UTF-8'),
41
+ 0x30b7.chr('UTF-8'),
42
+ 0x30b8.chr('UTF-8'),
43
+ 0x30b9.chr('UTF-8'),
44
+ 0x30ba.chr('UTF-8'),
45
+ 0x30bb.chr('UTF-8'),
46
+ 0x30bc.chr('UTF-8'),
47
+ 0x30bd.chr('UTF-8'),
48
+ 0x30be.chr('UTF-8'),
49
+ 0x30bf.chr('UTF-8'),
50
+ 0x30c0.chr('UTF-8'),
51
+ 0x30c1.chr('UTF-8'),
52
+ 0x30c2.chr('UTF-8'),
53
+ 0x30c3.chr('UTF-8'),
54
+ 0x30c4.chr('UTF-8'),
55
+ 0x30c5.chr('UTF-8'),
56
+ 0x30c6.chr('UTF-8'),
57
+ 0x30c7.chr('UTF-8'),
58
+ 0x30c8.chr('UTF-8'),
59
+ 0x30c9.chr('UTF-8'),
60
+ 0x30ca.chr('UTF-8'),
61
+ 0x30cb.chr('UTF-8'),
62
+ 0x30cc.chr('UTF-8'),
63
+ 0x30cd.chr('UTF-8'),
64
+ 0x30ce.chr('UTF-8'),
65
+ 0x30cf.chr('UTF-8'),
66
+ 0x30d0.chr('UTF-8'),
67
+ 0x30d1.chr('UTF-8'),
68
+ 0x30d2.chr('UTF-8'),
69
+ 0x30d3.chr('UTF-8'),
70
+ 0x30d4.chr('UTF-8'),
71
+ 0x30d5.chr('UTF-8'),
72
+ 0x30d6.chr('UTF-8'),
73
+ 0x30d7.chr('UTF-8'),
74
+ 0x30d8.chr('UTF-8'),
75
+ 0x30d9.chr('UTF-8'),
76
+ 0x30da.chr('UTF-8'),
77
+ 0x30db.chr('UTF-8'),
78
+ 0x30dc.chr('UTF-8'),
79
+ 0x30dd.chr('UTF-8'),
80
+ 0x30de.chr('UTF-8'),
81
+ 0x30df.chr('UTF-8'),
82
+ 0x30e0.chr('UTF-8'),
83
+ 0x30e1.chr('UTF-8'),
84
+ 0x30e2.chr('UTF-8'),
85
+ 0x30e3.chr('UTF-8'),
86
+ 0x30e4.chr('UTF-8'),
87
+ 0x30e5.chr('UTF-8'),
88
+ 0x30e6.chr('UTF-8'),
89
+ 0x30e7.chr('UTF-8'),
90
+ 0x30e8.chr('UTF-8'),
91
+ 0x30e9.chr('UTF-8'),
92
+ 0x30ea.chr('UTF-8'),
93
+ 0x30eb.chr('UTF-8'),
94
+ 0x30ec.chr('UTF-8'),
95
+ 0x30ed.chr('UTF-8'),
96
+ 0x30ee.chr('UTF-8'),
97
+ 0x30ef.chr('UTF-8'),
98
+ 0x30f0.chr('UTF-8'),
99
+ 0x30f1.chr('UTF-8'),
100
+ 0x30f2.chr('UTF-8'),
101
+ 0x30f3.chr('UTF-8'),
102
+ 0x30f4.chr('UTF-8'),
103
+ 0x30f5.chr('UTF-8'),
104
+ 0x30f6.chr('UTF-8'),
105
+ 0x30f7.chr('UTF-8'),
106
+ 0x30f8.chr('UTF-8'),
107
+ 0x30f9.chr('UTF-8'),
108
+ 0x30fa.chr('UTF-8'),
109
+ 0x30fb.chr('UTF-8'),
110
+ 0x30fc.chr('UTF-8'),
111
+ 0x30fd.chr('UTF-8'),
112
+ 0x30fe.chr('UTF-8'),
113
+ '0 ',
114
+ '1 ',
115
+ '2 ',
116
+ '3 ',
117
+ '4 ',
118
+ '5 ',
119
+ '6 ',
120
+ '7 ',
121
+ '8 ',
122
+ '9 ',
123
+ 'A ',
124
+ 'c ',
125
+ 'R ',
126
+ 'y ',
127
+ 'P ',
128
+ 't ',
129
+ 'U ',
130
+ 'm ',
131
+ 'x ',
132
+ 'Z ',
133
+ ': ',
134
+ '{ ',
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
+ last_index = matrix_arr.length - 1
162
+
163
+ matrix_row = ''
164
+ most_cols = cols - 1
165
+ most_cols.times.each do
166
+ matrix_row += "#{matrix_arr[Random.rand(0..last_index)]} "
167
+ end
168
+ matrix_row += matrix_arr[Random.rand(0..last_index)]
169
+ rescue Interrupt
170
+ # Exit Gracefully if CTRL+C is Pressed During Session
171
+ Cryptum::UI::Exit.gracefully(which_self: self)
172
+ rescue StandardError => e
173
+ raise e
174
+ end
175
+
176
+ # Display Usage for this Module
177
+
178
+ public_class_method def self.help
179
+ puts "USAGE:
180
+ matrix_row = #{self}.generate(cols: Curses.cols)
181
+ "
182
+ end
183
+ end
184
+ end
185
+ end