class Liza::Unit # PARTS def self.part key, system: nil App.connect_part self, key, system end # CONST MISSING if Lizarb.ruby_supports_raise_cause? def self.const_missing name Liza.const name rescue Liza::ConstNotFound raise NameError, "uninitialized constant #{name}", caller[1..], cause: nil end else def self.const_missing name Liza.const name rescue Liza::ConstNotFound raise NameError, "uninitialized constant #{name}", caller[1..] end end part :unit_procedure part :unit_settings # LOG LOG_LEVELS = { :higher => 2, :high => 1, :normal => 0, :low => -1, :lower => -2, } set :log_level, :normal set :log_color, :white # NOTE: improve logs performance and readability LOG_JUST = 60 def self.build_log_sidebar_for source, method_key, method_sep, panel_key: nil source = (source.is_a? Class) ? source : source.class source_color = source.log_color source = source.to_s s = source.bold.colorize(source_color) s << "[:#{panel_key}]" if panel_key s << "#{method_sep}#{method_key}" s.ljust(LOG_JUST) end # NOTE: This code needs to be optimized. def self._log_extract_method_name kaller kaller.each do |s| t = s.match(/`(.*)'/)[1] next if t.include? " in