Ruby имеет Nokogiri , который является отличным парсером HTML / XML.Он поддерживает методы доступа CSS и XPath, что позволяет очень легко перемещаться по DOM анализируемого HTML-файла.
Здание на вершине Нокогири - это Механизация , основанная на Perl WWW :: Mechanize.Это позволяет легко перемещаться по страницам веб-сайта, извлекать поля, заполнять формы и отправлять их, отслеживать файлы cookie и сеансы и т. Д. Поскольку Mechanize построен на основе Nokogiri, вы можете получить доступ к базовому DOM и использовать тот же CSS иСредства доступа XPath.
В Ruby есть несколько различных сред тестирования.Test :: Unit поставляется с Ruby и прост в использовании.Есть также автотест, RSpec, musta и огурец, чтобы назвать пару других.Автотест хорош, потому что он будет следить за вашим каталогом и запускать тесты при изменении файлов, так что вы сразу узнаете, если что-то сломаете.
Я пришел к Ruby из Perl и Java, с C / C ++до тех.Для меня Ruby подобен дочернему элементу Java и Perl, потому что он имеет некоторые сходства с обоими, но в то же время вещи, которые раздражали оба этих языка, приятно обошли стороной Ruby.Это почти как если бы Ruby был логическим ростом или следующим поколением двух других.Я думаю, что это частично является преимуществом задним числом и намерения Мэтца сделать Ruby языком для программистов, а не для машин.
Я пытался изучать Rails параллельно с Ruby, но поймал Rails, когда он изменился с v1 наv2.Все книги были устаревшими и неправильными, большинство веб-сайтов были неправильными, и найти хорошую информацию было сложно.В конце концов я понял, что путаница была в документации, и шесть месяцев отказывался от Rails и сосредоточился на Ruby, ежедневно используя его на работе.Я начал использовать его почти исключительно потому, что смог выразить в нем более лаконично, чем в Perl.Я мог бы писать более лаконично на Perl, но это было не так читабельно, что важно для меня, потому что это помогает сделать код поддерживаемым.
Теперь, несколько лет спустя, я предпочитаю Ruby любому языку, который когда-либо использовал.Я все еще программирую на Perl, но евангелизирую Ruby на работе и использую его в любое время, когда мне нужно написать что-то, что касается базы данных, из-за Sequel , или для записи веб-интерфейсов в базы данных с использованием Rails, Синатра или Падрино в сочетании с ХАМЛ .