• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

link_to 等のヘルパメソッドは sinatra 本体には含まれていませんが、
sinatra_more という gem が用意されています。

install

shell>>
% gem install sinatra_more
<<--

standalone 利用の場合

直接 Sinatra::Base に register してしまいましょう。

ruby>>
require 'sinatra'
...
require 'sinatra_more/markup_plugin'
Sinatra::Base.register SinatraMore::MarkupPlugin
...
get '/' do
...
<<--

クラス利用の場合

該当クラスで register します。

ruby>>
require 'sinatra_more/markup_plugin'

class Application < Sinatra::Base
register SinatraMore::MarkupPlugin
end
<<--

MarkupPlugin

link_to だけでなく、全56種(ver 0.3.33 現在)ものヘルパメソッドが利用できるようになります。
以下に、よく使いそうなものを抜粋します。

ruby>>
link_to(*args, &block)
stylesheet_link_tag(*sources)
javascript_include_tag(*sources)
image_tag(url, options={})
image_path(src)
escape_html(text)
h!(text, blank_text = ' ')
content_tag(*args, &block)
tag(name, options={})
input_tag(type, options = {})
form_for(object, url, settings={}, &block)
text_field_tag(name, options={})
<<--

詳細は lib/sinatra_more/markup_plugin/*.rb を確認して下さい。

その他のPlugin

sinatra_more gem には、
MarkupPlugin 以外にも
RenderPlugin、WardenPlugin、MailerPlugin、RoutingPlugin
といったプラグインが用意されています。
利用方法は MarkupPlugin の場合と同じで、
利用したいプラグイン名を列挙していきます。

ruby>>
require 'sinatra_more/markup_plugin'
require 'sinatra_more/render_plugin'
Sinatra::Base.register SinatraMore::MarkupPlugin
Sinatra::Base.register SinatraMore::RenderPlugin
...
<<--

各プラグインの代表的なメソッドを記載します。
例えば、RenderPlugin にはみんな大好きな "partial" が入ってたりしますので、しっかりチェック&register しましょう。

RenderPlugin

描画系プラグイン

ruby>>
partial(template, options={})
erb_template(template_path, options={})
haml_template(template_path, options={})
render_template(template_path, options={})
<<--

WardenPlugin

認証系プラグイン

ruby>>
current_user
authenticate_user!
logged_in?
authenticated?(&block)
<<--

MailerPlugin

メール関係?(使わないので未調査)

RoutingPlugin

ルーティング系プラグイン (named route?)

ruby>>
map(*args, &block)

map(:accounts).to('/accounts/url')

map(:admin, :show).to('/admin/show/:id')

map(:admin) { |namespace| namespace.map(:show).to('/admin/show/:id') }

<<--

posted by maiha maiha on Thu 4 Feb 2010 at 00:22 with 0 comments
Contents rssrss
Ubuntu 10.04 (lucid) でSunJDKを使う方法
Hashname: 大量のファイルをScalaで楽に扱う方法
公開した gem を削除する方法
thor で usage の自動生成
[NoSQL] ohm-arfreaks (redis用のAR風ORM) の使い方
rubygems-1.3.6 を入れてしまうと rails-2.2.2 が全滅する件
[NoSQL] activetokyocabinet (TokyoTyrantのORM) の使い方
[NoSQL] MiyazakiResistance (TokyoTyrantのORM) の使い方
[NoSQL] rufus-tokyo (TokyoCabinetのORM) の使い方
[NoSQL] Ohm (redis用のORM) の使い方
Tags
NoSQLKVSTokyoCabinetOhmredisrubygemstokyotyrantActiveRecordjavarailsRubyistScalaSunJDKthorubuntu
Comments rssrss
maiha maiha: 追記)対応は約1営業日でした。チームの忙しさに応じて変動するとは思いますが、大体の目安情報ということ... 04/19 07:39
maiha maiha: なるほど。rails のログから実行したクエリを抜き出したいと思うことがよくありまして。 あ、削除... 03/08 04:15
winebarrel winebarrel: レポートありがとうございます。 削除できない件は修正しました。 SQLのparserはTC/TTに... 02/27 04:40
maiha maiha: なるほど。ありがとうございます! 02/08 18:19
ursm ursm: Haml 2.2 以降はどこでも式展開が使えるようになったので、== は意味がなくなりました。! だ... 02/08 10:23
walf443 walf443: それgit remote -vでできるよ 01/18 02:10
maiha maiha: reset だと範囲が tree 全体になるよね?例えば 「lib/* 以下は正しく修正できていて ... 08/29 21:32
Leonard Chin (レオ) Leonard Chin (レオ): git reset --hard でいいんじゃない? 08/28 12:32