Sinatraの自動リロード, オートリロード ,reload
中国からアクセスできません
http://inmonochrome.blogspot.hk/2012/05/sinatra-1.html
http://inmonochrome.blogspot.jp/2012/05/sinatra-2.html
http://zakuni.blogspot.hk/2012/07/sinatra.html
http://d.hatena.ne.jp/shokai/20100423/1272009141
.
├── config
├── config.ru
├── Gemfile
├── Gemfile.lock
├── lib
│ └── app.rb
├── public
├── spec
└── views
Gemfile
source :rubygems
gem 'sinatra', require: 'sinatra/base'
config.ru
$:.unshift File.join(File.dirname(__FILE__), 'lib')
require 'bundler'
Bundler.require
require 'app'
run MyApp
lib/app.rb
class MyApp < Sinatra::Base
# http://www.sinatrarb.com/configuration.html
configure do
set :root, File.expand_path('../../', __FILE__)
end
get '/' do
'Hello World!'
end
end
$ bundle install
$ bundle exec rackup
WEBRickが立ち上がるので、ブラウザ経由のhttp://localhost:9292で結果を確認できると思います。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Gemfile
source :rubygems
gem 'sinatra', require: 'sinatra/base'
group :development do
gem 'sinatra-reloader', require: 'sinatra/reloader'
end
lib/app.rb
class MyApp < Sinatra::Base
configure do
set :root, File.expand_path('../../', __FILE__)
end
# http://www.sinatrarb.com/contrib/reloader
configure :development do
Bundler.require :development
register Sinatra::Reloader
end
get '/' do
'Hello World!'
end
end
$ bundle install
$ bundle exec rackup
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
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
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Ruby][Sinatra]sinatra開発時に自動リロードするAdd Star
今までshotgunでやってたが、shotgunで起動すると別のホストからアクセスできなかったので
sudo gem install sinatra-reloader
require 'sinatra/reloader' if development?
developmentモードで起動した時だけリロード有効になる
ruby main.rb -p 4567 -e development -s webrick