---
title: RDoc
url: 'https://wiki.teletypegames.org/hu/development/rdoc'
markdown: 'https://wiki.teletypegames.org/hu/development/rdoc.md'
lang: hu
date: '2026-10-28'
description: 'Ruby gemjeink minden osztályt és metódust a forrásban dokumentálnak, és minden kiadási tag közzéteszi az ebből épült RDoc-ot a /rdoc/ alatt. Az alábbi táblázat mindig a legfrissebb kiadott verziót mutatja. A Go-modulok ugyanezt a Go doc-kal csinálják. Kiadott gemek /rdoc/index.json Gem Motorol…'
taxonomy:
  tag:
    - howto
---

# RDoc

> Ruby gemjeink minden osztályt és metódust a forrásban dokumentálnak, és minden kiadási tag közzéteszi az ebből épült RDoc-ot a [/rdoc/](https://wiki.teletypegames.org/rdoc/index.json) alatt. Az alábbi táblázat mindig a legfrissebb kiadott verziót mutatja. A Go-modulok ugyanezt a [Go doc](https://wiki.teletypegames.org/hu/development/godoc)-kal csinálják.

# Kiadott gemek

[/rdoc/index.json](https://wiki.teletypegames.org/rdoc/index.json)

| Gem | Motoroldal | Kiadási tag |
|---|---|---|
| `bbs` | [RuBBS](https://wiki.teletypegames.org/hu/engines/rubbs) | `vX.Y.Z` az engines/rubbs-ban |
| `warp_engine` | [WarpEngine](https://wiki.teletypegames.org/hu/engines/warp-engine) | `warp_engine-vX.Y.Z` a services/teletypegames-ben |

Gemenként a tíz legújabb verzió marad meg; a `/rdoc/bbs/latest/` és a `/rdoc/warp_engine/latest/` mindig a legújabbra mutat, és minden oldal tetején a verzióválasztóval lehet váltani köztük.

# A szabály: 100% dokumentált

Mindkét repó `CLAUDE.md`-je kimondja, és a CI ki is kényszeríti: a push elbukik, ha az `rdoc -C` 100% alatti értéket mutat. Minden osztály, modul, konstans, attribútum és publikus vagy protected metódus közvetlenül fölötte RDoc-kommentet kap arról, hogy mit csinál, mit kap, mit ad vissza, mit dob és mit változtat meg. A változtatás oka a commitba megy, nem a kommentbe.

- RDoc-jelölés, nem Markdown vagy YARD: `+szó+`, tt-tag több szóhoz, `*félkövér*`, `_kiemelés_`, címkés lista a paraméterekhez, példa behúzott blokkban.
- Nincs `:nodoc:` a szám kedvéért; ami nem része az API-nak, az `private` lesz.
- A teletypegames monorepóban a metódustörzsekben továbbra is él a komment nélküli szabály; a definíció fölötti RDoc-komment az egyetlen kivétel, és csak a `libs/ruby/warp_engine` alatt.

# Hogyan kerül ide

1. A kiadási tag lefuttatja a gem pipeline-ját: tesztek, lefedettségi kapu, majd az `rdoc` megépíti a HTML-t és egy `meta.json`-t (verzió, commit, dátum, lefedettség).
2. A pipeline feltölti az `rdoc.tar.gz`-t Gitea generic csomagként az engines orgba, a gem nevén `-rdoc` végződéssel.
3. A Gitea csomag-webhookja meghívja a wiki-fetchert (`/rdoc-hook`), amely tízpercenként magától is ránéz. Kicsomagolja az új verziót, ráteszi a wiki arculatát, átállítja a `latest`-et és újraírja a `/rdoc/index.json`-t.
4. A fenti táblázat a böngészőben olvassa ezt az indexet, a motoroldalak pedig a `latest` címre linkelnek, így kiadáskor egy wikioldalt sem kell szerkeszteni.

Ha egy RDoc-kör elbukik, a wiki-fetcher `/health`-je piros lesz. Részletek: `fetcher/README.md` a services/wiki-pages-ben.

# Dokumentálás helyben

```bash
rdoc -C lib                                   # rubbs: lefedettség, kilistázza, mi hiányzik
rdoc -C -x templates app lib                  # warp_engine
rdoc -o /tmp/doc --main README.md lib README.md && open /tmp/doc/index.html
```

Ugyanazt az RDoc-verziót használd, mint a CI (8.1.0, `gem install rdoc -v 8.1.0`): a régebbiek másképp számolják az attribútumokat és a névtereket.

'; 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: [Fejlesztés](https://wiki.teletypegames.org/hu/development.md)
- Previous: [Pixelorama](https://wiki.teletypegames.org/hu/development/pixelorama.md)
- Next: [RoR stílusútmutató](https://wiki.teletypegames.org/hu/development/ror-styleguide.md)
