Слідом за Sinatra 1.0 вийшов офіційний реліз Padrino (або GitHub repo), веб-додатку, який надає додатковий рівень функціональності Sinatra (наприклад, помічники, генератори, інтерфейс адміністратора та інтернаціоналізація). Padrino сумісний з Sinatra 1.0.
Розробники Davide D'Agostino, Nathan Esquenazi та Arthur Chiu люблять Sinatra і філософію його розвитку, але хочуть забезпечити більш глибокий, стандартизований рівень функціональності, більший ніж у типовому стекові Sinatra. Відповідно до свого призначення, Padrino розширює Sinatra різноманітними додатковими функціями:
•псевдоніми маршруту простору імен
•вкладені маршрути
•контролери
•i18n / інтернаціоналізація
•поштові системи
•інтерфейс адміністратора у стилі Django
•уніфіковане ведення логів
•додатки, генератори моделей і контролерів
Більшість з цих функцій вже можна додати до Sinatra, або вручну, або вибрати з широкого асортименту незалежних модулів. Padrino, з іншого боку, забезпечує стандартний набір функціональних можливостей, які, сподіваюся, будуть і далі вдосконалюватися в цілому з плином часу.
Команда Padrino проробила величезну роботу одночасно розмістивши на своєму офіційному сайті безліч документації.
Ця стаття є так би мовити третьою. У двох попередніх ми вже встигли познайомитися з веб-фреймворком Sinatra () та ORM бібліотекою DataMapper (). Прийшов час застосувати ці знання на практиці. Напишемо наш "proof of concept" додаток, використовуючи Sinatra, DataMapper, HAML, SASS. Я вирішив, що ми проведемо наші навчальні заняття за написанням блогу.
Sinatra не піклується про те, як ви організовуєте ваш додаток. На відміну від Rails, Sinatra не накладає ряд серйозних обмежень на структуру ваших додатків. Ви можете покласти все в один файл, або розбити на структуру каталогів. Звичайно, якщо ви розіб'єте на окремі файли, потрібно підключати їх в міру необхідності — у Sinatra немає узгоджень, як в Rails, про те де шукати ці файли.
Моя структура каталогів, вона дуже проста:
Я поклав все крім шаблонів в один файл. Таким чином конфігурації, моделі і всі події будуть у файлі blog.rb. Також Sinatra по замовчуванню підхоплює каталог views, який містить шаблони представлень.
Sinatra — об'єктно-орієнтований програмний каркас(framework) для створення веб-застосунків, написана на мові програмування Ruby. На офійному сайті написано, що Sinatra це навіть не фреймворк, а DSL для створення веб-додатків. Залежить від інтерфейсу веб-сервера Rack. Вона є альтернативою іншим Ruby фреймворкам, таким як Ruby on Rails, Merb, Nitro та Camping.
Sinatra є відкритим програмним забезпеченням і розповсюджується під ліцензією MIT.
Розроблена та створена Blake Mizerany, Sinatra є крихітною(близько 1500 рядків коду, що майже 1/100-а розміру Rails) та надзвичайно гнучкою. Вона не слідує типовій архітектурі Модель-Вид-Контролер(Model-View-Controller, MVC), яка використовується в інших фреймвоках, таких як Ruby On Rails. Натомість, Sinatra зосереджена на «швидкому створенню веб-додатків на Ruby із мінімальними зусиллями». Sinatra використовує всі можливості Ruby і є його оригінальним розширенням.