Программирование на языке Ruby
Шрифт:
Многие предпочитают не RSS, a Atom. Библиотека
15.2.2. Библиотека feedtools
Библиотека
Вот простой пример, эквивалентный первому примеру из предыдущего раздела:
Этот вариант короче и яснее предыдущего. Некоторые вещи не так очевидны, например у объекта
Ниже показано, как читать новости из канала в формате Atom:
Обратите внимание — изменился только сам URL! Это замечательно, поскольку мы можем обрабатывать каналы независимо от формата. Результат, естественно, похож на то, что мы видели раньше:
Хочу еще раз предостеречь вас: не тратьте впустую ресурсы сервера, принадлежащего поставщику канала. Реальное приложение должно кэшировать содержимое канала, а если вы занимаетесь просто тестированием, лучше создайте собственный канал. Библиотека
А теперь добавим к предыдущему примеру еще две строки:
Мы только что преобразовали канал Atom в канал RSS 2.0. А можно было бы вместо этого указать RSS 0.9 или RSS 1.0. Возможно и преобразование в обратном направлении: прочитать новости из RSS-канала и записать их в Atom-канал. Это одна из сильных сторон библиотеки.
Во время работы над книгой текущей версией библиотеки
15.3. Обработка изображений при помощи RMagick
Последние пятнадцать лет на нас обрушивается все больше и больше графической информации. В качестве основного поставщика «услады для глаз» во всех формах компьютеры уже обогнали телевизоры. А значит, программистам приходится манипулировать графическими данными, представленными в различных форматах. На языке Ruby это лучше всего делать с помощью библиотеки RMagick, которую написал Тим Хантер (Tim Hunter).
RMagick — это привязка к Ruby библиотеки ImageMagick (или ее ветви, GraphicsMagick). Устанавливается она как gem-пакет, но для работы нужно еще установить одну из базовых библиотек (IM или GM). Если вы работаете в Linux, то, вероятно, та или другая библиотека уже имеется, а, если нет, можете загрузить ее с сайта(или.
Поскольку RMagick — лишь привязка, то спрашивать, какие графические форматы она поддерживает, — все равно что спрашивать, какие форматы поддерживает базовая библиотека. Все наиболее распространенные, в частности JPG, GIF, PNG, TIFF наряду с десятками других.
То же относится и к операциям, поддерживаемым RMagick. Они ограничены лишь возможностями базовой библиотеки, поскольку RMagick дублирует весь ее API. Кстати говоря, API не только функционально богат, но и и является прекрасным примером API «в духе Ruby»: в нем привычно используются символы, блоки и префиксы методов, так что большинству программистов Ruby он покажется интуитивно очевидным.
Заметим попутно, что API очень объемный. Ни этой главы, ни даже всей книги целиком не хватило бы для рассмотрения всех его деталей. В следующих разделах мы дадим лишь общее представление об RMagick, а полную информацию вы можете найти на сайте проекта .
15.3.1. Типичные графические задачи
Одна из самых простых и распространенных задач, связанных с графическим файлом, — получение характеристик изображения (ширина и высота в пикселях и т.д.). Посмотрим, как можно извлечь эти метаданные.
Рис. 15.1. Два примера изображений
На рис. 15.1 приведены два простых изображения, на которые мы будем ссылаться в этом и последующих примерах. Первое (smallpic.jpg) — просто абстрактная картинка, созданная в графическом редакторе; в ней присутствуют несколько оттенков серого цвета, а также прямые и кривые линии. Второе — фотография старенького автомобиля, которую я сделал в 2002 году в сельском районе Мексики. Для книги оба изображения переведены в черно-белый формат. В листинге 15.6 показано, как извлечь из соответствующих файлов необходимую информацию.
Город гибели
Фантастика:
ужасы и мистика
мистика
рейтинг книги
Жребий брошен
10. Ведун
Фантастика:
фэнтези
рейтинг книги
Параллельные миры
Научно-образовательная:
прочая научная литература
рейтинг книги
Пламенев. Книга IX
9. Пламенев
Фантастика:
аниме
уся
сказочная фантастика
фэнтези
фантастика: прочее
рейтинг книги
Принадлежать им
Любовные романы:
современные любовные романы
рейтинг книги
Досье «ОДЕССА»
Детективы:
политические детективы
рейтинг книги
Изменяющий-Механик. Компиляция. Книги 1-18
Собрание сочинений
Фантастика:
боевая фантастика
космическая фантастика
рейтинг книги
Ученик
1. Ученик
Фантастика:
фэнтези
рейтинг книги
Путь Князя. Возрождение. Часть I
6. Путь князя
Фантастика:
рпг
попаданцы
рейтинг книги
Второгодка. Книга 3. Ученье свет
3. Второгодка
Фантастика:
городское фэнтези
сказочная фантастика
альтернативная история
рейтинг книги
Мастер 6
6. Мастер
Фантастика:
боевая фантастика
попаданцы
аниме
рейтинг книги
Краем глаза
Детективы:
триллеры
рейтинг книги
Целительные силы. Книга 1. Очищение организма и правильное питание. Биосинтез и биоэнергетика
Дом и Семья:
здоровье и красота
рейтинг книги
Тайна Иппокрены
Документальная литература:
критика
рейтинг книги