Any dramatic series the producers want us to take seriously as a representation of contemporary reality cannot be taken seriously as a representation of anything - except a show to be ignored by anyone capable of sitting upright in a chair and chewing gum simultaneously. -- Richard Schickel
Для того, чтобы сделать простой грабер или кролер, использую РНР нужно совсем немного: легкое знание самого РНР и поддержка cURLlibвеб-сервером. Итак, приступаем к написанию кода.
В начале нужно создать РНР класс, который будет выполнять задачу по сбору данных.В нашем случае, кроллер будет собирать emailадреса со веб-страниц в Иитернете. Задача вполне реальная и часто востребованная.:-)
Пишем:
class EmailAgent { //названиекласса
private $headers;//cURLheaders– переменная, которая будет содержать специальные //настройкидля работы cURLlib
private $agent;//имя броузера,который будет эмулировать наш кроллер.
private $data; //полученные кроллером данные,
private $template; //шаблон для настройки регулярных выражений
private $geturl; //URLвеб –страницы,с которой будем получать данные
Создание файлов PDF файлов в приложениях Ruby on Rails
Динамическая генерация PDF файлов очень полезна, когда нужно создать файл отчета илисохранить данные в удобном виде. Для этого существует такой плагин в Ruby on Rails «pdf-writer». Итак, разберемся как с ним работать. 1. Установим его в приложение. Для этого нужно ввести команду «gem install pdf-writer» C:\myproject>gem install pdf-writer Successfully installed pdf-writer-1.1.8 1 gem installed Installing ri documentation for pdf-writer-1.1.8... Installing RDoc documentation for pdf-writer-1.1.8... 2. После установки, необходимо отредактировать файл «environment.rb»
И поместить в него такие строки:
require 'pdf/writer'
Mime::Type.register 'application/pdf', :pdf
Первая подключает этот плагин к нашему приложению, а вторая устанавливает новый тип данных Mime, с которыми оно будет работать. 3. На конец, самое главное,- собственно генератор PDF файлов в приложении. В файле app/controllers/application.rb пишем вспомогательный метод:
def render_to_pdf(options = nil) data = render_to_string(options) pdf = PDF::HTMLDoc.new pdf.set_option :bodycolor, :white pdf.set_option :toc, false pdf.set_option :portrait, true pdf.set_option :links, false pdf.set_option :webpage, true pdf.set_option :left, '2cm' pdf.set_option :right, '2cm' pdf << data pdf.generate end
Этот метод будет использоваться при генерировании PDF файл. Он принимает данные и превращает их в файл.
4. Затем мы редактируем стандартный метод «index» нашего приложения:
def index @goods = Good.find(:all) respond_to do |format| format.html format.xml { head :ok } format.pdf { send_data render_to_pdf({ :action => 'index.rpdf', :layout => 'pdf_report' }) } end end
Здесь мы организуем форматирование данных, получаемых из базы и перенапрваляем выход во вновь созданный вспомогательный метод «render_to_pdf».
5. Далее изменим файл вида «index» и вставим в него следующее:
<%= link_to 'PDF', formatted_goods_path(:pdf) %>
Линк вызывает метод контроллера для генерирования PDF документа.
Это все. Теперь, когда пользователь нажмет на вышеуказанный линк, то он получит PDF файл.
Использование поискового движка Ferret в проектах Ruby on Rails.
Практически любом webпроекте сейчас используется поиск как стандартная опция. Мы научимся использовать механизм полнотекстового поиска, который реализован в RubyonRails в плагине Ferret. Это делается очень просто и быстро. Итак, наши дальнейшие шаги будут такие:
1.1. Устанавливаем в проект движок с помощью такой команды в командной строке :
gem install ferret
2.2. Добавляем в классмодели ActiveRecord, в которой и будет производиться поиск следующий код :
class News < ActiveRecord::Base
acts_as_ferret :fields => ['title','body']
end
Этот код активизирует установленный плагин и указывает поля в базе данных, которыебуду использоваться для индексирования.
Использование FileColumn plugin для организации загрузки файлов на сервер в приложении Ruby on Rails
Многие веб приложения предоставляют пользователям возможность загрузки файлов. В RubyonRailsс помощью архитектуры плагинов это можно организовать очень просто и быстро.
Допустим, у нас есть SugarCRMтакая проблема: существует 2 инсталляции SugarCRM,одна из которых старая, а другая новая версии. Нам необходимо перенести данные из старой базы данных MySQLв новую версию и сделать это аккуратно. Нет ничего проще.
1.Создаем копию нужной нам базы данной, с помощью экспорта базы в SQLфайл.
2.В новой инсталляции делаем новую базу данных.
3.Импортируем туда все данные из полученного ранее дампа. Можно использовать любую работаю с MySQLпрограмму или команду «source» в командной строке.
4.Редактируем PHPфайл «/config.php» : меняем имя базы данных, это переменная 'db_name ' в массиве 'dbconfig'.
5.Далее открываем базу данных, находим там таблицу «config»,поле «sugar_version» и вводим туда номер версии новой инсталляции. Например, если там стояло значение «5.0.0», то ставим «5.2.0h».
Это все. Как видите, проблема решается очень просто и быстро.