---
title: ttg-common
url: 'https://wiki.teletypegames.org/hu/engines/rubbs/ttg-common'
markdown: 'https://wiki.teletypegames.org/hu/engines/rubbs/ttg-common.md'
lang: hu
date: '2026-11-03'
description: 'A ttg-common (repó: bbs/common) azoknak a részeknek a helye, amelyek több boardunknak kellenek, de túl Teletype Games-specifikusak magához a rubbs-hoz: egy logó, egy házi szöveg, a hálózat boardjainak listája. A rubbs adja a gépezetet (egy BBS::Splash bármilyen két rajzot elfogad), a ttg-common a …'
taxonomy:
  tag:
    - reference
---

# ttg-common

> A `ttg-common` (repó: `bbs/common`) azoknak a részeknek a helye, amelyek több boardunknak kellenek, de túl Teletype Games-specifikusak magához a [rubbs](https://wiki.teletypegames.org/hu/engines/rubbs)-hoz: egy logó, egy házi szöveg, a hálózat boardjainak listája. A rubbs adja a gépezetet (egy `BBS::Splash` bármilyen két rajzot elfogad), a `ttg-common` a mieinket.

# Használat

```ruby
# Gemfile
gem 'bbs', git: 'https://git.teletypegames.org/engines/rubbs.git'
gem 'ttg-common', git: 'https://git.teletypegames.org/bbs/common.git'
```

```ruby
require 'ttg/common'
```

A board `Gemfile.lock`-ja mindkettőből egy revíziót rögzít. A `devarea/scripts/bbs-lock-bump.sh` minden boardot a legújabb rubbs-ra visz, és amelyik lockjában ott a `ttg-common`, azt annak legújabb revíziójára is, egy commitban (`Lock rubbs 1.7.0 (75d7375), ttg-common 0.1.0 (16d65b8)`). Először a gemet a `Gemfile`-ba kell felvenni, és `bundle lock --update bbs`-t futtatni.

# Mi van benne

| Modul | Mi | Ki használja |
|---|---|---|
| `TTG::Logo` | A Teletype Games logó két [`BBS::Art`](https://wiki.teletypegames.org/hu/engines/rubbs/art) rajzként és `BBS::Splash`-ként | a hálózat minden boardja |

## `TTG::Logo`

```ruby
config.flow = BBS::Terminal.flow(title: 'Teletype BBS', modern: m, petscii: p,
                                 splash: TTG::Logo.splash)
```

A [terminálkérdés](https://wiki.teletypegames.org/hu/engines/rubbs/commodore) után a hívó megkapja a logót középre igazítva, alatta `PRESS ANY KEY TO CONTINUE`; bármelyik billentyű vagy 60 másodperc után megy tovább.

| Arc | Rajz | Méret |
|---|---|---|
| Modern (`TTG::Logo.art(:modern)`) | `lib/ttg/logo/modern.yml`, cp437 félblokkok, 256 szín, cellánként egy szín fent és egy lent | 66 × 23 |
| Commodore 64 (`TTG::Logo.art(:petscii)`) | `lib/ttg/logo/c64.yml`, petscii-upper negyedblokkok, a C64 saját színei, cellánként egy | 33 × 23 |

Mindkettő ugyanazokból a pixelekből készült: a `media/LOGOv2/TTG-Logo-Black.png` (132 × 100) felezve 66 × 46-ra, minden 2 × 2-es blokk a leggyakoribb színét kapja. A `TELETYPE GAMES` sor a rubbs 3 × 5-ös blokkfontja, világoszöld középső sorral, mint az eredetin. Az `art-preview lib/ttg/logo/c64.yml --png out.png` (a rubbs-ban) a valódi karakter-ROM-mal mutatja a C64-es rajzot.

# Új rész felvétele

Egy modul a `TTG` alatt, saját fájlban (`lib/ttg/RÉSZ.rb`, az adatai mellette a `lib/ttg/RÉSZ/`-ben), a `lib/ttg/common.rb`-ből betöltve, teszttel, és egy sorral a fenti táblázatban meg a README-ben. Ahogy a rubbs-ban, minden RDoc-dokumentált, 100% alatt a CI elbukik; a `rake test` és a `rubocop` tiszta kell legyen.

# Kiadás

Verzióemelés a `ttg-common.gemspec`-ben, commit, `vX.Y.Z` tag (annotált), és mindkettő push; a tag-pipeline elutasítja a gemspec verziójától eltérő taget.

'; var prevLevel = 2; for (var i = 0; i < headings.length; i++) { var h = headings\[i\]; var text = h.textContent.trim(); var slug = text.toLowerCase() .replace(/\[áàâä\]/g,'a').replace(/\[éèêë\]/g,'e').replace(/\[íìîï\]/g,'i') .replace(/\[óòôöő\]/g,'o').replace(/\[úùûüű\]/g,'u') .replace(/\[^a-z0-9\]+/g, '-').replace(/^-|-$/g, ''); if (!slug) slug = 'heading-' + i; if (used\[slug\]) { slug += '-' + i; } used\[slug\] = true; h.id = slug; var level = parseInt(h.tagName.charAt(1)); var cls = level > 2 ? ' class="toc-child"' : ''; html += '- [' + text + '](#'%20+%20slug%20+%20')
'; } html += '
'; toc.innerHTML = html; // Scroll-spy: highlight current heading var links = toc.querySelectorAll('a'); var ids = \[\]; for (var j = 0; j < links.length; j++) ids.push(links\[j\].getAttribute('href').slice(1)); function updateActive() { var current = ''; for (var k = 0; k < ids.length; k++) { var el = document.getElementById(ids\[k\]); if (el && el.getBoundingClientRect().top <= 80) current = ids\[k\]; } for (var m = 0; m < links.length; m++) { links\[m\].parentNode.classList.toggle('active', links\[m\].getAttribute('href') === '#' + current); } } window.addEventListener('scroll', updateActive, { passive: true }); updateActive(); })();

---

## Navigation

- Parent: [RuBBS](https://wiki.teletypegames.org/hu/engines/rubbs.md)
- Previous: [Telnet, session és store](https://wiki.teletypegames.org/hu/engines/rubbs/telnet-and-store.md)
- Next: [Widgetek](https://wiki.teletypegames.org/hu/engines/rubbs/widgets.md)
