Книга: Программирование на языке Ruby
Оглавление книги
- Предисловие
- Благодарности
- Об авторе
- Введение
- Глава 1. Обзор Ruby
- 1.1. Введение в объектно-ориентированное программирование
- 1.2. Базовый синтаксис и семантика Ruby
- 1.2.1. Ключевые слова и идентификаторы
- 1.2.2. Комментарии и встроенная документация
- 1.2.3. Константы, переменные и типы
- 1.2.4. Операторы и приоритеты
- 1.2.5. Пример программы
- 1.2.6. Циклы и ветвление
- 1.2.7. Исключения
- 1.3. ООП в Ruby
- 1.3.1. Объекты
- 1.3.2. Встроенные классы
- 1.3.3. Модули и классы-примеси
- 1.3.4. Создание классов
- 1.3.5. Методы и атрибуты
- 1.4. Динамические аспекты Ruby
- 1.4.1. Кодирование во время выполнения
- 1.4.2. Отражение
- 1.4.3. Отсутствующие методы
- 1.4.4 Сборка мусора
- 1.5. Потренируйте свою интуицию: что следует запомнить
- 1.5.1. Синтаксис
- 1.5.2. Перспективы программирования
- 1.5.3. Предложение case в Ruby
- 1.5.4. Рубизмы и идиомы
- 1.5.5. Ориентация на выражения и прочие вопросы
- 1.6. Жаргон Ruby
- 1.7. Заключение
- Глава 2. Строки
- 2.1. Представление обычных строк
- 2.2. Альтернативная нотация для представления строк
- 2.3. Встроенные документы
- 2.4. Получение длины строки
- 2.5. Построчная обработка
- 2.6. Побайтовая обработка
- 2.7. Специализированное сравнение строк
- 2.8. Разбиение строки на лексемы
- 2.9. Форматирование строк
- 2.10. Строки в качестве объектов ввода/вывода
- 2.11. Управление регистром
- 2.12. Вычленение и замена подстрок
- 2.13. Подстановка в строках
- 2.14. Поиск в строке
- 2.15. Преобразование символов в коды ASCII и обратно
- 2.16. Явные и неявные преобразования
- 2.17. Дописывание в конец строки
- 2.18. Удаление хвостовых символов новой строки и прочих
- 2.19. Удаление лишних пропусков
- 2.20. Повтор строк
- 2.21. Включение выражений в строку
- 2.22. Отложенная интерполяция
- 2.23. Разбор данных, разделенных запятыми
- 2.24. Преобразование строки в число (десятичное или иное)
- 2.25. Кодирование и декодирование строк в кодировке rot13
- 2.26. Шифрование строк
- 2.27. Сжатие строк
- 2.28. Подсчет числа символов в строке
- 2.29. Обращение строки
- 2.30. Удаление дубликатов
- 2.31. Удаление заданных символов
- 2.32. Печать специальных символов
- 2.33. Генерирование последовательности строк
- 2.34. Вычисление 32-разрядного CRC
- 2.35. Вычисление МD5-свертки строки
- 2.36. Вычисление расстояния Левенштейна между двумя строками
- 2.37. base64-кодирование и декодирование
- 2.38. Кодирование и декодирование строк (uuencode/uudecode)
- 2.39. Замена символов табуляции пробелами и сворачивание пробелов в табуляторы
- 2.40. Цитирование текста
- 2.41. Заключение
- Глава 3. Регулярные выражения
- 3.1. Синтаксис регулярных выражений
- 3.2. Компиляция регулярных выражений
- 3.3. Экранирование специальных символов
- 3.4. Якоря
- 3.5. Кванторы
- 3.6. Позитивное и негативное заглядывание вперед
- 3.7. Обратные ссылки
- 3.8. Классы символов
- 3.9. Обобщенные регулярные выражения
- 3.10. Сопоставление точки символу конца строки
- 3.11. Внутренние модификаторы
- 3.12. Внутренние подвыражения
- 3.13. Ruby и Oniguruma
- 3.13.1. Проверка наличия Oniguruma
- 3.13.2. Сборка Oniguruma
- 3.13.3. Некоторые новые возможности Oniguruma
- 3.13.4 Позитивное и негативное оглядывание назад
- 3.13.5. Еще о кванторах
- 3.13.6. Именованные соответствия
- 3.13.7. Рекурсия в регулярных выражениях
- 3.14. Примеры регулярных выражений
- 3.14.1. Сопоставление с IP-адресом
- 3.14.2. Сопоставление с парой «ключ-значение»
- 3.14.3. Сопоставление с числами, записанными римскими цифрами
- 3.14.4 Сопоставление с числовыми константами
- 3.14.5 Сопоставление с датой и временем
- 3.14.6. Обнаружение повторяющихся слов в тексте
- 3.14.7. Поиск слов, целиком набранных прописными буквами
- 3.14.8. Сопоставление с номером версии
- 3.14.9. Еще несколько образцов
- 3.15. Заключение
- Глава 4. Интернационализация в Ruby
- 4.1. Исторические сведения и терминология
- 4.2. Кодировки в пост-ASCII мире
- 4.2.1. Библиотека jcode и переменная $KCODE
- 4.2.2. Возвращаясь к строкам и регулярным выражениям
- 4.2.3. Распознавание кодировки
- 4.2.4. Нормализация Unicode-строк
- 4.2.5. Упорядочение строк
- 4.2.6. Преобразование из одной кодировки в другую
- 4.3. Справочники сообщений
- 4.3.1 Исторические сведения и терминология
- 4.3.2. Приступаем к работе со справочниками сообщений
- 4.3.3. Локализация простого приложения
- 4.3.4. Прочие замечания
- 4.4. Заключение
- Глава 5. Численные методы
- 5.1. Представление чисел в языке Ruby
- 5.2. Основные операции над числами
- 5.3. Округление чисел с плавающей точкой
- 5.4. Сравнение чисел с плавающей точкой
- 5.5. Форматирование чисел для вывода
- 5.6. Вставка разделителей при форматировании чисел
- 5.7. Работа с очень большими числами
- 5.8. Использование класса BigDecimal
- 5.9. Работа с рациональными числами
- 5.10. Перемножение матриц
- 5.11. Комплексные числа
- 5.12. Библиотека mathn
- 5.13. Разложение на простые множители, вычисление НОД и НОК
- 5.14. Простые числа
- 5.15. Явные и неявные преобразования чисел
- 5.16. Приведение числовых значений
- 5.17. Поразрядные операции над числами
- 5.18. Преобразование системы счисления
- 5.19. Извлечение кубических корней, корней четвертой степени и т.д.
- 5.20. Определение порядка байтов
- 5.21. Численное вычисление определенного интеграла
- 5.22. Тригонометрия в градусах, радианах и градах
- 5.23. Неэлементарная тригонометрия
- 5.24. Вычисление логарифмов по произвольному основанию
- 5.25. Вычисление среднего, медианы и моды набора данных
- 5.26. Дисперсия и стандартное отклонение
- 5.27. Вычисление коэффициента корреляции
- 5.28. Генерирование случайных чисел
- 5.29. Кэширование функций с помощью метода memoize
- 5.30. Заключение
- Глава 6. Символы и диапазоны
- 6.1. Символы
- 6.1.1. Символы как перечисления
- 6.1.2. Символы как метазначения
- 6.1.3. Символы, переменные и методы
- 6.1.4. Преобразование строки в символ и обратно
- 6.2. Диапазоны
- 6.2.1. Открытые и замкнутые диапазоны
- 6.2.2. Нахождение границ диапазона
- 6.2.3. Обход диапазона
- 6.2.4. Проверка принадлежности диапазону
- 6.2.5. Преобразование в массив
- 6.2.6. Обратные диапазоны
- 6.2.7. Оператор переключения
- 6.2.8. Нестандартные диапазоны
- 6.3. Заключение
- Глава 7. Дата и время
- 7.1. Определение текущего момента времени
- 7.2. Работа с конкретными датами (после точки отсчета)
- 7.3. Определение дня недели
- 7.4. Определение даты Пасхи
- 7.5. Вычисление n-ого дня недели в месяце
- 7.6. Преобразование из секунд в более крупные единицы
- 7.7. Вычисление промежутка времени, прошедшего от точки отсчета
- 7.8. Високосные секунды
- 7.9. Определение порядкового номера дня в году
- 7.10. Контроль даты и времени
- 7.11. Определение недели в году
- 7.12. Проверка года на високосность
- 7.13. Определение часового пояса
- 7.14. Манипулирование временем без даты
- 7.15 Сравнение моментов времени
- 7.16 Прибавление интервала к моменту времени
- 7.17. Вычисление разности между двумя моментами времени
- 7.18. Работа с конкретными датами (до точки отсчета)
- 7.19. Взаимные преобразования объектов Date, Time и DateTime
- 7.20. Извлечение даты и времени из строки
- 7.21. Форматирование и печать даты и времени
- 7.22. Преобразование часовых поясов
- 7.23. Определение числа дней в месяце
- 7.24. Разбиение месяца на недели
- 7.25. Заключение
- Глава 8. Массивы, хэши и другие перечисляемые структуры
- 8.1. Массивы
- 8.1.1. Создание и инициализация массива
- 8.1.2. Доступ к элементам массива и присваивание им значений
- 8.1.3. Определение размера массива
- 8.1.4. Сравнение массивов
- 8.1.5. Сортировка массива
- 8.1.6. Выборка из массива по заданному критерию
- 8.1.7. Специализированные функции индексирования
- 8.1.8. Реализация разреженной матрицы
- 8.1.9. Массивы как математические множества
- 8.1.10. Рандомизация массива
- 8.1.11. Многомерные массивы
- 8.1.12. Нахождение элементов, принадлежащих одному массиву и не принадлежащих другому
- 8.1.13. Преобразование или отображение массивов
- 8.1.14. Удаление из массива элементов равных nil
- 8.1.15. Удаление заданных элементов из массива
- 8.1.16. Конкатенирование массивов и добавление в конец массива
- 8.1.17. Использование массива в качестве стека или очереди
- 8.1.18. Обход массива
- 8.1.19. Преобразование массива в строку с разделителями
- 8.1.20. Обращение массива
- 8.1.21. Удаление дубликатов из массива
- 8.1.22. Чередование массивов
- 8.1.23. Вычисление частоты различных значений в массиве
- 8.1.24. Инвертирование массива для получения хэша
- 8.1.25. Синхронная сортировка нескольких массивов
- 8.1.26. Указание значения по умолчанию для новых элементов массива
- 8.2. Хэши
- 8.2.1. Создание нового хэша
- 8.2.2. Указание значения по умолчанию для хэша
- 8.2.3. Доступ к парам ключ-значение и добавление новых пар
- 8.2.4. Удаление пар ключ-значение
- 8.2.5. Обход хэша
- 8.2.6. Инвертирование хэша
- 8.2.7. Поиск ключей и значений в хэше
- 8.2.8. Копирование хэша в массив
- 8.2.9. Выборка пар ключ-значение по заданному критерию
- 8.2.10. Сортировка хэша
- 8.2.11. Объединение двух хэшей
- 8.2.12. Создание хэша из массива
- 8.2.13. Вычисление разности и пересечения хэшей
- 8.2.14. Хэш как разреженная матрица
- 8.2.15. Реализация хэша с повторяющимися ключами
- 8.3. Перечисляемые структуры в общем
- 8.3.1. Метод inject
- 8.3.2. Кванторы
- 8.3.3. Метод partition
- 8.3.4. Обход с группировкой
- 8.3.5. Преобразование в массив или множество
- 8.3.6. Энумераторы
- 8.3.7. Объекты-генераторы
- 8.4. Заключение
- Глава 9. Более сложные структуры данных
- 9.1. Множества
- 9.2. Стеки и очереди
- 9.2.1. Более строгая реализация стека
- 9.2.2. Обнаружение несбалансированных скобок
- 9.2.3. Стек и рекурсия
- 9.2.4. Более строгая реализация очереди
- 9.3. Деревья
- 9.3.1. Реализация двоичного дерева
- 9.3.2. Сортировка с помощью двоичного дерева
- 9.3.3. Использование двоичного дерева как справочной таблицы
- 9.3.4. Преобразование дерева в строку или массив
- 9.4. Графы
- 9.4.1. Реализация графа в виде матрицы смежности
- 9.4.2. Является ли граф связным?
- 9.4.3. Есть ли в графе эйлеров цикл?
- 9.4.4. Есть ли в графе эйлеров путь?
- 9.4.5. Инструменты для работы с графами в Ruby
- 9.5. Заключение
- Глава 10. Ввод/вывод и хранение данных
- 10.1. Файлы и каталоги
- 10.1.1. Открытие и закрытие файлов
- 10.1.2. Обновление файла
- 10.1.3. Дописывание в конец файла
- 10.1.4. Прямой доступ к файлу
- 10.1.5. Работа с двоичными файлами
- 10.1.6. Блокировка файлов
- 10.1.7. Простой ввод/вывод
- 10.1.8. Буферизованный и небуферизованный ввод/вывод
- 10.1.9. Манипулирование правами владения и разрешениями на доступ к файлу
- 10.1.10. Получение и установка временных штампов
- 10.1.11. Проверка существования и получение размера файла
- 10.1.12. Опрос специальных свойств файла
- 10.1.13. Каналы
- 10.1.14. Специальные операции ввода/вывода
- 10.1.15. Неблокирующий ввод/вывод
- 10.1.16. Применение метода readpartial
- 10.1.17. Манипулирование путевыми именами
- 10.1.18. Класс Pathname
- 10.1.19. Манипулирование файлами на уровне команд
- 10.1.20. Ввод символов с клавиатуры
- 10.1.21. Чтение всего файла в память
- 10.1.22. Построчное чтение из файла
- 10.1.23. Побайтное чтение из файла
- 10.1.24. Работа со строкой как с файлом
- 10.1.25. Чтение данных, встроенных в текст программы
- 10.1.26. Чтение исходного текста программы
- 10.1.27. Работа с временными файлами
- 10.1.28. Получение и изменение текущего каталога
- 10.1.29. Изменение текущего корня
- 10.1.30. Обход каталога
- 10.1.31. Получение содержимого каталога
- 10.1.32. Создание цепочки каталогов
- 10.1.33. Рекурсивное удаление каталога
- 10.1.34. Поиск файлов и каталогов
- 10.2. Доступ к данным более высокого уровня
- 10.2.1. Простой маршалинг
- 10.2.2. Более сложный маршалинг
- 10.2.3. Ограниченное «глубокое копирование» в ходе маршалинга
- 10.2.4. Обеспечение устойчивости объектов с помощью библиотеки PStore
- 10.2.5. Работа с данными в формате CSV
- 10.2.6. Маршалинг в формате YAML
- 10.2.7. Преобладающие объекты и библиотека Madeleine
- 10.2.8. Библиотека DBM
- 10.3. Библиотека KirbyBase
- 10.4. Подключение к внешним базам данных
- 10.4.1. Интерфейс с SQLite
- 10.4.2. Интерфейс с MySQL
- 10.4.3. Интерфейс с PostgreSQL
- 10.4.4. Интерфейс с LDAP
- 10.4.5. Интерфейс с Oracle
- 10.4.6. Обертка вокруг DBI
- 10.4.7. Объектно-реляционные отображения (ORM)
- 10.5. Заключение
- Глава 11. ООП и динамические механизмы в Ruby
- 11.1. Рутинные объектно-ориентированные задачи
- 11.1.1. Применение нескольких конструкторов
- 11.1.2. Создание атрибутов экземпляра
- 11.1.3. Более сложные конструкторы
- 11.1.4. Создание атрибутов и методов уровня класса
- 11.1.5. Наследование суперклассу
- 11.1.6. Опрос класса объекта
- 11.1.7. Проверка объектов на равенство
- 11.1.8. Управление доступом к методам
- 11.1.9. Копирование объектов
- 11.1.10. Метод initialize_copy
- 11.1.11. Метод allocate
- 11.1.12. Модули
- 11.1.13. Трансформация или преобразование объектов
- 11.1.14. Классы, содержащие только данные (Struct)
- 11.1.15. Замораживание объектов
- 11.2. Более сложные механизмы
- 11.2.1. Отправка объекту явного сообщения
- 11.2.2. Специализация отдельного объекта
- 11.2.3. Вложенные классы и модули
- 11.2.4. Создание параметрических классов
- 11.2.5. Использование продолжений для реализации генератора
- 11.2.6. Хранение кода в виде объекта
- 11.2.7. Как работает включение модулей?
- 11.2.8. Опознание параметров, заданных по умолчанию
- 11.2.9. Делегирование или перенаправление
- 11.2.10. Автоматическое определение методов чтения и установки на уровне класса
- 11.2.11. Поддержка различных стилей программирования
- 11.3. Динамические механизмы
- 11.3.1. Динамическая интерпретация кода
- 11.3.2. Метод const_get
- 11.3.3. Динамическое создание экземпляра класса, заданного своим именем
- 11.3.4. Получение и установка переменных экземпляра
- 11.3.5. Метод define_method
- 11.3.6. Метод const_missing
- 11.3.7. Удаление определений
- 11.3.8. Получение списка определенных сущностей
- 11.3.9. Просмотр стека вызовов
- 11.3.10. Мониторинг выполнения программы
- 11.3.11. Обход пространства объектов
- 11.3.12. Обработка вызовов несуществующих методов
- 11.3.13. Отслеживание изменений в определении класса или объекта
- 11.3.14. Определение чистильщиков для объектов
- 11.4. Заключение
- Глава 12. Графические интерфейсы для Ruby
- 12.1. Ruby/Tk
- 12.1.1. Обзор
- 12.1.2. Простое оконное приложение
- 12.1.3. Кнопки
- 12.1.4. Текстовые поля
- 12.1.5. Прочие виджеты
- 12.1.6. Дополнительные замечания
- 12.2. Ruby/GTK2
- 12.2.1. Обзор
- 12.2.2. Простое оконное приложение
- 12.2.3. Кнопки
- 12.2.4. Текстовые поля
- 12.2.5. Прочие виджеты
- 12.2.6. Дополнительные замечания
- 12.3. FXRuby (FOX)
- 12.3.1. Обзор
- 12.3.2. Простое оконное приложение
- 12.3.3. Кнопки
- 12.3.4. Текстовые поля
- 12.3.5. Прочие виджеты
- 12.3.6. Дополнительные замечания
- 12.4. QtRuby
- 12.4.1. Обзор
- 12.4.2. Простое оконное приложение
- 12.4.3. Кнопки
- 12.4.4. Текстовые поля
- 12.4.5. Прочие виджеты
- 12.4.6. Дополнительные замечания
- 12.5. Другие библиотеки для создания графических интерфейсов
- 12.6. Заключение
- Глава 13. Потоки в Ruby
- 13.1. Создание потоков и манипулирование ими
- 13.1.1. Создание потоков
- 13.1.2. Доступ к локальным переменным потока
- 13.1.3. Опрос и изменение состояния потока
- 13.1.4. Назначение рандеву (и получение возвращенного значения)
- 13.1.5. Обработка исключений
- 13.1.6. Группы потоков
- 13.2. Синхронизация потоков
- 13.2.1. Синхронизация с помощью критических секций
- 13.2.2. Синхронизация доступа к ресурсам (mutex.rb)
- 13.2.3. Предопределенные классы синхронизированных очередей
- 13.2.4. Условные переменные
- 13.2.5. Другие способы синхронизации
- 13.2.6. Тайм-аут при выполнении операций
- 13.2.7. Ожидание события
- 13.2.8. Продолжение обработки во время ввода/вывода
- 13.2.9. Реализация параллельных итераторов
- 13.2.10. Параллельное рекурсивное удаление
- 13.3. Заключение
- Глава 14. Сценарии и системное администрирование
- 14.1. Запуск внешних программ
- 14.1.1. Методы system и exec
- 14.1.2. Перехват вывода программы
- 14.1.3. Манипулирование процессами
- 14.1.4. Стандартный ввод и вывод
- 14.2. Флаги и аргументы в командной строке
- 14.3. Библиотека Shell
- 14.3.1. Использование библиотеки Shell для перенаправления ввода/вывода
- 14.3.2. Дополнительные замечания по поводу библиотеки shell.rb
- 14.4. Переменные окружения
- 14.4.1. Чтение и установка переменных окружения
- 14.4.2. Хранение переменных окружения в виде массива или хэша
- 14.4.3. Импорт переменных окружения как глобальных переменных
- 14.5. Сценарии на платформе Microsoft Windows
- 14.6. Моментальный инсталлятор для Windows
- 14.7. Библиотеки, о которых полезно знать
- 14.8. Работа с файлами, каталогами и деревьями
- 14.8.1. Несколько слов о текстовых фильтрах
- 14.8.2. Копирование дерева каталогов (с символическими ссылками)
- 14.8.3. Удаление файлов по времени модификации и другим критериям
- 14.8.4. Вычисление свободного места на диске
- 14.9. Различные сценарии
- 14.9.1. Ruby в виде одного файла
- 14.9.2. Подача входных данных Ruby по конвейеру
- 14.9.3. Получение и установка кодов завершения
- 14.9.4. Работает ли Ruby в интерактивном режиме?
- 14.9.5. Определение текущей платформы или операционной системы
- 14.9.6. Модуль Etc
- 14.10. Заключение
- Глава 15. Ruby и форматы данных
- 15.1. Разбор XML и REXML
- 15.2. RSS и Atom
- 15.3. Обработка изображений при помощи RMagick
- 15.3.1. Типичные графические задачи
- 15.3.2. Специальные эффекты и трансформации
- 15.3.3. API рисования
- 15.4. Создание документов в формате PDF с помощью библиотеки PDF::Writer
- 15.5. Заключение
- Глава 16. Тестирование и отладка
- 16.1. Библиотека Test::Unit
- 16.2. Комплект инструментов ZenTest
- 16.3. Работа с отладчиком Ruby
- 16.4. Использование irb в качестве отладчика
- 16.5. Измерение покрытия кода
- 16.6. Измерение производительности
- 16.7. Объекты печати
- 16.8. Заключение
- Глава 17. Создание пакетов и распространение программ
- Глава 18. Сетевое программирование
- 18.1. Сетевые серверы
- 18.1.1. Простой сервер: время дня
- 18.1.2. Реализация многопоточного сервера
- 18.1.3. Пример: сервер для игры в шахматы по сети
- 18.2. Сетевые клиенты
- 18.2.1. Получение истинно случайных чисел из Web
- 18.2.2. Запрос к официальному серверу времени
- 18.2.3. Взаимодействие с РОР-сервером
- 18.2.4. Отправка почты по протоколу SMTP
- 18.2.5. Взаимодействие с IMAP-сервером
- 18.2.6. Кодирование и декодирование вложений
- 18.2.7. Пример: шлюз между почтой и конференциями
- 18.2.8. Получение Web-страницы с известным URL
- 18.2.9. Библиотека Open-URI
- 18.3. Заключение
- Глава 19. Ruby и Web-приложения
- 19.1. Программирование CGI на Ruby
- 19.1.1. Введение в библиотеку cgi.rb
- 19.1.2. Вывод и обработка форм
- 19.1.3. Куки
- 19.1.4. Сеансы пользователей
- 19.2. FastCGI
- 19.3. Ruby on Rails
- 19.3.1. Принципы и техника
- 19.3.2. Тестирование и отладка приложений Rails
- 19.3.3. Базовые расширения
- 19.3.4. Дополнительные инструменты и библиотеки
- 19.4. Разработка Web-приложений с помощью Nitro
- 19.4.1. Создание простого приложения Nitro
- 19.4.2. Nitro и паттерн MVC
- 19.4.3. Nitro и Og
- 19.4.4. Решение типичных для Web-приложений задач в Nitro
- 19.4.5. Прочие детали
- 19.5. Введение в Wee
- 19.6. Разработка Web-приложений с помощью IOWA
- 19.7. Ruby и Web-сервер
- 19.8. Заключение
- Глава 20. Распределенный Ruby
- 20.1. Обзор: библиотека drb
- 20.2. Пример: эмуляция биржевой ленты
- 20.3. Rinda: пространство кортежей в Ruby
- 20.4. Обнаружение сервисов в распределенном Ruby
- 20.5. Заключение
- Глава 21. Инструменты разработки для Ruby
- 21.1. Система RubyGems
- 21.2. Программа Rake
- 21.3. Оболочка irb
- 21.4. Утилита ri
- 21.5. Поддержка со стороны редакторов
- 21.6. Интегрированные среды разработки
- 21.7. Заключение
- Глава 22. Сообщество пользователей Ruby
- 22.1. Ресурсы в Web
- 22.2. Новостные группы и списки рассылки
- 22.3. Блоги и онлайновые журналы
- 22.4. Запросы на изменение Ruby
- 22.5. Каналы IRC
- 22.6. Конференции по Ruby
- 22.7. Локальные группы пользователей Ruby
- 22.8. Заключение
- Сноски из книги
- Содержание книги
- Популярные страницы
Оглавление статьи/книги
- Предисловие
- Благодарности
- Об авторе
- Введение
- Глава 1. Обзор Ruby
- Глава 2. Строки
- Глава 3. Регулярные выражения
- Глава 4. Интернационализация в Ruby
- Глава 5. Численные методы
- Глава 6. Символы и диапазоны
- Глава 7. Дата и время
- Глава 8. Массивы, хэши и другие перечисляемые структуры
- Глава 9. Более сложные структуры данных
- Глава 10. Ввод/вывод и хранение данных
- Глава 11. ООП и динамические механизмы в Ruby
- Глава 12. Графические интерфейсы для Ruby
- Глава 13. Потоки в Ruby
- Глава 14. Сценарии и системное администрирование
- Глава 15. Ruby и форматы данных
- Глава 16. Тестирование и отладка
- Глава 17. Создание пакетов и распространение программ
- Глава 18. Сетевое программирование
- Глава 19. Ruby и Web-приложения
- Глава 20. Распределенный Ruby
- Глава 21. Инструменты разработки для Ruby
- Глава 22. Сообщество пользователей Ruby
- Сноски из книги
- Содержание книги
- Популярные страницы
Похожие страницы
- Глава 1. Обзор Ruby
- 1.1. Введение в объектно-ориентированное программирование
- 1.2. Базовый синтаксис и семантика Ruby
- Программирование на языке Ruby
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- 1.3. ООП в Ruby
- 1.4. Динамические аспекты Ruby
- Программирование на языке Пролог для искусственного интеллекта
- 2. Унарные операции на языке структурированных запросов
- 3. Бинарные операции на языке структурированных запросов
- Листинг 9.2. Сценарий на языке Perl для подмены баннеров и закрытия всплывающих окон
- Глава 15. Программирование на VBA в Word.