前のパートに戻る 完了して次のパートへ  

  2-1 Sinatraアプリの新規作成

この章で学べること


- sinatraの導入方法
- sinatra/reloaderの導入

学習キーワード


- bundle init
- bundle install
- Getリクエスト
- sinatra/reloader

まずはアプリケーションのディレクトリを作成しましょう。 以下コマンドを実行して「techpit-lunch(任意)」という名前のディレクトリを作成します。

ディレクトリの作成とsinatraのインストール


$ mkdir techpit-lunch

実行したら、以下コマンドで移動しましょう。

$ cd techpit-lunch

その後、下記を実行してGemfileを作成します。

$ bundle init

次に、Gemfileを開き、sinatraを追記します。

gem 'sinatra'

完了したら、ターミナルから以下コマンドを実行してgemをインストールしましょう。

$ bundle install --path vendor/bundle

--path vendor/bundleを追加することで、vendor/bundleディレクトリ内にgemがインストールされるようになります。 vendorディレクトリ内にはライブラリや他のアプリケーションで共有する外部ライブラリを入れるために主に使われます。

次に、以下コマンドでBOTのプログラムを書くための、rubyファイルを作成しましょう。

$ touch app.rb

作成できたら、作成したapp.rb内に実際にコードを書いていきます。

sinatraをrequireして、root(/)にアクセスしたらhello world!!と表示するように追記します。 requireメソッドで外部ファイルを読み込むことが出来るので、ここではsinatraファイルを読み込みます。以下をapp.rbに追加してください。

require 'sinatra'
get '/' do
  'hello world!!'
end

上記は、root URL(/)をGET(アクセス)したら、hello world!!が表示されるという意味です。 追加して保存したら

bundle exec ruby app.rb 

上記のコマンドでサーバーを立ち上げましょう。実行するとport番号4567でsinatraが起動されます。 ブラウザに localhost:4567 と入力してアクセスするとhello world!!が表示されることを確認しましょう。

sinatra/reloaderの導入


今の状態だと、内容を変更してブラウザをリロードしても変更内容が反映されません。都度sinatraを再起動する作業を行わないといけないので面倒です。 変更後、都度再起動せず変更内容が反映されるように sinatra/reloader のGemを導入しましょう。

Gemfileを以下のように変更します。

# frozen_string_literal: true
source "https://rubygems.org"
gem "sinatra"
gem 'sinatra-contrib' # この一行を追加する

app.rbを以下のように編集して、'sinatra/reloader'をrequireしましょう。

require 'sinatra'
require 'sinatra/reloader' # この一行を追加する

get '/' do
  'hello world!!'
end

追加したら、ターミナルに戻り再度、bundle installを実行し、sinatraを起動した後、app.rbの内容を変更するとブラウザリロードで変更内容が反映されるはずです。

$ bundle install

次の章ではオウム返しbotを作っていきます。

お疲れさまでした!

議論
0 質問
このコースの評価は?