Книга: Программирование на языке Ruby

10.1.26. Чтение исходного текста программы

10.1.26. Чтение исходного текста программы

Если вы хотите получить доступ к исходному тексту собственной программы, то можете воспользоваться уже описанным выше трюком (см. раздел 10.1.25).

Глобальная константа DATA — это объект класса IO, ссылающийся на данные, которые расположены после директивы __END__. Но если выполнить метод rewind, то указатель файла будет переустановлен на начало текста программы.

Следующая программа выводит собственный текст, снабжая его номерами строк. Это не очень полезно, но, быть может, вы найдете и другие применения такой техники.

DATA.rewind
num = 1
DATA.each_line do |line|
 puts "#{'%03d' % num} #{line}"
 num += 1
end
__END__

Отметим, что наличие директивы __END__ обязательно — без нее к константе DATA вообще нельзя обратиться.

Оглавление книги

Оглавление статьи/книги

Генерация: 1.613. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз