# frozen_string_literal: true # All the 3rd party gems used in this application require 'addressable' require 'base64' require 'curses' require 'eventmachine' require 'faye/websocket' require 'fileutils' require 'json' require 'logger' require 'openssl' require 'optparse' require 'permessage_deflate' require 'rbtrace' require 'rest-client' require 'time' require 'yaml' require 'websocket/extensions' # Root-Level Namespace for cryptum module Cryptum $stdout.sync = true $stdout.flush require 'cryptum/api' require 'cryptum/bot_conf' require 'cryptum/event' require 'cryptum/log' require 'cryptum/open_ai' require 'cryptum/option' require 'cryptum/order_book' require 'cryptum/portfolio' require 'cryptum/ui' require 'cryptum/version' require 'cryptum/web_sock' public_class_method def self.bin File.join root, 'bin' end public_class_method def self.etc File.join root, 'etc' end public_class_method def self.lib File.join root, 'lib' end public_class_method def self.order_book File.join root, 'order_book' end public_class_method def self.root File.dirname __dir__ end public_class_method def self.open_symbol "\u00f8" end public_class_method def self.up_arrow "\u2191" end public_class_method def self.down_arrow "\u2193" end public_class_method def self.flat_arrow '_' end # Add Commas to Large Numbers to Make it Easier to Read public_class_method def self.beautify_large_number(opts = {}) value = opts[:value].to_s split_str_num = value.split('.') whole_num = split_str_num.first fraction = 0 fraction = split_str_num.last if split_str_num.length > 1 is_negative = false is_negative = true if whole_num.chars.first == '-' whole_num = whole_num[1..] if is_negative beautify_whole = whole_num.reverse.scan(/.{1,3}/).join(',').reverse beautify_num = "#{beautify_whole}.#{fraction}" unless is_negative beautify_num = "-#{beautify_whole}.#{fraction}" if is_negative beautify_num rescue Interrupt # Exit Gracefully if CTRL+C is Pressed During Session Cryptum.exit_gracefully(which_self: self) rescue StandardError => e # Produce a Stacktrace for anything else Curses.close_screen raise e end public_class_method def self.help constants.sort end end