lest, just lest

Заметки о web-разработке, администрировании Linux и настройке Mac OS X

Archive for the ‘ruby’ tag

CKEditor в Ruby on Rails c загрузкой файлов через SWFUpload

2 комментариев

Достаточно часто появляется необходимость предоставить пользователям Вашего web-приложения возможность удобно редактировать содержимое. Для обычного пользователя оптимальным вариантом является использование WYSIWYG html-редактора. Таким решением является редактор CKEditor, интерфейс которого во многом подобен интерфейсам Microsoft Word и OpenOffice Writer.

CKEditor

Плагин rails-ckeditor предназначен для интеграции CKEditor'а в Rails-приложение. Также он включает в себя возможность загрузки изображений и файлов из интерфейса редактора через SWFUpload.

Read the rest of this entry »

Автор: lest

Май 12, 2010 в 7:01 пп

Опубликовано в ruby

Метки: , , , , , ,

Emacs RSpec mode

без комментариев

Второстепенный режим RSpec добавляет в Emacs возможность удобно вести разработку приложений в стиле BDD (Behaviour Driven Development) с использованием библиотеки для тестирования RSpec.

Пример работы RSpec mode можно увидеть на скриншоте:

Emacs RSpec mode

Read the rest of this entry »

Автор: lest

Май 11, 2010 в 11:16 дп

Опубликовано в emacs

Метки: , , ,

Использование Sinatra внутри Rails Metal

без комментариев

С версии 2.3 в Rails присутствует Rails Metal, который позволяет обработать запросы перед попаданием их в основное приложение. Для более удобного написания кода в Rails Metal можно использовать различные фреймворки, базирующиеся на Rack, в частности фреймворк Sinatra.

Сначала необходимо создать новый Rails Metal с помощью соответствующего генератора:

./script/generate metal MyEmbeddedSinatra
      create  app/metal
      create  app/metal/my_embedded_sinatra.rb

В результате получается следующий Rack обработчик:

Read the rest of this entry »

Автор: lest

Апрель 6, 2010 в 3:32 пп

Опубликовано в ruby

Метки: , , , ,

Cron и Ruby: использование Whenever

без комментариев

Библиотека Whenever предоставляет простой синтаксис для определения cron задач, позволяет вывести или записать crontab файл. Whenever разработана с учетом использования с Rails приложениями и развертывания через Capistrano, но может использоваться и независимо.

Для использования нужно установить гем whenever:

gem install whenever

Read the rest of this entry »

Автор: lest

Март 17, 2010 в 3:23 пп

Опубликовано в ruby

Метки: , , ,

Sinatra и DataMapper: пример сервиса сокращения ссылок

без комментариев

В мире Ruby существует несколько ORM библиотек. Самая популярная библиотека ActiveRecord является и самой тяжелой, к тому же ее не особо удобно использовать вне Rails. Для небольших приложений на фреймворке Sinatra наиболее оптимальным вариантом является библиотека DataMapper, которая не уступает по функциональности, а в некоторых моментах опережает своего главного конкурента.

На примере простого сервиса сокращения ссылок рассмотрим работу с DataMapper внутри Sinatra.

Устанавливаем гемы с DataMapper и адаптером Sqlite к нему:

gem install data_mapper do_sqlite3

DataMapper состоит из нескольких библиотек, использовать будем только некоторые из них:

  • dm-core - ядро DataMapper'а.
  • dm-validations - готовые методы для проверки входных данных.
  • dm-timestamps - автоматическое создание и обновление полей created_at, updated_at.

В app.rb подключим необходимые библиотеки из DataMapper и настроим соединение с базой данных:

Read the rest of this entry »

Автор: lest

Февраль 24, 2010 в 12:26 пп

Опубликовано в ruby

Метки: , , , ,

Запуск web-приложения на Sinatra с Phusion Passenger

без комментариев

На сегодняшний день одним из самых простых способов запуска Rails и Rack web-приложений является Phusion Passenger, представляющий собой модуль для Apache и Nginx. Фреймворк Sinatra базируется на Rack, следовательно, приложения на его основе Passenger способен легко запускать.

Для приложения необходима базовая структура директорий:

APP_DIRECTORY/
  |-- app.rb       < -- непосредственно приложение
  |-- config.ru    <-- Rackup файл для запуска
  |-- public/      <-- директория для статических файлов (картинки, css, javascript)
  |-- tmp/         <-- временная директория

Read the rest of this entry »

Bdoc и Hanna – удобный просмотр документации RubyGems

5 комментариев

Bdoc является простой и удобной заменой для gem server. Bdoc не требует запуска сервера для просмотра документации, так как он генерирует статичный html с навигацией по установленной локально документации.

Установка Bdoc очень проста:

gem install bdoc

Read the rest of this entry »

Автор: lest

Январь 11, 2010 в 10:59 дп

Опубликовано в ruby

Метки: , , , ,

Hello world с помощью Ruby, Sinatra и Haml

2 комментариев

Sinatra является легковесным фреймворком на Ruby, позволяет быстро и легко разрабатывать небольшие web-приложения. В основе фреймворка лежит DSL для простой разработки, что позволяет не отвлекаться на разбор параметров и обработку шаблонов.

Для начала нужны Ruby и Rubygems. Затем необходимо установить Sinatra:

gem install sinatra

В любимом текстовом редакторе (Vim, Emacs, TextMate и т.п.) создаем в новой директории файл app.rb, являющийся web-приложением на Sinatra:

require 'rubygems'
require 'sinatra'

get '/' do
  'Hello world!'
end

Read the rest of this entry »

Автор: lest

Январь 4, 2010 в 8:58 пп

Опубликовано в ruby

Метки: , , ,