2011/09/03 インストールするの間違えてたので修正。
別のPCで試して気付いた><
こんにちは、今日もいいSinatraですね!(?)
そんなこんなでSinatraさんなんですが、
いちいちスクリプトを編集するたびに、
サーバを再起動しなくてはいけないので面倒です><
いや、さすがにこれはないだろうということで、
自動的にリロードする方法を調べてやってみてたんですが、
よくわからなくて悩みまくったので覚え書き。
ちなみに環境はWindows 7+Ruby 1.9.2です。
Gemで「sinatra-auto-reloadsinatra-reloader」をインストールする
gem install sinatra-reloader
(※違うのインストールしてたので修正)
こいつが自動的にリロードしてくれる優れもの!
前回いっしょにインストールすればよかったね
リロードに関する処理を付け足す
# -*- coding: utf-8 -*- # app.rb require 'sinatra/base' class MyApp < Sinatra::Base # 開発モードのときリロード機構をONにする if development? require 'sinatra/reloader' register Sinatra::Reloader end # テスト用 get '/' do 'test' end end
「register Sinatra::Reloader」がポイント!
というか僕が付けてなくて動かないよー><となってた場所。
ところで、registっていう英単語はないそうですね(
# -*- coding: utf-8 -*- # config.ru require File.dirname( __FILE__ ) + '/app.rb' MyApp.run! :host => 'localhost', :port => 4567
こっちは前回とほぼ同じ。
いつもは同じ階層にあるやつを「require './〜'」で
読み込んでたんですが、なんかあんまよくないっぽい?
というか、他の人はみんなFile.dirname( __FILE__ )使ってたので
そっちにしてみました。
サーバを起動
ruby config.ru
前回同様、config.ruを実行してサーバを起動。
http://127.0.0.1:4567/にアクセスすると「test」と表示されるはず
ちゃんとリロードできるかチェック
# テスト用 get '/' do 'みょん' end
テケトーに編集して、サーバを再起動しないでアクセスすると……
これでバッチリですね!!