sinatra + guard + foreman + chrome で LiveReload 環境を整える

sinatra + guard + foreman + chrome で LiveReload するための環境を簡単にまとめてみました。

[必要なもの]


ブラウザのリロードは Chrome の LiveReload を使用します。

1.適当なディレクトリに以下の4つのファイルを作成します。

[app.rb]

require 'sinatra'
require 'sinatra/reloader' if development?

get '/' do
  "Hello, World"
end

[Gemfile]

source :rubygems

gem 'sinatra'
gem 'haml'
 
group :development do
  gem 'sinatra-contrib'
  gem 'guard'
  gem 'guard-livereload', require: false
end

[Guardfile]

guard 'livereload' do
 # sinatra
  watch(%r{.+\.rb})
  watch(%r{views/.+\.(haml|sass|css)})
end

[Procfile]

guard: bundle exec guard -i
web: bundle exec ruby app.rb -p 5000

2.bundle install

ファイルを作成し終わったら bundle で gem のインストールします。

$ bundle intall

3.foreman で guard と sinatra の起動

今回は foreman で guard と sinatra を一緒に起動します。

$ foreman start

実行するコマンドなどは Procfile ファイルで設定します。
コマンドオプションなどを指定したい場合はこのファイルを編集します。

4.Chrome で LiveReload ボタンを押す

http://localhost:5000/ にアクセスしてページを開きます。
ページを開いたあとに LiveReload のアイコンをクリックします。
Chrome に LiveReload の拡張をインストールしたら以下のようなアイコンが URL バーの右側に追加されています。
http://gyazo.com/62fa8348209cd14e205a22efbfa9096c.png


クリックしたら foreman を起動しているコンソールに

23:00:30 guard.1 | 23:00:30 - INFO - Browser connected.

とログが追加されているのを確認してください。

5.LiveReload する

あとは app.rb などを編集して保存すれば自動的にブラウザが更新されます。
これで最低限の LiveReload 環境を実現することができます。