sinatra入門

====================

# 目的 #
sinatraでwebアプリをつくる

[ソース](https://github.com/k2works/sinatra_introduction)

# 前提 #
| ソフトウェア   | バージョン   | 備考        |
|:---------------|:-------------|:------------|
| OS X           |10.8.5        |             |
| ruby           |2.0.0-p247    |             |
| rvm            |1.24.0        |             |
| sinatra        |1.4.4         |             |
| thin           |1.6.0         |             |

# 構成 #

+ [セットアップ](#chap0)
+ [アプリケーションサンプル1](#chap1)
+ [アプリケーションサンプル2](#chap2)
+ [アプリケーションサンプル3](#chap3)
+ [アプリケーションサンプル4](#chap4)
+ [アプリケーションサンプル5](#chap5)

# 詳細 #

## <a name="chap0"></a> セットアップ ##

    $ rvm use ruby-2.0.0-p247
    $ rvm gemset create sinatra
    $ rvm use ruby-2.0.0-p247@sinatra
    $ gem install bundler
    $ bundle init
    $ bundle

## <a name="chap1"></a> アプリケーションサンプル1 ##

### プログラム作成 ###

+ [server.rb](sample1/server.rb)

        require 'sinatra'
    
        get '/' do
         "Hello, world!"
        end

### プログラム実行 ###

    $ ruby sample1/server.rb

### プログラム確認 ###

    http://localhost:4567/

## <a name="chap2"></a> アプリケーションサンプル2 ##

### プログラム作成 ###

+ [game.rb](https://github.com/k2works/sinatra_introduction/blob/master/sample2/game.rb)

### プログラム実行 ###

    $ ruby sample2/game.rb

### プログラム確認 ###

    http://localhost:4567/throw/scissors

## <a name="chap3"></a> アプリケーションサンプル3 ##

### プログラム作成 ###

+ [inline.rb](https://github.com/k2works/sinatra_introduction/blob/master/sample3/inline.rb)

### プログラム実行 ###

    $ ruby sample3/inline.rb

### プログラム確認 ###

    http://localhost:4567/index

## <a name="chap4"></a> アプリケーションサンプル4 ##

### プログラム作成 ###
    sample4
    ├── app.rb
    └── views
        ├── index.erb
        └── user
            ├── help.erb
            └── profile.erb
        
+ [app.rb](https://github.com/k2works/sinatra_introduction/blob/master/sample4/app.rb)
+ [index.erb](https://github.com/k2works/sinatra_introduction/blob/master/sample4/views/index.erb)
+ [profile.erb](https://github.com/k2works/sinatra_introduction/blob/master/sample4/views/user/profile.erb)
+ [help.erb](https://github.com/k2works/sinatra_introduction/blob/master/sample4/views/user/help.erb)


### プログラム実行 ###

    $ ruby sample4/add.rb

### プログラム確認 ###

    http://localhost:4567/index

## <a name="chap5"></a> アプリケーションサンプル5 ##

### プログラム作成 ###

    sample5
    ├── config.ru
    ├── controllers
    │   ├── application_controller.rb
    │   └── example_controller.rb
    ├── helpers
    │   └── application_helper.rb
    └── views
        ├── example.erb
        ├── layout.erb
        └── not_found.erb

+ [config.ru](https://github.com/k2works/sinatra_introduction/blob/master/sample5/config.ru)
+ [application_controller.rb](https://github.com/k2works/sinatra_introduction/blob/master/sample5/controllers/application_controller.rb)
+ [example_controller.rb](https://github.com/k2works/sinatra_introduction/blob/master/sample5/controllers/example_controller.rb)
+ [application_helper.rb](https://github.com/k2works/sinatra_introduction/blob/master/sample5/helpers/application_helper.rb)
+ [example.erb](https://github.com/k2works/sinatra_introduction/blob/master/sample5/views/example.erb)
+ [layout.erb](https://github.com/k2works/sinatra_introduction/blob/master/sample5/views/layout.erb)
+ [not_found.erb](https://github.com/k2works/sinatra_introduction/blob/master/sample5/views/not_found.erb)

### プログラム実行 ###

    $ cd sample5
    $ rackup -p 4567 -s thin

### プログラム確認 ###

    http://localhost:4567/

# 参照 #

[Sinatra](http://www.sinatrarb.com/intro-jp.html)

[入門 Sinatra――Web制作のためのシンプルなRuby DSL](http://www.oreilly.co.jp/books/9784873115597/)

[第23回　Rackとは何か（1）Rackの生まれた背景](http://gihyo.jp/dev/serial/01/ruby/0023)

[第24回　Rackとは何か（2）Rackの使い方](http://gihyo.jp/dev/serial/01/ruby/0024)

[第25回　Rackとは何か（3）ミドルウェアのすすめ](http://gihyo.jp/dev/serial/01/ruby/0025)