Snippets
Еще одна полезная пограмма для пользователей OSX - Snippet. Всего за $12.95 можно получить инстумент для хранения своих кодо-наработок с возможностью сорртировки.

Plugins. rails-footnotes, correct-format, custom-err-msg, jrails
Продолжаю тему про рельсовые плагины.
rails-footnotes добавляет в ваше приложение, если оно запущено в development mode некий футер, который содержит в себе выдержку из логов, данные о сессии, куках, переданных параметрах, ссылки для редактирования модели, вьюхи и контроллера, css, javascript итд. Также у вас есть возможность увеличивать количество отображаемых данных.
correct-format - автоматически "причесывает" передаваемую в модель информацию - заменяет в адресах email "," на "ю", изменять автоматом регистр вводимых данных итд. Пример использования:
class User < ActiveRecord::Base
# Make usernames consistently lower case
correct_format_downcase :username
# Replace comma's with periods in email address, and make email address all lower case
correct_format_email :email
# Capitalize first letter of first word, and downcase the rest
correct_format_capitalize :username
# Capitalize all first letters of ALL WORDS in the string
correct_format_capitalize_each :address_line_1, :address_line_2
# UK Postcodes are upper case
correct_format_upcase :postcode
# apply a function to EVERY string field in a record
correct_format_capitalize self.attributes.select{|k, v| self.column_for_attribute(k).type == :string }.map(&:first)
end
custom-err-msg - плагин, позволяющий корректировать вывод сообщений об ошибке. Например если
validates_acceptance_of :accepted_terms, :message => 'Please accept the terms of service'
отобразит "Accepted terms Please accept the terms of service", то с установленным плагином и
validates_acceptance_of :accepted_terms, :message => '^Please accept the terms of service'
сообщение будет отображаться чуть лучше - "Please accept the terms of service"
Ну и последний плагин на сегодня, про который наверняка все уже слышали - jrails, позволяющий легко перейти от использования prototype и script.aculo.us на jquery.
tig

tig - полезный инструмент для тех кто пользуется git. Это git-клиент, работающий из коммандной строки и имеющий все необходимые функции для работы с вашими репозитариями. Устанавливается
в Ubuntu: sudo apt-get install tig
в Mac OsX: sudo port install tig (при условии установленных MacPorts)
Plugins. acl9, acts_as_textiled, app_config
Этим постом я начинаю серию постов, объединенных одной темой - это плагины в Rails.
Начну я пожалуй с app_config, плагина написанного нашим соотечественником - Женей Большаковым (taknado.com). Женя в своем плагине реализовал идею Димы Штефлюка и сделал это надо сказать весьма успешно
Использовать плагин очень просто. Первым делом создаем файл config/config.yml с содержанием подобным
common:
admin_email: admin@domain.com
xml_rpc_url: http://domain.com:8000/
media_path: <%= RAILS_ROOT %>/tmp/media
development:
xml_rpc_url: http://localhost:8000/
test:
xml_rpc_url: http://localhost:8008/
В группе common размещаем общие для всех environments параметры, в production/development/test - соответствующие названию. Доступ к параметрам можно получить через Conf.variable_name, где variable_name - это и есть наш конфигурационный параметр.
Еще один плагин - acl9, также написанный нашим сооттечественником - Олегом Дашевским. Это плагин, позволяющий организовать role based-аутентификацию, но в отличии от популярного role requirement - более гибкий в плане интеграции с плагинами авторизации типа authlogic, twitterauth и другими плагинами. Ничто не мешает вам написать свой функционал, использующий например протокол oauth для авторизации и вместе с acl9 обеспечить удобную систему управления доступом. Как пользоваться плагином можно узнать из его страницы на github.com и из тестового приложения.
И последний плагин на сегодня - acts_as_textiled, автором которого является Chris Wanstrath. С помощью этого плагина можно пометить то или иное поле в модели, что оно использует textile для разметки. Достаточно просто в модели указать
class Story < ActiveRecord::Base
acts_as_textiled :body_text, :description
end
и в дальнейшем данное поле будет рендериться на лету в html.
На сегодня пожалуй все
Удачи
VMWare покупает SpringSource
Не знаю хорошо это или плохо - время покажет, но сегодня в новостях пролетела информация о покупке SpringSource за счет активов VMWare. Вроде как обещают, что продукты будут более тесно интегрироваться, но SpringFramework и сопутствующие проекты так и останутся OpenSource.
Используем braid для RoR-приложения
Еще одним полезным инструментом для RoR-разработчика можно назвать braid. С помощью этой утилиты можно сильно облегчить свою жизнь, контроллируя внешние git- и svn-репозитарии, которыми могут например являться плагины и edge rails. Все внешние репозитарии также прописываются в git-конфиге как submodules.
Все необходимое для работы детально описано в wiki проекта, поэтому я вкратце пробегусь по основным командам:
$ braid add git://github.com/rails/rails.git vendor/rails
- cтавим edge rails
$ braid add -p git://github.com/mbleigh/seed-fu.git
- добавление rails-плагина
$ braid add -p http://xss-shield.googlecode.com/svn/trunk/xss-shield/
- добавление плагина из svn-репозитария
$ braid add -p --type svn http://xss-shield.googlecode.com/svn/trunk/xss-shield/
- добавление плагина из svn-репозитария, но уже с прямым указанием, что это svn-репозитарий
$ braid update
- обновляем все установленные submodules
$ braid update vendor/plugins/cache_fu
- обновляем cache_fu
$ braid diff vendor/rails
- просмотр локально сделанных изменений
Если вами внесены изменения в код и вы пытаетесь сделать update - процесс обновления остановится, чтобы вы могли разрешить конфликт между локальным и удаленным репозитариями. Далее просто делаем
$ git commit
Чтобы откатить изменения
$ git reset --hard
В принципе на первое время этого достаточно
Если вым чего-то не будет хватать для работы - добро пожаловать в wiki.
PS: не забывайте, что файл .gitignore не должен содержать в себе записей типа .*, которые запрещали бы отслеживание файла .braids


