【Sinatra】サーバを再起動せずにコードの更新を行う


sinatraで、コードを変更した際にサーバを再起動しないとコードの変更が反映されません。面倒くさいさいですよね。

ということで、自動でコードの変更がが反映されるようにしましょう!

※参考
https://codingcast.techdrive.top/sinatra/bundler/
https://qiita.com/k-ta-yamada/items/9e35c5f8b31862267e01

*windows10環境を使用しています。

Gemファイルの作成

アプリを作成しているディレクトリまで移動してください。
そこでGemファイルの作成を行います。

$ bundle init

でGemファイルが作成されます。

windows環境ではGemファイルは隠しファイルになってるので、隠しファイルの表示を行いましょう。
フォルダのエクスプローラの「表示」オプションから隠しフォルダの設定の変更を行うことが出来ます。

オプションを選択します

表示オプションを選択後、「隠しファイル、隠しフォルダー、および隠しドライブを表示する」を選択後、OKを押します。

Gemファイルの編集

次にGemファイルの編集を行います。

Gemfile.
source 'http://rubygems.org'

gem 'sinatra'
gem 'sinatra-reloader'

sinatraとsinatraリローダーを表記しています。

アプリのファイルの編集

myapp.rb
require 'rubygems'
require 'bundler'

Bundler.require

こちらの表記をアプリに対して行います。

こう記述することによって、Gemファイルに記述されている内容を持ってくることができ、require~を書かなくて済むようになります。

もう一度bundle installを実施します。

これでコードの編集時にサーバを再起動しなくても、コードの変更が自動で反映されます。