Rails + Application Template = ext-rails-template

Все наверное видели каркас приложения созданный при помощи команды rails. Лучше чем ничего, но до приложения с минимальным функционалом его надо “точить” и “точить”. Как правило сразу хочется чтобы разрабатываемое приложение имело более-менее привлекательный внешний вид, позволяло ограничить доступ к приватным ресурсам приложения (если есть планы хостить прилжение за пределами локальной сети), имело панель управления приложением (админку) и т.п. Создание такой функциональности, не относящейся напрямую к идеи самого приложения, отнимает много сил и времени.

К счастью в Rails 2.3 появилась поддержка шаблонов приложений (application templates) которые позволяют нарастить каркас Rails приложение после создания. Но хотя с момента её выхода прошло немало времени эта функциональность не пользуется особым спросом (покрайней мере поискав в сети примеры шаблонов приложений я нашел их не больше десятка, а их функциональность оставляет желать лучшего).

Мой проект ext-rails-template это попытка изменить существующую ситуацию и показать что действительно можно сделать что-то полезное используя эту технологию.

Создание нового Rails приложения

Создание нового приложение на основе шаблона ext-rails-template происходит при помощи всем известной команды “rails” с указанием пути к используемому шаблону приложения.

rails <you application name> -m http://github.com/maxd/ext-rails-template/raw/0.0.1/ext_rails_template.rb

После того как команда отработает будет создано новое Rails приложение и git репозиторий в который будут добавлены его исходники.

Остаётся установить недостающие gem-ы

rake gems:install

и инициализировать базу данных

rake db:create
rake db:migrate

Приложение готово к запуску. Запускаем веб-сервер

script/server

и видим главную страницу приложения

Главная страница
Главная страница

Описание функциональности

Я сознательно не буду останавиливаться на детальном обзоре имеющихся возможностей. Код приложения получился довольно простой и я думаю при желании он скажет больше чем я смогу написать в этой небольшой статье. Итак, что же умеет созданное приложение?

Во первых, как вы наверное уже заметили, главная страница отличается от главной страницы создаваемой командой “rails” и имеет двух-колоночную разметку с заголовком и футером. Отображением второй колонки в которой находится сайдбар можно управлять.

В качестве движка для генерации HTML разметки используется HAML, а SASS для генерации CSS. Я добавил несколько стилей чтобы сделать более привлекательным внешний вид форм, за создание которых отвечает плагин formtastic, и таблиц созданных при помощи плагина table_helper.

CSS стили я постарался раздить на две группы:

  • стили которые отвечают за внешний вид элементов приложения. Они находятся в директории public/stylesheets/sass/themes.
  • стили которые отвечают за расположение (layout) основных элементов приложения. Они находятся в директории public/stylesheets/sass.

Главное меню и меню пользователя (что находится в правом верхнем углу) можно настроить по своему усмотрению. За их создание отвечает плагин simple-navigation, а конфигурационные файлы находятся в директории config/navigation.

В приложение проинтегрированы механизмы авторизации и аутентификации построеные на базе плагинов authlogic и acl9. По умолчанию создаётся один аккаунт с правами администратора (login: admin, password: admin)

Панель управления
Панель управления

Панель управления приложением имеет две вкладки. Первая вкладка “Dashboard” предназначается для вывода информации которая может быть важна для администратора приложения. Вторая “Accounts” содержит список зарегистрированных аккаунтов и небольшой набор действий для управления ими. Пока на этом возможности панели управления заканчиваются.

Ещё стоит добавить что для функциональности связанной с авторизацией и аутентификацией имеются функциональные тесты созданные при помощи cucumber.

Заключение

Я надеюсь что кому-нибудь этот шаблон окажется полезным. Покрайней мере я его точно буду использовать и развивать. И скорее всего в будущем приведу несколько своих проектов созданных с его помощью. Добавлю что если у вас возникли какие-то пожелания по его улучшению или вы найдёте какие нибудь ошибки - пишите.

Будь всегда в курсе последних новостей блога подписавшись на новости
в формате RSS. Присоединяйся!
* * *

Комментарии

* * *

Добавить новый комментарий

Доступные BB теги

*

* (не будет опубликован)

(если есть)

  • Multi CAPTCHA Refresh2
  • *

1. Проверьте комментарий перед отправкой
2. Все комментарии проходят модерацию перед публикацией в блоге