C4 always sleepy

31Aug/090

Snippets

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

Tagged as: , No Comments
26Aug/094

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.

24Aug/092

tig

tig
tig - полезный инструмент для тех кто пользуется git. Это git-клиент, работающий из коммандной строки и имеющий все необходимые функции для работы с вашими репозитариями. Устанавливается
в Ubuntu: sudo apt-get install tig
в Mac OsX: sudo port install tig (при условии установленных MacPorts)

24Aug/094

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.

На сегодня пожалуй все :) Удачи :)

12Aug/090

VMWare покупает SpringSource

Не знаю хорошо это или плохо - время покажет, но сегодня в новостях пролетела информация о покупке SpringSource за счет активов VMWare. Вроде как обещают, что продукты будут более тесно интегрироваться, но SpringFramework и сопутствующие проекты так и останутся OpenSource.

10Aug/092

Используем 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