Download WYSIWYG ®
Gender:
Longevity: 10 years
Posts: 1546
Программирование на языке Ruby, 2-е эл. издание
Год издания : 2019Автор : Фултон ХэлИздательство : ПрофобразованиеISBN : 978-5-4488-0118-1Язык : РусскийФормат : PDFКачество : Отсканированные страницы + слой распознанного текстаКоличество страниц : 685Описание : Ruby - относительно новый объектно-ориентированный язык, разработанный Юкихиро Мацумото в 1995 году и позаимствовавший некоторые особенности у языков LISP, Smalltalk, Perl, CLU и других. Язык активно развивается и применяется в самых разных областях: от системного администрирования до разработки сложных динамических сайтов. Книга является полноценным руководством по Ruby - ее можно использовать и как учебник, и как справочник, и как сборник ответов на вопросы типа "как сделать то или иное в Ruby". В ней приведено свыше 400 примеров, разбитых по различным аспектам программирования, и к которым автор дает обстоятельные комментарии. Издание предназначено для программистов самого широкого круга и самой разной квалификации, желающих научиться качественно и профессионально работать на Ruby.
Оглавление Предисловие .................................................. ........................................... 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. Пре образование символов в коды ASCll и обратно .... .... ................ 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. Сжатие строк .. .... .... .... .... ... .... .... ........ .... .... .... .... .... .... .... ... 1О1 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. Вычисление МD5-свертки строки .. .... .... .... .... .... .... .... .... ... 104 2.36. Вычисление расстояния Левенштейна между двумя строками ... .... .... .... ........ .... .... .... .... .... .... .... ... 105 2.37. Ьаsе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 Содержа н ие .......... 3.10. Сопоставление точки символу конца строки ......... 121 3.1 1. Внутренние модификаторы .. .... .... .... .... .... .... ... .... .... .... ..... 122 3.1 2. Внутренние подвыражения ... .... .... .... .... .... .... ... .... .... .... ..... 122 3.13. Ruby и Oniguruma .. .... .... .... .... .... .... .... .... .... .... ... .... .... .... ..... 123 3.14. Примеры регулярных выражений .. .... .... .... .... ... .... .... .... ............... 129 3.15 . .Заключение ...... .... .... .... .... .... .... .... .... .... .... .... ... .... .... .... ..... 133 Глава 4. Интернационализация в Ruby ..................................................... 134 4.1. Исторические сведения и терминология .... .... ... .... .... .... ............... 135 4.2. Кодировки в пocт-ASCll мире .. .... .... .... .... .... .... ... .... .... .... ..... 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 Глава 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 ... .... .... .... .... .... .... .... .... ... .... .... ......... 3 14 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 . R uby/Тk ..... ........ .... .... .... .... .... .... .... .... .... .... .... ... .... .... .... ..... 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. Библиотека Shell ..... .... .... ... .... .... ........ .... .... .... .... .... .... .... ... 482 14.4. Переменные окружения .. ... .... .... ........ .... .... .... .... .... .... .... .. .485 14.5. Сценарии на платформе Microsoft Windows .... .... .... .... .... ... 487 14.6. Моментальный инсталлятор для Windows ........................ .493 14.7. Библиотеки , о которых полезно знать .... .... .... .... .... .... .... .. .494 14.8. Работа с файлами, каталогами и деревьями .. .... .... .... .... ... 495 14.9. Различные сценарии ... ........ ... .... ........ .... .... .... .... .... .... .... .. .498 14.10. Заключение .. .... .... .... ........ ... .... ........ .... .... .... .... ........ .... ... 502 Глава 15. Ruby и форматы данных .........................................................503 15.1. Разбор XML и REXML ... .... ... .... .... ........ .... .... .... .... .... .... .... ... 503 15.2. RSS и Atom ..... .... .... .... .... ... .... .... ........ .... .... .... .... ........ .... ... 508 15.3. Обработка изображений с помощью RMagick .... .... .... .... .................... 512 15.4. Создание документов в формате PDF с помощью библиотеки PDF::Writer .. .... .... .... .... .... .... .... .... .................... 521 15.5. Заключение .... .... .... .... .... ... .... .... ........ .... .... .... .... .... .... .... ... 530 Глава 16. Тестирование и отладка.............................................................531 16.1. Библиотека Test::Unit .. .... ... .... .... ........ .... .... .... .... .... .... .... ... 531 16.2. Компл ект инструментов 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 и RAA ..... .... ........ .... ... ........ .... .... .... .... ........ .... ... 559 17.4. Заключение .... .... .... .... .... ... .... .... .... .... .... .... .... .... .... .... .... ... 560 Глава 18. Сетевое программирование.......................................................... 561 18.1 . Сетевые сер веры .... .... .... ... .... .... ........ .... .... .... .... .... .... .... ... 562 18.2. Сетевые клиенты .... .... ....... .... .... ........ .... .... .... .... .... .... .... ... 572 18.3. Заключение .... .... .... .... .... ... .... .... ........ .... .... .... .... .... .... .... ... 591 Глава 19. Ruby и WеЬ- приложения ...................... ....................................... 592 19.1. П ро граммирование CGI на Ruby ... .... .... .... .... ... .... .... .... ............... 592 19.2. FastCGI ..... .... .... .... .... .... .... .... .... .... .... .... .... .... ... .... .... .... ..... 597 19.3. Ruby on Rails ..... .... .... .... .... .... .... .... .... .... .... .... ... .... .... .... ..... 599 19.4. Разработка WеЬ - приложений с помощью Nitro ..... .... .... ................. 603 19.5. В веден ие в Wее .... .... .... .... .... .... .... .... .... .... .... ... .... .... .... ..... 615 19.6. Разработка WеЬ - приложений с помощью IOWA .... .... .... .................... 617 19.7. Ruby и WеЬ- сервер ... .... .... .... .... .... .... .... .... .... ... .... .... .... ..... 622 19.8. Заключение ...... .... .... .... .... ........ .... .... .... .... .... ... .... .... ......... 629 Глава 20. Распределенный Ruby ......................... .................................... 630 20.1. Обзор: библиотека drb .. .... .... .... .... .... .... .... .... ... .... .... .... ..... 630 20.2. Пример: эмуляция биржевой ленты .. .... .... .... ... .... .... .... .............. 633 20.3. Rinda: пространство кортежей в Ruby ... .... .... ... .... .... ................... 636 20.4. Обнаружение сервисов в распределенном Ruby .. .... .................... 640 20.5. Заключение ...... .... .... .... .... .... .... .... .... .... .... .... ... .... .... .... ..... 641 Глава 21. Инструменты разработки для Ruby ....... . ............................... 642 21.1. Система RubyGems ... .... .... ........ .... .... .... .... .... ... .... .... ......... 642 21.2. Программа Rake ... .... ........ ........ ........ ........ .. ..... .... ..... ........ 644 21.3. Оболочка irb ...... .... .... .... .... .... .... .... .... .... .... .... ... .... .... .... ..... 647 21.4. Утилита ri .. ........ .... .... .... .... .... .... .... .... .... .... .... ... .... .... .... ..... 652 21.5. Поддержка со стороны редакторов ... .... .... .... ... .... .... ......... 653 21.6. Интегрированные среды разработки .... .... .... ... .... .... .... ..... 654 21.7. Заключение .. .... .... .... .... .... .... .... .... .... .... .... .... ... .... .... .... ..... 656 Глава 22. Сообщество пользователей Ruby ............................................... 657 22.1. Ресурсы в Web .. .... .... .... .... ........ .... .... .... .... .... ... .... .... .... ..... 657 22.2. Новостные группы и списки рассылки ... .... .... ... .... .... .... ..... 658 22.3. Блоги и онлайновые журналы ... .... .... .... .... .... ... .... .... .... ..... 658 22.4. Запросы на изменение Ruby ..... .... .... .... .... .... ... .... .... .... ..... 659 22.5. Каналы IRC ....... .... .... .... .... .... .... .... .... .... .... .... ... .... .... .... ..... 659 22.6. Конференции по Ruby ... .... .... .... .... .... .... .... .... ... .... .... .... ..... 659 22.7. Локальные группы пользователей Ruby .... .... ... .... .... .... ..... 660 22.8. Заключение ...... .... .... .... .... ........ .... .... .... .... .... ... .... .... ......... 660 Алфавитный указатель ..................................................................... 662
[only-soft.org].t183873.torrent
Torrent:
Registered [ 2023-08-04 12:00 ]
· 7044796B05938311C319E3C79CAD230CC053B32A
12 KB
Status:
√ checked
Completed:
2 times
Size:
76 MB
Rate:
(Vote: 0 )
Have thanked:
0
Фултон Хэл - Программирование на языке Ruby, 2-е эл. издание [2019, PDF, RUS] download torrent for free and without registration