З виходом OmniAuth версії 1.0 з'явилася нова стратегія Identity, яка дозволяє використовувати традиційну аутентифікацію по логіну і паролю.
Раніше я вже писав про OmniAuth - раз і два.
У цій статті ми познайомимося з стратегією під назвою Identity, яка дозволяє користувачу створити обліковий запис, вказавши ім'я користувача та пароль, замість входу через зовнішнього постачальника.
Вихідний код цієї статті заснований на OmniAuth для Sinatra, і якщо ви не знайомі з OmniAuth цю статтю варто прочитати в першу чергу.
вівторок, 21 лютого 2012 р.
вівторок, 14 лютого 2012 р.
Sinatra: Up and Running.pdf
Ruby for the Web, Simply
By Alan Harris, Konstantin HaasePublisher: O'Reilly Media
Released: November 2011
Pages: 120
Get this torrent ( Torrent File)
понеділок, 13 лютого 2012 р.
Налаштування will_paginate для Bootstrap у Sinatra
Нещодавно вийшла друга версія популярного HTML-фреймворка Bootstrap. Для тих хто не в курсі що це, настійно рекомендую ознайомитися. Цей набір дозволяє створювати шаблони сайтів за лічені години(перевірено на власному досвіді) на основі готових наборів стилів, які різко спрощують розстановку елементів на сторінці та забезпечують якісну типографію.
Крім того вийшла версія will_paginate 3.0.3, у яку крім усього іншого також ввійшов коміт, що виправляв кілька багів пов'язаних з DataMapper.
І у зв'язку з цієї радісною новиною, я вирішив прикрутити пагінацію до свого проекту на Sinatra, у якому, як ви вже мабуть здогадалися використовується Bootstrap.
Підключаємо необхідні бібліотеки:
Вказуємо will_paginate генерувати теги у стилі Bootstrap:
І на останок пишемо помічник, який дозволить виводити навігацію у простій формі:
Крім того вийшла версія will_paginate 3.0.3, у яку крім усього іншого також ввійшов коміт, що виправляв кілька багів пов'язаних з DataMapper.
І у зв'язку з цієї радісною новиною, я вирішив прикрутити пагінацію до свого проекту на Sinatra, у якому, як ви вже мабуть здогадалися використовується Bootstrap.
Підключаємо необхідні бібліотеки:
require 'will_paginate' require 'will_paginate/data_mapper'
Вказуємо will_paginate генерувати теги у стилі Bootstrap:
class BootstrapLinkRenderer < ::WillPaginate::Sinatra::LinkRenderer protected def html_container(html) tag :div, tag(:ul, html), container_attributes end def page_number(page) tag :li, link(page, page, :rel => rel_value(page)), :class => ('active' if page == current_page) end def gap tag :li, link(super, '#'), :class => 'disabled' end def previous_or_next_page(page, text, classname) tag :li, link(text, page || '#'), :class => [classname[0..3], classname, ('disabled' unless page)].join(' ') end end
І на останок пишемо помічник, який дозволить виводити навігацію у простій формі:
== page_navigation_links @events
helpers do def page_navigation_links(pages) will_paginate(pages, :class => 'pagination', :inner_window => 2, :outer_window => 0, :renderer => BootstrapLinkRenderer, :previous_label => '←', :next_label => '→') end end
Підписатися на:
Дописи (Atom)