Čtenář který je obeznámen s jinými programovacími jazyky většinou zná nějaký systém maker či preprocesor. Makra jsou v makroassemblerech, realizuje je cpp preprocesor jazyka C, v Lispu či Scheme jsou přímo součástí jazyka. Řada jiných jazyků má svůj systém maker či je používána s externím preprocesorem maker jako je například m4. V Ruby žádný takový makrojazyk není, ale stejně jako v Lispu je možné Ruby rozšířit, modifikovat a vytvořit si tak obdobu maker. V povídání o třídách objektů 4.17 – „Objekty a třídy“ jsme již takováto „makra“ použili. Jednalo se o konstruktory přístupových metod k proměnným třídy attr_accesor
, attr_reader
a attr_writer
.
Nyní si ukážeme jak si vytvořit vlastní konstruktory metod podobného druhu.