пʼятниця, 26 березня 2010 р.

Sinatra 1.0 is OUT!

Днями світ побачила версія 1.0 чудового DSL для створення веб-застосунків на Ruby - Sinatra.
Список змін в порівнянні з попередньою стабільною версією можна подивитися тут.
Зі слів Blake Mizerany - одного із авторів, найбільші зміни у цій версія - це чистка і стабілізація коду.

Також, починаючи з версії 1.0 Sinatra використовує бібліотеку Tilt для рéндерингу шаблонів. Це додає підтримку кешування шаблонів, послідовного трасування шаблонів, а також підтримку нових систем шаблонів, як Mustache і Liquid.

$ gem update sinatra
Updating sinatra
Successfully installed sinatra-1.0
Gems updated: sinatra

Long live Sinatra!

четвер, 25 березня 2010 р.

Новий реліз-план для Ruby 1.9.2

Згідно з попереднім планом фінальна версія Ruby 1.9.2 планувалась на кінець 2009 року.
Нещодавно було оголошено переглянутий графік релізів Ruby 1.9.2, згідно з яким, реліз відбудеться приблизно в середині серпня.
  • 31 березня буде заморожено список нових можливостей Ruby 1.9.2
  • 30 квітня буде заморожений код, всі можливості не реалізовані до цього часу не увійдуть в реліз
  • 31 травня - вихід 1.9.2-preview2: можливості, які не будуть завершені і стабільні до цього моменту, не ввійдуть в реліз
  • 30 червня - вихід 1.9.2-rc: всі знайдені на попередніх етапах помилки повинні бути виправлені
  • 31 липня - вихід 1.9.2-p0: протягом двох тижнів будуть збиратися багрепорти і завершувати реліз, перш ніж випустити його

Що ж будемо сподіватися, що цього разу розробники впораються з наміченими термінами і ми отримаємо стабільний реліз гілки 1.9.x до осені.

Відкритим залишається питання, коли ж вийде Ruby 2.0? В twitter-і Yuki Sonoda одного з розробників Ruby є інформація про те, що це може відбутися раніше, ніж очікувалося, Ruby 1.9.3 вже може бути 2.0.

четвер, 18 березня 2010 р.

Ruby Best Practices


Напевно, багато хто вже чули про цей проект. Останні кілька місяців виходили окремі розділи книги.

Тепер повністю готову книгу Ruby Best Practices можна завантажити безкоштовно.

Посилання:

четвер, 11 березня 2010 р.

Yahoo! Weather і Ruby

Yahoo! Weather RSS-канал дозволяє отримувати останню інформацію про погоду для вашої місцевості. Ви можете зберігати цю інформаію у вашому улюбленому RSS-агрегаторі, або включити ці дані до вашого сайту або додатку. RSS динамічно генерується на основі WOEID.

Короткий опис формату запиту URL та RSS відповіді.
Запит RSS слідує наступному простому синтакстису HTTP GET: починається з простого базого URL за яким слідують додаткові параметри і значення після знаку питання (?). Кілька параметрів розділяються амперсандом (&).
Базовий URL для каналу погоди є
http://weather.yahooapis.com/forecastrss
Два можливі параметри:
  • w - для WOID (обов'язковий параметр, що вказує на місце розташування для прогнозу погоди). Наприклад w=935810
  • u - для одиниць вимірювання(c: за Цельсієм, f: за Фаренгейтом). Наприклад u=c. Вибір 'c' покаже всі дані в метричних одиницях(наприклад швидкість вітру буде відображатися в кілометрах за годину).
http://weather.yahooapis.com/forecastrss?w=location

Наприклад, щоб отримати погоду для Тернополя, використовується код 935810.
http://weather.yahooapis.com/forecastrss?w=935810

Щоб знайти значення WOID для вашого міста, здійсність пошук на головній сторінці.
Наприклад для Тернополя, URL сайту буде мати наступний вигляд:
http://weather.yahoo.com/ukraine/ternopil-oblast/tarnopol'-935810/
Де WOID це 935810.

RSS відповідь я не буду докладно описувати.
Знизу приведений приклад коду для роботи з Yahoo! Weather з Ruby.

середа, 10 березня 2010 р.

Mechanize 1.0.0

Тихо і непомітно 6.02.2010 вийшов реліз моєї улюбленої бібліотеки для Ruby Mechanize версії 1.0.0. Хоч новина вже встигла припасти пилом, але краще пізно ніж ніколи. Змін не так вже й багато. Розробники в основному зосередилися на виправленні помилок.

Особливості релізу:
  • Константа WWW вважається застарілою, натомість слід використовувати константу верхного рівня Mechanize
  • Нові методи SelectList#option_with і SelectList#options_with для пошуку параметрів у випадаючому списку
  • Необов’язкові параметри можуть передавалися методу Mechanize#get

Виправлені помилки
  • Краща обробка помилок пов’язаних з некоректним кодуваннями сторінки
  • Підтримка 7-бітного кодування
  • Виправлений баґ із перетвореннями за допомогою бібліотеки Iconv
  • Відсилання форми з нульовим(nil) кодуванням сторінки
  • Прапорці(чекбокси) і поля впорядковуються за зовнішнім виглядом сторінки перед відправленням форми
  • Виправлення значень за замовчуванням з серіалізованим кукісом(cookies)
  • Перенаправлення за межами HEAD не дотримуються

Для демонстрації я переписав скрипт для Google Translate, для сумісності з новою версією Mechanize.