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

http://tobysoft.net/wiki/index.php?Ruby%2Fsinatra%2F%BC%AB%C6%B0%A5%EA%A5%ED%A1%BC%A5%C9%A4%B9%A4%EB%CA%FD%CB%A1

今までshotgunでやってたが、shotgunで起動すると別のホストからアクセスできなかったので

sudo gem install sinatra-reloader



require 'sinatra/reloader' if development?


developmentモードで起動した時だけリロード有効になる

ruby main.rb -p 4567 -e development -s webrick