Module: Cryptum::UI::Exit

Defined in:
lib/cryptum/ui/exit.rb

Overview

Gracefully Exit the UI and Attempt to Save event_history to Order Book Session File.

Class Method Summary collapse

Class Method Details

.gracefully(opts = {}) ⇒ Object

Supported Method Parameters

Cryptum::UI::Exit.gracefully(

event_history: 'optional - Pass in the event_history if available to save to order book'

)



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/cryptum/ui/exit.rb', line 13

public_class_method def self.gracefully(opts = {})
  event_history = opts[:event_history]

  Curses.close_screen
  msg = ''
  if event_history.respond_to?('order_book')
    msg = "session: #{event_history.order_book[:path].split('/').first}, "
    msg += "symbol: #{event_history.order_book[:symbol]}"
  end
  msg += ' => Session Gracefully Terminated.'
  Cryptum::Log.append(level: :info, msg: msg, which_self: self)

  exit 0
rescue Interrupt, StandardError => e
  # Produce a Stacktrace for anything else
  Cryptum::Log.append(level: :fatal, msg: e, which_self: self)
  exit 1
ensure
  if event_history
    order_book_file = event_history.order_book[:path]
    File.write(
      order_book_file,
      JSON.pretty_generate(event_history.order_book)
    )
  end
end

.helpObject

Display a List of Every UI Module



42
43
44
# File 'lib/cryptum/ui/exit.rb', line 42

public_class_method def self.help
  puts constants.sort
end