Class: INatGet::App::Server::Console
- Inherits:
-
INatGet::App::Server
- Object
- INatGet::App::Server
- INatGet::App::Server::Console
- Defined in:
- lib/inat-get/app/core/console.rb
Constant Summary collapse
- SEV_ICON =
{ Logger::Severity::DEBUG => '📓', Logger::Severity::INFO => '📢', Logger::Severity::WARN => '🔔', Logger::Severity::ERROR => '🚨', Logger::Severity::FATAL => '❌' }
Instance Attribute Summary
Attributes inherited from INatGet::App::Server
Instance Method Summary collapse
- #clear(progname, **opts) ⇒ Object
- #console_log(severity, message, progname, prog_key, pid) ⇒ Object private
- #file_log(severity, message, progname, prog_key) ⇒ Object private
-
#initialize(socket_path, **params) ⇒ Console
constructor
A new instance of Console.
- #log(severity, message, progname, **opts) ⇒ Object
- #prog_key(progname) ⇒ Object private
- #register(**opts) ⇒ Object
- #update(**opts) ⇒ Object
Methods inherited from INatGet::App::Server
#after_loop, #before_loop, create, #on_error, #process_msg, #run, used?, wait_answer?
Constructor Details
#initialize(socket_path, **params) ⇒ Console
Returns a new instance of Console.
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 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/inat-get/app/core/console.rb', line 13 def initialize socket_path, **params super(socket_path, **params) @table = IS::Term::StatusTable::instance @table.configure do column :icon, func: lambda { |row| row[:_active] ? "\e[1m[ ]" : "[✔]" } separator ' ' column :_sender_pid, id: true, align: :right separator ' ' column :name separator ' ' column :status, align: :center separator ' ' column :current, align: :right, summary: :current separator ' of ' column :total, align: :left, summary: :total separator ' ' column :percent, align: :right, func: :percent, format: '%d%%', summary: :percent separator ' ' column :estimated, func: :estimated, align: :right, format: :duration, summary: :elapsed separator ' ' column :speed, func: :speed, format: '%.2f r/s', align: :right, summary: :speed separator ' ' column :message, summary: :value summary true, message: '' end if @config.dig(:logs, :file, :enable) filename = @config.dig(:logs, :file, :enable) @sys_logger = Logger::new filename, 'daily', 7, level: @config.dig(:logs, :file, :sys) @api_logger = Logger::new filename, 'daily', 7, level: @config.dig(:logs, :file, :api) @wrk_logger = Logger::new filename, 'daily', 7, level: @config.dig(:logs, :file, :wrk) end @log_levels = { sys: Logger::Severity::coerce(@config.dig(:logs, :screen, :sys)), api: Logger::Severity::coerce(@config.dig(:logs, :screen, :api)), wrk: Logger::Severity::coerce(@config.dig(:logs, :screen, :wrk)) } end |
Instance Method Details
#clear(progname, **opts) ⇒ Object
68 69 70 71 72 73 74 75 76 |
# File 'lib/inat-get/app/core/console.rb', line 68 def clear progname, **opts key = prog_key progname pid = opts[:_sender_pid] if key == :wrk @table.update _sender_pid: pid, message: '' else @table.summary message: '' end end |
#console_log(severity, message, progname, prog_key, pid) ⇒ Object (private)
109 110 111 112 113 114 115 116 117 |
# File 'lib/inat-get/app/core/console.rb', line 109 def console_log severity, , progname, prog_key, pid if severity >= @log_levels[prog_key] if prog_key == :wrk @table.update _sender_pid: pid, message: "#{ SEV_ICON[severity] } #{ }" else @table.summary message: "#{ SEV_ICON[severity] } [#{ progname }] #{ }" end end end |
#file_log(severity, message, progname, prog_key) ⇒ Object (private)
90 91 92 93 94 95 96 97 98 99 |
# File 'lib/inat-get/app/core/console.rb', line 90 def file_log severity, , progname, prog_key case prog_key when :api @api_logger.log severity, , progname when :wrk @wrk_logger.log severity, , progname else @sys_logger.log severity, , progname end end |
#log(severity, message, progname, **opts) ⇒ Object
60 61 62 63 64 65 66 |
# File 'lib/inat-get/app/core/console.rb', line 60 def log severity, , progname, **opts key = prog_key progname pid = opts[:_sender_pid] console_log severity, , progname, key, pid file_log severity, , progname, key if @config.dig(:logs, :file, :enable) true end |
#prog_key(progname) ⇒ Object (private)
80 81 82 83 84 85 86 87 88 |
# File 'lib/inat-get/app/core/console.rb', line 80 def prog_key progname if progname.nil? || progname == '' :sys elsif progname == 'SYS' || progname == 'API' progname.downcase.to_sym else :wrk end end |
#register(**opts) ⇒ Object
52 53 54 |
# File 'lib/inat-get/app/core/console.rb', line 52 def register **opts @table.append(**opts) end |
#update(**opts) ⇒ Object
56 57 58 |
# File 'lib/inat-get/app/core/console.rb', line 56 def update **opts @table.update(**opts) end |