diff --git a/lib/sinatra/base.rb b/lib/sinatra/base.rb index 3970312b..0908669f 100644 --- a/lib/sinatra/base.rb +++ b/lib/sinatra/base.rb @@ -951,7 +951,7 @@ module Sinatra builder = Rack::Builder.new builder.use Rack::Session::Cookie if sessions? builder.use Rack::CommonLogger if logging? - builder.use Rack::MethodOverride if methodoverride? + builder.use Rack::MethodOverride if method_override? builder.use ShowExceptions if show_exceptions? middleware.each { |c,a,b| builder.use(c, *a, &b) } @@ -1030,7 +1030,12 @@ module Sinatra set :clean_trace, true set :sessions, false set :logging, false - set :methodoverride, false + set :method_override, false + + class << self + alias_method :methodoverride?, :method_override? + alias_method :methodoverride=, :method_override= + end set :run, false # start server via at-exit hook? set :running, false # is the built-in server running now? @@ -1099,7 +1104,7 @@ module Sinatra set :dump_errors, true set :sessions, false set :logging, Proc.new { ! test? } - set :methodoverride, true + set :method_override, true set :run, Proc.new { ! test? } set :static, true diff --git a/test/settings_test.rb b/test/settings_test.rb index 156377f4..610f55b5 100644 --- a/test/settings_test.rb +++ b/test/settings_test.rb @@ -93,28 +93,33 @@ class SettingsTest < Test::Unit::TestCase assert !@base.bar end - it 'is accessible from instances via #settings' do assert_equal :foo, @base.new.settings.environment end describe 'methodoverride' do it 'is disabled on Base' do - assert ! @base.methodoverride? + assert ! @base.method_override? end it 'is enabled on Application' do - assert @application.methodoverride? + assert @application.method_override? end it 'enables MethodOverride middleware' do - @base.set :methodoverride, true + @base.set :method_override, true @base.put('/') { 'okay' } @app = @base post '/', {'_method'=>'PUT'}, {} assert_equal 200, status assert_equal 'okay', body end + + it 'is backward compatible with methodoverride' do + assert ! @base.methodoverride? + @base.enable :methodoverride + assert @base.methodoverride? + end end describe 'clean_trace' do