34 lines
952 B
Ruby
34 lines
952 B
Ruby
# frozen_string_literal: true
|
||
|
||
module UI
|
||
module Windows
|
||
module_function
|
||
|
||
def system_info(app, services:)
|
||
rows = [
|
||
['Online users', services[:online].count.to_s],
|
||
['Messages', services[:boards].total_count.to_s],
|
||
['Boards', services[:boards].boards.size.to_s],
|
||
['Wiki', 'https://wiki.teletypegames.org'],
|
||
['Games API', 'https://teletypegames.org'],
|
||
['Platform', RUBY_PLATFORM],
|
||
['Ruby', RUBY_VERSION],
|
||
['Uptime', format_uptime(services[:uptime])],
|
||
]
|
||
BBS::Windows::Info.open(app,
|
||
title: ' System Info ', width: 60, height: 14,
|
||
body: [{ kv: rows, label_width: 15 }]
|
||
)
|
||
end
|
||
|
||
def format_uptime(start)
|
||
return '–' unless start
|
||
seconds = (Time.now - start).to_i
|
||
h = seconds / 3600
|
||
m = (seconds % 3600) / 60
|
||
s = seconds % 60
|
||
"#{h}h #{m}m #{s}s"
|
||
end
|
||
end
|
||
end
|