Sinatra and Ruby 1.9.2 on Shotgun で LoadError

環境:

ruby 1.9.2p0
sinatra (1.1.0, 1.0)
shotgun (0.8)

1.9.1 では以下設定で問題なく Shotgun が起動していた。

config.ru

require 'app'
run Sinatra::Application

app.rb

require 'sinatra'
get '/' do
  'hello'
end

Shotgun 起動

shotgun -o 0.0.0.0 -p 4567

しかし 1.9.2 では Shotgun 起動時 LoadError が発生した。

Boot Error

Something went wrong while loading app.rb
LoadError: no such file to load -- app.rb

以下のように変更したところ問題なく Shotgun が起動するようになった。

config.ru

require File.expand_path(File.dirname(__FILE__)) + '/app'
run Sinatra::Application

Shotgun 起動

shotgun -o 0.0.0.0 -p 4567

refs:
http://stackoverflow.com/questions/4346981/issues-with-sinatra-and-ruby-1-9-2-on-shotgun
http://d.hatena.ne.jp/deeeki/20101120/sinatra_ruby19_passenger
http://d.hatena.ne.jp/nagachika/20101106/rack_on_heroku

  • -

追記

Sinatra アプリを Heroku の Platform Stack: bamboo-mri-1.9.2 で動かそうとした場合も同様に LoadError が発生した(bamboo-mri-1.9.1 では発生せず)

no such file to load -- app (LoadError)

上記のように require の書き方を修正したところ動いた。