Программирование на языке Ruby
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Фултон Хэл
Год издания: 2009
Кол-во страниц: 688
Дополнительно
Вид издания:
Монография
Уровень образования:
ВО - Магистратура
ISBN: 5-94074-357-9
Артикул: 615785.01.99
К покупке доступен более свежий выпуск
Перейти
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Хэл Фултон Программирование на языке Ruby Москва
The Ruby Way, Second Edition Hal Fulton Addison Wesley Upper Saddle River, NJ • Boston • Indianapolis • San Francisco NewYork ♦ Toronto ♦ Montreal ♦ London ♦ Munich ♦ Paris ♦ Madrid Capetown ♦ Sydney ♦ Tokyo ♦ Singapore ♦ Mexico City
Программирование на языке Ruby Хэл Фултон Москва
УДК 004.438 ББК 32.973.26-018.2 Фултон X. Ф94 Программирование на языке Ruby. - М.: ДМК Пресс. - 688 с. : ил. ISBN 5-94074-357-9 Ruby - относительно новый объектно-ориентированный язык, разработанный Юкихиро Мацумото в 1995 году и позаимствовавший некоторые особенности у языков LISP, Smalltalk, Perl, CLU и других. Язык активно развивается и применяется в самых разных областях: от системного администрирования до разработки сложных динамических сайтов. Книга является полноценным руководством по Ruby - ее можно использовать и как учебник, и как справочник, и как сборник ответов на вопросы типа «как сделать то или иное в Ruby». В ней приведено свыше 400 примеров, разбитых по различным аспектам программирования, и к которым автор дает обстоятельные комментарии. Издание предназначено для программистов самого широкого круга и самой разной квалификации, желающих научиться качественно и профессионально работать на Ruby. УДК 004.438 ББК 32.973.26-018.2 Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without prior written permission the publisher. For information on getting permission for reprints and excerpts, contact permission@peachpit.com. RUSSIAN language edition published by DMK PUBLISHERS, Copyright © 2007. ISBN 0672328844 ISBN 5-94074-357-9 Copyright © Pearson Education, Inc. © Оформление, ДМК Пресс
Содержание Предисловие.......................................... 12 Обавторе............................................. 17 Введение............................................. 18 О втором издании....................................18 Как организована эта книга..........................21 Об исходныхтекстах, приведенных в книге.............23 «Путь Ruby».........................................24 Глава 1. Обзор Ruby...................................29 1.1. Введение в объектно-ориентированное программирование...................................30 1.2. Базовый синтаксис и семантика Ruby.............35 1.3. ООПвRuby.......................................48 1.4. Динамические аспекты Ruby......................57 1.5. Потренируйте свою интуицию: что следует запомнить.61 1.6. Жаргон Ruby....................................76 1.7. Заключение.....................................79 Глава 2. Строки.......................................80 2.1. Представление обычных строк....................80 2.2. Альтернативная нотация для представления строк.81 2.3. Встроенныедокументы 2.4. Получениедлины строки..........................83 2.5. Построчная обработка...........................83 2.6. Побайтовая обработка...........................84 2.7. Специализированное сравнение строк.............84 2.8. Разбиение строки налексемы.....................85 2.9. Форматирование строк...........................87 2.10. Строки в качестве объектов ввода/вывода.......87 2.11. Управление регистром..........................88 2.12. Вычленение и замена подстрок..................88 2.13. Подстановкавстроках...........................90 2.14. Поисквстроке..................................91
Содержание 2.15. Преобразование символов в коды ASCII и обратно......92 2.16. Явные и неявные преобразования..................92 2.17. Дописывание в конец строки......................94 2.18. Удаление хвостовых символов новой строки и прочих...94 2.19. Удаление лишних пропусков.......................95 2.20. Повтор строк....................................96 2.21. Включение выражений в строку....................96 2.22. Отложенная интерполяция.........................96 2.23. Разборданных, разделенныхзапятыми...............97 2.24. Преобразование строки в число (десятичное или иное).98 2.25. Кодирование и декодирование строк в кодировке rot13.99 2.26. Шифрование строк...............................100 2.27. Сжатие строк...................................101 2.28. Подсчет числа символов в строке................101 2.29. Обращение строки...............................102 2.30. Удаление дубликатов............................102 2.31. Удаление заданных символов.....................102 2.32. Печать специальных символов....................102 2.33. Генерирование последовательности строк.........103 2.34. Вычисление 32-разрядного CRC...................103 2.35. Вычисление МО5-свертки строки..................104 2.36. Вычисление расстоянияЛевенштейна между двумя строками.................................105 2.37. Ьаэе64-кодирование и декодирование.............106 2.38. Кодирование и декодирование строк (uuencode/uudecode)..................................107 2.39. Замена символов табуляции пробелами и сворачивание пробелов в табуляторы.................107 2.40. Цитированиетекста..............................108 2.41. Заключение.....................................109 Глава 3. Регулярные выражения..........................110 3.1. Синтаксис регулярных выражений..................110 3.2. Компиляция регулярных выражений.................112 3.3. Экранирование специальных символов..............113 3.4. Якоря...........................................113 3.5. Кванторы........................................114 3.6. Позитивное и негативное заглядывание вперед.....116 3.7. Обратные ссылки.................................117 3.8. Классы символов.................................119 3.9. Обобщенные регулярные выражения.................120
Содержание Hill 7 3.10. Сопоставлениеточки символу конца строки.......121 3.11. Внутренние модификаторы.......................122 3.12. Внутренние подвыражения.......................122 3.13. ИиЬуи Oniguruma...............................123 3.14. Примеры регулярных выражений..................129 3.15. Заключение....................................133 Глава 4. Интернационализация в Ruby...................134 4.1. Исторические сведения и терминология...........135 4.2. Кодировки в пост-ASCII мире....................139 4.3. Справочники сообщений..........................150 4.4. Заключение.....................................157 Глава 5. Численные методы.............................158 5.1. Представление чисел в языке Ruby...............158 5.2. Основные операции над числами..................159 5.3. Округление чисел с плавающей точкой............160 5.4. Сравнение чисел с плавающей точкой.............162 5.5. Форматирование чисел для вывода................163 5.6. Вставка разделителей при форматировании чисел..163 5.7. Работа с очень большими числами................164 5.8. Использованиекласса BigDecimal.................164 5.9. Работа с рациональными числами.................166 5.10. Перемножение матриц...........................167 5.11. Комплексные числа.............................171 5.12. Библиотека mathn..............................172 5.13. Разложение на простые множители, вычисление НОД и НОК................................172 5.14. Простыечисла..................................173 5.15. Явные и неявные преобразования чисел..........174 5.16. Приведениечисловыхзначений....................175 5.17. Поразрядные операции над числами..............176 5.18. Преобразование системы счисления..............177 5.19. Извлечение кубических корней, корней четвертой степени ит. д......................178 5.20. Определение порядка байтов....................178 5.21. Численное вычисление определенного интеграла..179 5.22. Тригонометрия в градусах, радианах и градах...180 5.23. Неэлементарная тригонометрия..................181 5.24. Вычисление логарифмов по произвольному основанию... 182 5.25. Вычисление среднего, медианы и моды набораданных ...182
Содержание 5.26. Дисперсия и стандартное отклонение...............183 5.27. Вычисление коэффициента корреляции...............184 5.28. Генерирование случайных чисел....................185 5.29. Кэширование функций с помощью метода memoize....186 5.30. Заключение.......................................187 Глава 6. Символы и диапазоны ............................188 6.1. Символы...........................................188 6.2. Диапазоны.........................................192 6.3. Заключение........................................200 Глава 7. Дата и время....................................202 7.1. Определение текущего момента времени..............203 7.2. Работа с конкретными датами (после точки отсчета).203 7.3. Определение дня недели............................204 7.4. Определениедаты Пасхи.............................204 7.5. Вычисление n-ого дня недели в месяце..............205 7.6. Преобразование из секунд в более крупные единицы.206 7.7. Вычисление промежутка времени, прошедшего от точки отсчета.........................207 7.8. Високосныесекунды.................................207 7.9. Определение порядкового номера дня в году.........208 7.10. Контрольдаты и времени...........................208 7.11. Определение недели в году........................209 7.12. Проверка года на високосность....................210 7.13. Определение часового пояса.......................210 7.14. Манипулирование временем без даты................211 7.15. Сравнение моментов времени.......................211 7.16. Прибавление интервала к моменту времени..........211 7.17. Вычисление разности междудвумя моментами времени.............................................212 7.18. Работа с конкретными датами (до точки отсчета)...212 7.19. Взаимные преобразования объектов Date, Time и DateTime....................................213 7.20. Извлечение даты и времени из строки..............214 7.21. Форматирование и печать даты и времени...........215 7.22. Преобразование часовых поясов....................216 7.23. Определение числа дней в месяце..................216 7.24. Разбиение месяца на недели.......................216 7.25. Заключение.......................................218
Содержание 9 Глава 8. Массивы, хэши и другие перечисляемые структуры...................219 8.1. Массивы.......................................219 8.2. Хэши..........................................242 8.3. Перечисляемыеструктуры вобщем.................252 8.4. Заключение....................................259 Глава 9. Более сложные структуры данных..............260 9.1. Множества.....................................260 9.2. Стеки и очереди...............................263 9.3. Деревья.......................................268 9.4. Графы.........................................274 9.5. Заключение....................................280 Глава 10. Ввод/вывод и хранение данных...............281 10.1. Файлы и каталоги.............................282 10.2. Доступ кданным более высокого уровня.........306 10.3. Библиотека KirbyBase.........................314 10.4. Подключение к внешним базам данных...........317 10.5. Заключение...................................329 Глава 11. ООП и динамические механизмы в Ruby........330 11.1. Рутинные объектно-ориентированныезадачи......331 11.2. Более сложные механизмы......................356 11.3. Динамические механизмы.......................375 11.4. Заключение...................................395 Глава 12. Графические интерфейсы для Ruby............396 12.1. Ruby/Tk......................................397 12.2. Ruby/GTK2....................................409 12.3. FXRuby(FOX)..................................422 12.4. QtRuby.......................................436 12.5. Другие библиотеки для создания графических интерфейсов...............446 12.6. Заключение...................................447 Глава 13. Потоки в Ruby..............................448 13.1. Создание потоков и манипулирование ими.......449 13.2. Синхронизация потоков........................458 13.3. Заключение...................................473
Содержание Глава 14. Сценарии и системное администрирование......................474 14.1. Запуск внешних программ.....................474 14.2. Флаги и аргументы в командной строке........479 14.3. БиблиотекаЗИеП..............................482 14.4. Переменныеокружения.........................485 14.5. Сценарии на платформе MicrosoftWindows......487 14.6. Моментальный инсталлятордляWindows..........493 14.7. Библиотеки, о которых полезно знать.........494 14.8. Работа с файлами, каталогами и деревьями....495 14.9. Различныесценарии...........................498 14.10. Заключение.................................502 Глава 15. ЯиЬуи форматыданных.......................503 15.1. РазборХМ1_иРЕХМ1_...........................503 15.2. РЗЗиАФт.....................................508 15.3. Обработка изображений с помощью RMagick.....512 15.4. Создание документов в формате PDF с помощью библиотеки PDF::Writer...................521 15.5. Заключение..................................530 Глава 16. Тестирование и отладка....................531 16.1. БиблиотекаTest::Unit........................531 16.2. KомплектинструментовZenTest.................535 16.3. Работасотладчиком Ruby......................538 16.4. Использование irb в качестве отладчика......541 16.5. Измерение покрытия кода.....................542 16.6. Измерениепроизводительности.................543 16.7. Объекты печати..............................547 16.8. Заключение..................................548 Глава 17. Создание пакетов и распространение программ.........................550 17.1. Программа RDoc..............................550 17.2. Установка и подготовка пакета...............555 17.3. RubyForgeиRАА...............................559 17.4. Заключение..................................560 Глава 18. Сетевое программирование...................561 18.1. Сетевые серверы.............................562 18.2. Сетевые клиенты.............................572 18.3. Заключение..................................591
К покупке доступен более свежий выпуск
Перейти