SinatraのmodularスタイルでAuthlogicを使うときに起こりがちなエラー

authlogicsinatraのmodularスタイルで使おうとするとsinatra_adapter.rbでこんな感じのエラーが出ることがある。

authlogic-3.0.3/lib/authlogic/controller_adapters/sinatra_adapter.rb:50:in `included': undefined method `before' for Sinatra::Request:Class (NoMethodError)

これは'sinatra'ではなく'sinatra/base'のみrequireした場合に起こる。
たぶんsinatraがmodularスタイルに対応する前に作成されたんじゃないかと思う。

なのでsinatra_adapter.rbを以下のようにSinatra::Baseを使うように変更。

# Sinatra::Request.send(:include, Authlogic::ControllerAdapters::SinatraAdapter::Adapter::Implementation)
Sinatra::Base.send(:include, Authlogic::ControllerAdapters::SinatraAdapter::Adapter::Implementation)

これでどっちでも動くはず。あまりまだ動作をチェックしてない。とりあえずエラーはない。

動かしたバージョンは以下のとおり

sinatra
1.2.6
authlogic
3.0.3

問題はここで報告されててだいぶ経ってるんだけど治ってない。Sinatraで使う人が少ない上にmodularスタイルじゃないと起こらないからかな。。
Sinatra adapter does not work with latest versions of Sinatra, Rack, and Ruby · Issue #80 · binarylogic/authlogic · GitHub