使っています
# my_app.rb
load 'index.rb'
そして、このようにサーバーを起動します
Ruby my_app.rb
.
Sinatra FAQ を参照してください。
「変更時にSinatraアプリをリロードするにはどうすればよいですか?」
まず、インプロセスコードをRubyでリロードするのは難しく、すべてのシナリオで機能するソリューションを持つことは技術的に不可能です。
そのため、アウトプロセスの再読み込みをお勧めします。
まず、インストールする必要があります rerun まだインストールしていない場合:
$ gem install rerun
次のようにSinatraアプリを起動した場合:
$ Ruby app.rb
リロードのために必要なのは、代わりにこれを行うことです:
$ rerun 'Ruby app.rb'
たとえば、ラックアップを使用している場合は、代わりに次の手順を実行します。
$ 'rackup'を再実行
あなたはアイデアを得る。
それでもインプロセスのリロードが必要な場合は、
Sinatra::Reloader
。
gemインストールsinatra-reloader
require 'sinatra'
require 'sinatra/reloader'
注:sinatraハンドラー(および場合によってはいくつかのsinatraサーバー構成コマンド)のみをリロードしますが、手動でリロードする必要があるカスタムファイルはリロードしません。
rerun
gemを使用できます。
gem install rerun
rerun 'Ruby app.rb'
または、ラックアップを使用している場合
rerun 'rackup'
gem install sinatra-reloader
require 'sinatra/base'
require "sinatra/reloader"
class MyApp < Sinatra::Base
register Sinatra::Reloader
get '/' do
"Hello Testing1!"
end
end
環境変数を開発用に設定し、条件付きでgemをロードすることができます。
Passenger Standalone でアプリケーションを実行するときは、tmp/always_restart
ファイル:
$ touch tmp/always_restart.txt
詳細については、乗客 ドキュメント をご覧ください。
Shotgun gemが好きです。モジュール式のSinatraアプリを使用していて、config.ruファイルがある場合は、簡単に実行できます。
shotgun config.ru
Gemを確認してください here 。それはかなり簡単で、設定は必要ありません。
Windowsでは、このために restart gem を使用しています。
restart Ruby my_app.rb
または、ラックアップ付き:
restart rackup
詳細については here をご覧ください。
ガードラックを使用できます。 dblock.orgの記事 から削除:
これをGemfileに追加します。
group :development do
gem "guard"
gem "guard-bundler"
gem "guard-rack"
end
次に、プロジェクトのルートに次のコンテンツでGuardfile
を作成します。
guard 'bundler' do
watch('Gemfile')
end
guard 'rack' do
watch('Gemfile.lock')
watch(%r{^(config|app|api)/.*})
end
最後に、Guardを次のように実行します:bundle exec guard
、およびrackup
は毎回リロードされます。
テンプレートを変更するだけの場合、環境を開発に設定すると、sinatraは常にそれらを再レンダリングします。
Ruby app.rb -e development