вівторок, 20 вересня 2011 р.

Коротке введення в шаблонізатор Slim

Давно хотів написати статтю про Haml, та все ніяк не доходили руки. Починаючи з 1.2 Sinatra підтримує новий шаблонізатор Slim. Вирішив познайомитися з ним, і він мені відразу сподобався. Slim взяв найкраще від Haml, і основне його завдання - зменшити об'єм коду.

Шаблони Slim можуть виглядати як Haml, використовуючи ярлики id і class, але їх використання не є обов'язковим. Як і в Haml форматування тут відбувається відступами.
Ось так виглядає приклад шаблону з використанням Slim:
Якщо Haml – це HTML на стероїдах, тоді Slim – це Haml на дієті.

четвер, 8 вересня 2011 р.

Реліз RailsInstaller 2.0

Запуск Ruby і Rails в середовищі ОС Windows не найпростіша річ у світі. Навіть з такими речами як RubyInstaller/, можна часто зіткнутися з проблемами при установці певних gem-ів, які вимагають компіляції. Що вже казати про інструменти сторонніх розробників. А як щодо Git? OpenSSH? Вам потрібно багато речей, щоб отримати "повноцінне" Rails середовище для розробки. І RailsInstaller робить це все для вас в один клік.

Хочу представити вашій увазі реліз RailsInstaller версії 2.0. У попередніх версіях RailsInstaller використовув 1.8.7. Тепер доступна і версія Ruby 1.9.2. Крім того доступний реліз-кандидат Rails 3.1. А також включені наступні пакети:
  • Git
  • Bundler
  • SQLite
  • gem-и для взаємодії з Microsoft SQL Server
  • DevKit - компілятор для ОС Windows, що дозволить встановити gem-и, яким потрібно скомпілювати C код.

Інтерв'ю з Юкіхіро Мацумото

Юкіхіро Мацумото (Yukihiro Matsumoto), автор мови програмування Ruby, в інтерв'ю виданню InfoWorld згадав про те, що він в даний час займається розробкою альтернативного підмножини або діалекту мови Ruby, спеціально адаптованої для створення програм для портативних пристроїв. Перший публічний випуск мобільного Ruby планується представити на початку наступного року. Крім того, в інтерв'ю згадується те, що після випуску релізу Ruby 1.9.3, який зараз знаходиться на етапі тестування, розробники переключаться на підготовку версії Ruby 2.0.

пʼятниця, 2 вересня 2011 р.

will_paginate 3.0: Sinatra і DataMapper

Після більше року розробки вийшла фінальна версія will_paginate 3.0. Основні зміни:
  • Підтримка Rails 3.0 і 3.1
  • Підтримка Sinatra і Merb
  • Інтеграція з DataMapper і Sequel
  • Переклад із бібліотекою i18n
  • Припинена підтримка Rails версій 1.2 - 2.3
Встановлення:
gem install will_paginate
Sinatra додаток потребує наступні бібліотеки:
require 'will_paginate'
require 'will_paginate/data_mapper'  # або active_record/sequel
Вносимо зміни до дії index, щоб виводити по 5 записів на сторінку. Номер сторінки передаватиметься у рядку запиту (наприклад, http://localhost:4567/posts?page=3)
# index
get "/posts" do
  @posts = Post.paginate :page => params[:page], :per_page => 5
  haml :"posts/index"
end
Додаємо помічник will_paginate для виведення посилань на сторінки:
#header
  %h1 Мій блог

%a{:href => "posts/new"}> New Post
#content
  - @posts.each do |post|
    .container
      %h3= post.title
      %p= post.body
      %p= post.created_at

  #pagination
    = will_paginate @posts