Skip to content

Sinatra

Sinatra: README (Japanese)

Reference

Rack

Heroku

Getting Started

Install

set http_proxy=http://localhost:8080
gem install sinatra
gem install sinatra-contrib
※sinatra-contrib: for 'sinatra/reloader'(自動リロード)

myapp.rb

require 'sinatra'
require 'sinatra/reloader'

get '/' do
  'Hello world!'
end
ruby myapp.rb
http://localhost:4567/

静的ファイル

ビュー / テンプレート

ConfigFile

config.yml

greeting: Welcome
require "sinatra"
require "sinatra/config_file"

config_file 'path/to/config.yml'

get '/' do
  @greeting = settings.greeting
  haml :index
end

Haml

HTML2Haml | Convert HTML Snippets to Haml

5分で分かるHaml

/ HTMLのコメント

-# hamlのコメント

Sinatra を使って Haml で作成したテンプレートに変数を埋め込む - 酔いどれコード

  • タグの後に = を付けない場合
    • 変数名をそのまま記述しても変数として認識されない
    • 変数名を #{ } で囲むと変数として認識される
    • タグ名以降は "" で囲まれた文字列と同じ扱い?
  • タグの後に = を付ける場合
    • リテラルは必ず " や ' で囲む必要がある
    • カンマ区切りにしてもOK
    • = 以降はすべて変数として認識されている?受け取る方は可変引数に対応しているからカンマ区切りでもOKと(調べてない)。
  • 要素の指定は内容よりも前に書く
    • を付けると Ruby のコードを埋め込むことができる

views/layout.haml

%html
  %head
    %title
      sinatra
  %body
    = yield

ページごとにタイトルを変える

app.rb

require "sinatra/content_for"

layout.haml

%html
  %head
    %title
      = yield_content(:title)

somepage.haml

- content_for :title do "This is title" end
- content_for :title do
  = "This is title"

Slim

ActiveRecord

認証

Unicorn

Unicornの停止

$ kill -QUIT `cat unicorn.pid`
$ ps -ef | grep unicorn | grep -v grep
hoge      7299     1  0 22:13 ?        00:00:04 unicorn master -c unicorn.conf -D
hoge      7303  7299  0 22:13 ?        00:00:03 unicorn worker[0] -c unicorn.conf -D
hoge      7306  7299  0 22:13 ?        00:00:03 unicorn worker[1] -c unicorn.conf -D

$ kill -QUIT 7299

TIPS

Singleton