Ruby Hacking Guide

Table of contents

Some chapters are previews. It means they have not been fully reviewed, some diagrams may be missing and some sentences may be a little rough. But it also means they are in open review, so do not hesitate to address issues.

Part 1: Objects

Part 2: Syntax analysis

Part 3: Evaluation

Part 4: Around the evaluator

About this Guide

This is a new effort to gather efforts to help translate Ruby Hacking Guide into English.

The official support site of the original book is

You can download the version of the source code explained and the tool used in the book from the official support site of the original book.

The original translating project is hosted at RubyForge

Many thanks to RubyForge for hosting us and to Minero AOKI for letting us translate his work.

You can get further information about this project from the archives of rhg-discussion mailing list

Help us!

People who are good at Ruby, C and Japanese or English are needed. Those good at Japanese (native Japanese speakers are of course welcome) can help translate and those good at English (preferably native speakers) can help correct mistakes, and rewrite badly written parts… Knowing Ruby and C well is really a requirement because it helps avoiding many mistranslations and misinterpretations.

People good at making diagrams would also be helpful because there is quite a lot to redo and translators would rather spend their time translating instead of making diagrams.

There have been multiple efforts to translate this book, and we want to see if we can renew efforts by creating an organisation on github. Interested parties can join in by starting a pull request on this repo There is a mostly derelict mailing list at rhg-discussion mailing list feel free to introduce yourself (who you are, your skills, how much free time you have), but we think the best way to propose or send corrections/improvements is to send a pull request. If you start a feature branch along with a pull request at the start of your work then people can comment as you work.

There is an old SVN repo, that is hosted at The RubyForge project page is It has been imported here, and I will attempt to give credit and re-write the SVN/Git history when I can.

As for now the contributors to that repo were: