注意: このページは最後に更新されてから 1243 日が経過している記事です。 文章が腐敗している可能性があります。その点を考慮した上で確認ください。

Sinatra

提供: kimoto's wiki

ソースいじったら自動でサーバーをリスタート

require 'sinatra/reloader'
 
class YourApp < Sinatra::Base
  register Sinatra::Reloader
end

これだとproduction時でもこれが有効になってしまって重くてつらいので、

configure :development do
  register Sinatra::Reloader
end

とするとよい。shotgunというコマンド(gem)があるけど、あれはすごい重いので使わない方がよい。Sinatra::Reloaderは軽いし使いやすい!

デフォルトでエスケープさせる

require 'erubis'
set :erb, :escape_html => true # デフォルトでHTML文字列をエスケープ

自動エスケープ時にエスケープしない

<%== "<b>test</b>" %>

みたいな感じで

余計なHTTPヘッダを消す

人によるだろうけどデフォルトでついてるProtection関係のHTTPヘッダを消す方法

disable :protection # 余計なヘッダ消すため(x-frame-optionsとか)

ソースコード内インラインTemplate

enable :inline_templates # ソースコード内HTMLテンプレートを有効化

こうしとくとそのソースコードの末尾で

get '/' do
  erb :index
end
 
__DATA__
@@index
ほげふが

みたいなことが出来るようになる。