SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Sinatra
突然ですが
コンソールから
$ gem install sinatra
$ ruby -r sinatra -e 'get("/"){ "Hello world" }'

                   ↓
               で、ブラウザで開く

       http://localhost:4567
ソースファイルにすると

require 'sinatra'

get '/' do
 'Hello world'
end
Hello World が見えるまで
       1分
             (自分調べ)
Sinatra
Sinatra
               is

WebApplication DSL
  > SinatraはRubyで下記のような最小労力で
  > 手早くウェブアプリケーションを作成するための
  > DSLです。

           http://www.sinatrarb.com/intro-jp.html
基本的な書き方
まずは...
require 'sinatra'

get '/users/:name' do # /users/hogeをGETしたら
  name = params[:name] # hogeを取得し
  @name = name.upcase # hogeを処理し
  erb :show # レスポンスを返す
end

get '/users/' do
 ...
end
リクエスト
# 固定
get '/' do ... end

# POST
post '/' do ... end

# 名前付きパラメータ (params[:id])
get '/:id' do ... end

# ブロック引数 (paramsの代わりに常に使用可能)
get '/:id' do |id| ... end

# splat (params[:splat]で*の数だけ配列で取得)
get '/say/*/to/*' do ... end

# 正規表現 (params[:captures]でキャプチャ部分を取得)
get %r|/hello/(w+)| do ... end
今度は...
require 'sinatra'

get '/users/:name' do # /users/hogeをGETしたら
  name = params[:name] # hogeを取得し
  @name = name.upcase # hogeを処理し
  erb :show # レスポンスを返す
end

get '/users/' do
 ...
end
レスポンス(テンプレート)
# ERB
get '/' do
 @greed = 'Hello world'
 erb :index # views/index.erb
end

# HAML
get '/' do
 @greed = 'Hello world'
 haml :'greed/index' # views/greed/index.haml
end

# Erubis, Builder, 鋸(nokogiri), Sass, Scss, Less, Liquid, Markdown,
# Textile, RDoc, Radius, Markaby, Slim, Creole, CoffeeScript
... READMEを読め!
レスポンス(その他)
# 文字列
get '/' do
 content_type 'text/plain'
 'Hello world!'
end

# ステータスコード
get '/' do
 404
end

# eachメソッドを持つオブジェクトによるストリーミング
class Stream
 def each
   100.times { |i| yield "#{i}n" }
 end
end
get('/') { Stream.new }
他にも機能が
●   レイアウト(ビューの外枠共通化)
●   ヘルパー(ビューの特定部分メソッド化)
●   フィルタ(リクエストのbefore/after)
●   エラーハンドリング(例外に応じてページ表示)
●   公式拡張: sinatra-contrib
    ○   capture
    ○   config_file
    ○   cookie
    ○   namespace(ルーティング)
    ○   stream
    ○   ...
続きはWebで!
↓あっという間に理解できる良いドキュメント

         Sin
            atr
               a:
                    RE
                      AD
                         ME
                              (Ja
                                 pan
                                       ese
                                          )
特徴

● 起動が早い!(Railsより)
● 処理が早い!(Railsより)
● 学習が早い!(Railsより)

● 機能が少ない!(Railsより)
 ○ link_to とかできない
 ○ migration とかできない
 ○ reloadとかできない
位置づけ

この程度の相手、
Rails様の手を煩わすまでもない >

● シンプル・小規模なシステム
● Viewを持たないAPI用サーバー
● 既存ツールにWebフロントエンドを+
● Hackathonのお供に
まとめ

      Sintatra




          Rails
 Railsのスキマ、
Rails
  お埋めします
                 Sintatra



        Sintatra
                            Rails
覚えておいても損はない。


requi
     re 'si
            natra
                  '

 ありがとう
ございました。

Mais conteúdo relacionado

Semelhante a Sinatra

Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶ
Hiroshi Oyamada
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
emasaka
 
20091119_sinatraを使ってみた
20091119_sinatraを使ってみた20091119_sinatraを使ってみた
20091119_sinatraを使ってみた
ngi group.
 
Sinatra Pattern 20130415
Sinatra Pattern 20130415Sinatra Pattern 20130415
Sinatra Pattern 20130415
Naotoshi Seo
 
Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4
Koji SHIMADA
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
 
capistrano-colorized-stream
capistrano-colorized-streamcapistrano-colorized-stream
capistrano-colorized-stream
Naotoshi Seo
 

Semelhante a Sinatra (20)

Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶ
 
とあるプロジェクトのつらみなコード
とあるプロジェクトのつらみなコードとあるプロジェクトのつらみなコード
とあるプロジェクトのつらみなコード
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
 
20091119_sinatraを使ってみた
20091119_sinatraを使ってみた20091119_sinatraを使ってみた
20091119_sinatraを使ってみた
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回
 
Sinatra Pattern 20130415
Sinatra Pattern 20130415Sinatra Pattern 20130415
Sinatra Pattern 20130415
 
otomodachi-kakumei
otomodachi-kakumeiotomodachi-kakumei
otomodachi-kakumei
 
Start-padrino
Start-padrinoStart-padrino
Start-padrino
 
Mina 20130417
Mina 20130417Mina 20130417
Mina 20130417
 
Testing in Sinatra
Testing in SinatraTesting in Sinatra
Testing in Sinatra
 
Tide - SmalltalkでSPA
Tide - SmalltalkでSPATide - SmalltalkでSPA
Tide - SmalltalkでSPA
 
Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4Ruby Sapporo Night Vol4
Ruby Sapporo Night Vol4
 
FFRK cocos2d xレイヤーの最適化
FFRK cocos2d xレイヤーの最適化FFRK cocos2d xレイヤーの最適化
FFRK cocos2d xレイヤーの最適化
 
How Smalltalker Works
How Smalltalker WorksHow Smalltalker Works
How Smalltalker Works
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
Real world rails
Real world railsReal world rails
Real world rails
 
3D Photo Tool by Ruby/Sinatra + JavaScript
3D Photo Tool by Ruby/Sinatra + JavaScript3D Photo Tool by Ruby/Sinatra + JavaScript
3D Photo Tool by Ruby/Sinatra + JavaScript
 
capistrano-colorized-stream
capistrano-colorized-streamcapistrano-colorized-stream
capistrano-colorized-stream
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
 
明日から業務で使うScala
明日から業務で使うScala明日から業務で使うScala
明日から業務で使うScala
 

Último

Último (10)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

Sinatra