ページ

2012年7月16日月曜日

Sinatraの自動リロード

2012/7/16 10:00 指摘によりsinatra-contribを使う旨を追記&修正

未だにshotgun使ってた。

参考:
モノクロームの中: sinatra (2) - オートリロード -
Sinatra::Reloader (part of Sinatra::Contrib)

gemをインストール
% gem install sinatra-contrib

Classicスタイル
require "sinatra"
require "sinatra/reloader" if development?

Modularスタイル
require "sinatra/base"
require "sinatra/reloader"

class MyApp < Sinatra::Base
  configure :development do
    register Sinatra::Reloader
  end
end
developmentモードで起動したときに有効になる。(デフォルトでdevelopmentモード)

ところでrackup -E で設定できるのってdevelopmentとtestとproductionだけで合ってるんだろうか。ハッキリとこれです!って言ってるのが見つけられなかった。


あと、Bundler使うパターン

Gemfileがこう
source :rubygems

gem 'sinatra', require: 'sinatra/base'

group :development do
  gem 'sinatra-contrib', require: 'sinatra/reloader'
end
で、本体のほうがこう
class App < Sinatra::Base
  configure :development do
    Bundler.require :development
    register Sinatra::Reloader
  end
end
bundle exec rackupで起動しよう。

ファイル単位でもリロードの設定を変えられるようだ。
http://www.sinatrarb.com/contrib/reloader


今回の、shokaiさんはいつからやっていた?は2年と3ヶ月前でした。
sinatra開発時に自動リロードする - 橋本詳解

1 件のコメント:

  1. sinatra-reloaderはsinatra-contribというgemに取り込まれたのでこっち使ったほうがいいと思います

    https://github.com/sinatra/sinatra-contrib

    返信削除