Commit Graph

45 Commits

Author SHA1 Message Date
d376a454df new theme 2026-05-13 21:53:19 +02:00
f79a98229a window.open 2026-05-13 21:12:39 +02:00
757d999b9a new windows types 2026-05-13 21:00:54 +02:00
4df16e65ca env-example fix 2026-05-13 19:26:02 +02:00
2d6cc37ff0 ansi art fix 2026-05-13 19:22:32 +02:00
07c48fc252 wiki fix 2026-05-13 19:03:35 +02:00
be68836f4a nc theme palette 2026-05-13 18:49:51 +02:00
c667ad20cc new theme 2026-05-13 18:43:23 +02:00
ae7c767c0a theme 2026-05-13 18:35:40 +02:00
75bedf13fc fixes 2026-05-12 22:42:15 +02:00
7b80caeff1 remove data files 2026-05-12 22:40:53 +02:00
9d52a2e2c6 new framework 2026-05-12 22:39:44 +02:00
d92768dd23 list_view 2026-05-12 21:27:00 +02:00
0db3951999 update 2026-05-12 20:53:22 +02:00
0661bb6a54 new message modal 2026-05-12 20:36:44 +02:00
e9c0d947a6 refact 2026-05-12 20:23:30 +02:00
f1ec1c3a42 delta update 2026-05-12 19:25:31 +02:00
0f00031ca4 Switch to amber/golden theme (#FFB000 body, #FFD880 bright, #6B4800 dim)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 22:25:02 +02:00
1e2b8321fd Extract pages into lib/page/ modules; thin down bbs.rb
Each page is now a self-contained module with a configure(tui) class
method. Shared helpers live in TUIHelpers. bbs.rb is reduced to
constants, chrome, and wiring.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 22:23:10 +02:00
1cd1eceb1c Switch TUI theme from blue to black background
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 22:10:19 +02:00
a01dad96d9 Game catalog shows story and links; new_msg returns to menu on send
Game catalog: replaced emoji badges with the story field (word-wrapped)
and external links listed as label + URL. GameModel gains story and
external_links attributes.

New message: navigates back to idle immediately after a successful send
instead of sitting on the sent confirmation screen.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 22:08:31 +02:00
bbeea678cf Fix frozen string crash in new_msg; remove redundant inner titles
Bug: frozen_string_literal: true makes '' a frozen String literal.
@input << ch raised FrozenError immediately on any keystroke, causing
the TUI runner to exit. Fixed by using +'' (mutable string) for @input
everywhere it is initialised or reset.

Also removed the section header text lines that were being drawn inside
each page's content area — the page title is already embedded in the
right panel's box border, so the inner header was redundant.

Adjusted content offsets and scroll window sizes to use the reclaimed row.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 22:02:46 +02:00
5c9cb269fb Redesign TUI with DOS Navigator look and two-panel layout
Full blue background (screen_fill), double-line bordered panels side
by side: left panel for the menu, right panel for content. The right
panel's title bar shows the current page name, username and online count.

Color theme (THEME constant) maps to combined fg+bg ANSI codes so all
elements look native on the blue background: bright cyan borders, white
normal text, yellow labels, black-on-cyan selection highlights.

Status bar at the bottom mimics the NC function key bar with bright key
labels on cyan background.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 21:53:18 +02:00
2a4aafd96f Rewrite TUI using page-based DSL
Each BBS screen is now a declarative `page` block. Shared rendering
logic (wiki list, scroll helpers, wiki page opening) lives in a `helpers`
block. The persistent chrome (header bar, sidebar menu, footer) is
defined once in a `chrome` block rendered every frame.

The main flow no longer reaches into runner internals: context flows
through naturally via the updated rubbs `tui` step.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 21:32:42 +02:00
6c9b249a3a tui version 2026-05-11 21:06:59 +02:00
4244a2cc12 Add entrypoint.sh that updates rubbs before starting
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 10:37:18 +02:00
3a90dd541e Move COLORS and c() to BBS::Color in rubbs
include BBS::Color at top level — c() available everywhere
including instance_eval blocks and OutputBuilder.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 10:34:47 +02:00
304c130fa9 Replace module C with COLORS hash
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 10:31:37 +02:00
ac77420888 Pin Gemfile.lock; restore proper Docker cache invalidation
Docker can't detect external git changes — Gemfile.lock change is
the signal. Workflow: after pushing rubbs, run bundle update bbs
and commit the new Gemfile.lock.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 10:07:06 +02:00
bafd7e1f25 Fix: bundle install resolves fresh without lockfile
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 09:59:40 +02:00
ac56b4974c Always pull latest rubbs on docker build
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 09:58:56 +02:00
78184ad62f Add OutputBuilder DSL for catalog rendering
sep / line / cols / para / badge methods replace manual string
concatenation. badges auto-flush before the next content line.
render { } wraps a block in the builder via instance_eval.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 09:55:13 +02:00
390142d892 Add c(:color, text) helper, replace all inline ANSI constants
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 09:50:48 +02:00
9ab2e09b3f Add Model/Repository postfix to all class and file names
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 09:40:14 +02:00
6856b073f6 Introduce model/ and repository/ structure under lib/
Models: Message, WikiPage, Game (typed structs instead of raw hashes)
Repositories: MessageBoard, OnlineUsers, WikiClient, CatalogClient
bbs.rb uses attribute access (page.title, game.play_path, …) throughout

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 09:37:57 +02:00
75d1063572 Replace display.rb with DSL primitives in bbs.rb
All content rendering now lives in bbs.rb via the rubbs DSL.
fetch/pick handle wiki list + article drill-down; output handles
the multi-line game catalog. display.rb is gone.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 09:28:21 +02:00
5dfc2ed5c9 remove unused compose file, add new README 2026-04-28 23:06:26 +02:00
f72fbb7581 remove golang related files 2026-04-28 23:04:12 +02:00
4ac5f1632f ruby version 2026-04-28 22:58:37 +02:00
6f6dcd062f wiki fix 2026-03-13 17:15:45 +01:00
454e625ef3 rename color constants 2026-03-11 21:14:56 +01:00
2157425b24 refact round 3 2026-03-11 20:42:07 +01:00
Zsolt Tasnadi
d843df816a refact round 2 2026-03-11 07:28:14 +01:00
e837a9a04e refact 2026-03-10 21:26:04 +01:00
b8e6df3a04 initial commit 2026-03-10 18:54:17 +01:00