162 lines
7.1 KiB
Markdown
162 lines
7.1 KiB
Markdown
---
|
||
title: Sinatraを初めて使ってみた
|
||
author: kazu634
|
||
date: 2013-11-10
|
||
url: /2013/11/10/first_impression_on_sinatra/
|
||
geo_latitude:
|
||
- 38.306436
|
||
geo_longitude:
|
||
- 141.023255
|
||
geo_public:
|
||
- 1
|
||
wordtwit_posted_tweets:
|
||
- 'a:1:{i:0;i:1856;}'
|
||
wordtwit_post_info:
|
||
- 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";s:1:"1";s:5:"delay";s:1:"0";s:7:"enabled";s:1:"1";s:10:"separation";i:60;s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:1856;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}'
|
||
categories:
|
||
- ruby
|
||
|
||
---
|
||
<div class="entry-content">
|
||
<p>
|
||
<a href="http://www.sinatrarb.com/" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://www.sinatrarb.com/', '');" title="Sinatra by kazu634, on Flickr"><img class="aligncenter" src="http://farm4.staticflickr.com/3800/10798811434_dd7e84970e.jpg" alt="Sinatra" width="500" height="345" /></a>
|
||
</p>
|
||
|
||
<p>
|
||
個人的なプロジェクトで使うために、 Ruby 製の Web アプリケーションフレームワーク Sinatra を初めて使ってみました。これ、簡単に使えてすごいですね。
|
||
</p>
|
||
|
||
<h2>
|
||
Gemfile
|
||
</h2>
|
||
|
||
<p>
|
||
<code>Gemfile</code>には次のように書きます:
|
||
</p>
|
||
|
||
<div class="highlight">
|
||
<pre><code class="text">source 'https://rubygems.org'
|
||
|
||
gem "sinatra"
|
||
gem "thin"
|
||
</code></pre>
|
||
</div>
|
||
|
||
<ul>
|
||
<li>
|
||
sinatra: Sinatra 本体です
|
||
</li>
|
||
<li>
|
||
thin: Ruby 用のWebサーバです
|
||
</li>
|
||
<li>
|
||
shotgun: Sinatra のファイルを更新すると、自動的にWebサーバをリロードしてくれるライブラリ
|
||
</li>
|
||
</ul>
|
||
|
||
<p>
|
||
保存したら、<code>bundle install</code>します。私は<code>bundle install --path vendor/bundle</code>としています。
|
||
</p>
|
||
|
||
<h2>
|
||
server.rb
|
||
</h2>
|
||
|
||
<p>
|
||
名前は任意なのですが、今回は<code>server.rb</code>としました。とりあえずこんな感じで書いてみました:
|
||
</p>
|
||
|
||
<pre class="lang:ruby decode:true " title="server.rb">#!/usr/bin/env ruby
|
||
|
||
require "rubygems"
|
||
require "bundler/setup"
|
||
|
||
require "sinatra"
|
||
|
||
get '/' do
|
||
"Hello, Game."
|
||
end
|
||
</pre>
|
||
|
||
<h2>
|
||
実行してみる
|
||
</h2>
|
||
|
||
<p>
|
||
それでは実行してみます。実行するには<code>ruby server.rb</code>をします。こんな感じです:
|
||
</p>
|
||
|
||
<pre class="lang:sh decode:true ">% ruby server.rb
|
||
== Sinatra/1.4.4 has taken the stage on 4567 for development with backup from Thin
|
||
Thin web server (v1.6.1 codename Death Proof)
|
||
Maximum connections set to 1024
|
||
Listening on localhost:4567, CTRL+C to stop</pre>
|
||
|
||
<p>
|
||
ブラウザでアクセスしてみます:
|
||
</p>
|
||
|
||
<p>
|
||
<a href="http://www.flickr.com/photos/42332031@N02/10778040563/" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://www.flickr.com/photos/42332031@N02/10778040563/', '');" title="localhost:4567 by kazu634, on Flickr"><img src="http://farm6.staticflickr.com/5515/10778040563_b0c76fd135_z.jpg" alt="localhost:4567" width="640" height="152" /></a>
|
||
</p>
|
||
|
||
<h2>
|
||
最後に
|
||
</h2>
|
||
|
||
<p>
|
||
get だけでなく、post などにも簡単に対応できるので、すごい簡単に使えて驚きました。個人的なプロジェクトで活用してみようと思います。参考にした/これから参考にするサイトはここらへんです:
|
||
</p>
|
||
|
||
<ul>
|
||
<li>
|
||
<a href="http://d.hatena.ne.jp/meganii/20120229/1330467948" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/meganii/20120229/1330467948', 'SinatraでTwitterBootstrapを使ってTODOアプリを作ってみよう – ギークを夢見るじょーぶん男子');">SinatraでTwitterBootstrapを使ってTODOアプリを作ってみよう – ギークを夢見るじょーぶん男子</a>
|
||
</li>
|
||
<li>
|
||
<a href="http://qiita.com/futoase/items/9c76b2a50ba31f866f16" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://qiita.com/futoase/items/9c76b2a50ba31f866f16', 'Ruby – 既存のテーブル用のマイグレーションファイルをSequelで作成する – Qiita');">Ruby – 既存のテーブル用のマイグレーションファイルをSequelで作成する – Qiita</a>
|
||
</li>
|
||
<li>
|
||
<a href="http://kozo002.blogspot.jp/2012/04/rubybundler-sinatra.html" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://kozo002.blogspot.jp/2012/04/rubybundler-sinatra.html', '[ruby]最初に知っておけば良かったbundlerの使い方 sinatra編 | Into my web');">[ruby]最初に知っておけば良かったbundlerの使い方 sinatra編 | Into my web</a>
|
||
</li>
|
||
<li>
|
||
<a href="http://d.hatena.ne.jp/satrex/20120304/1330831922" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/satrex/20120304/1330831922', 'sinatra+shotgunの使い方(解答編) – 電気羊の執務室');">sinatra+shotgunの使い方(解答編) – 電気羊の執務室</a>
|
||
</li>
|
||
<li>
|
||
<a href="http://qiita.com/rhzk/items/606c1d58afcfb06f14c4" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://qiita.com/rhzk/items/606c1d58afcfb06f14c4', 'sinatraで一からwebアプリケーションを構築する – Qiita');">sinatraで一からwebアプリケーションを構築する – Qiita</a>
|
||
</li>
|
||
</ul>
|
||
|
||
<hr />
|
||
|
||
<div class="amazlet-box" style="margin-bottom: 0px;">
|
||
<div class="amazlet-image" style="float: left; margin: 0px 12px 1px 0px;">
|
||
<a href="https://www.amazon.co.jp/exec/obidos/ASIN/B006C3HPS4/simsnes-22/ref=nosim/" onclick="__gaTracker('send', 'event', 'outbound-article', 'https://www.amazon.co.jp/exec/obidos/ASIN/B006C3HPS4/simsnes-22/ref=nosim/', '');" target="_blank" name="amazletlink"><img style="border: none;" src="https://images-na.ssl-images-amazon.com/images/I/51P7j5N0GgL._SL160_.jpg" alt="Sinatra: Up and Running" /></a>
|
||
</div>
|
||
|
||
<div class="amazlet-info" style="line-height: 120%; margin-bottom: 10px;">
|
||
<div class="amazlet-name" style="margin-bottom: 10px; line-height: 120%;">
|
||
<p>
|
||
<a href="https://www.amazon.co.jp/exec/obidos/ASIN/B006C3HPS4/simsnes-22/ref=nosim/" onclick="__gaTracker('send', 'event', 'outbound-article', 'https://www.amazon.co.jp/exec/obidos/ASIN/B006C3HPS4/simsnes-22/ref=nosim/', 'Sinatra: Up and Running');" target="_blank" name="amazletlink">Sinatra: Up and Running</a>
|
||
</p>
|
||
|
||
<div class="amazlet-powered-date" style="font-size: 80%; margin-top: 5px; line-height: 120%;">
|
||
posted with <a href="http://www.amazlet.com/" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://www.amazlet.com/', 'amazlet');" title="amazlet" target="_blank">amazlet</a> at 13.11.10
|
||
</div>
|
||
</div>
|
||
|
||
<div class="amazlet-detail">
|
||
O’Reilly Media (2011-11-21)
|
||
</div>
|
||
|
||
<div class="amazlet-sub-info" style="float: left;">
|
||
<div class="amazlet-link" style="margin-top: 5px;">
|
||
<a href="https://www.amazon.co.jp/exec/obidos/ASIN/B006C3HPS4/simsnes-22/ref=nosim/" onclick="__gaTracker('send', 'event', 'outbound-article', 'https://www.amazon.co.jp/exec/obidos/ASIN/B006C3HPS4/simsnes-22/ref=nosim/', 'Amazon.co.jpで詳細を見る');" target="_blank" name="amazletlink">Amazon.co.jpで詳細を見る</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="amazlet-footer" style="clear: left;">
|
||
</div>
|
||
</div>
|
||
</div>
|