Fix problem with sinatra/rack 2.0 and ruby 2.3
Sinatra 2.0 (or one of its depencies) appears to be problematic with ruby 2.3. Quite some tests in release-4.0 fails with:
TypeError:
can't dup NilClass
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:1092:in `dup'
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:1092:in `block in dispatch!'
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:1092:in `each'
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:1092:in `dispatch!'
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:924:in `block in call!'
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:1076:in `block in invoke'
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:1076:in `catch'
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:1076:in `invoke'
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:924:in `call!'
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:913:in `call'
# ./.bundle/ruby/2.3.0/gems/rack-protection-2.0.5/lib/rack/protection/xss_header.rb:18:in `call'
# ./.bundle/ruby/2.3.0/gems/rack-protection-2.0.5/lib/rack/protection/path_traversal.rb:16:in `call'
# ./.bundle/ruby/2.3.0/gems/rack-protection-2.0.5/lib/rack/protection/json_csrf.rb:26:in `call'
# ./.bundle/ruby/2.3.0/gems/rack-protection-2.0.5/lib/rack/protection/base.rb:50:in `call'
# ./.bundle/ruby/2.3.0/gems/rack-protection-2.0.5/lib/rack/protection/base.rb:50:in `call'
# ./.bundle/ruby/2.3.0/gems/rack-protection-2.0.5/lib/rack/protection/frame_options.rb:31:in `call'
# ./.bundle/ruby/2.3.0/gems/rack-2.0.6/lib/rack/logger.rb:15:in `call'
# ./.bundle/ruby/2.3.0/gems/rack-2.0.6/lib/rack/common_logger.rb:33:in `call'
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:231:in `call'
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:224:in `call'
# ./.bundle/ruby/2.3.0/gems/rack-2.0.6/lib/rack/head.rb:12:in `call'
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:194:in `call'
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:1957:in `call'
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:1502:in `block in call'
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:1729:in `synchronize'
# ./.bundle/ruby/2.3.0/gems/sinatra-2.0.5/lib/sinatra/base.rb:1502:in `call'
# ./.bundle/ruby/2.3.0/gems/rack-test-1.1.0/lib/rack/mock_session.rb:29:in `request'
# ./.bundle/ruby/2.3.0/gems/rack-test-1.1.0/lib/rack/test.rb:266:in `process_request'
# ./.bundle/ruby/2.3.0/gems/rack-test-1.1.0/lib/rack/test.rb:129:in `custom_request'
# ./.bundle/ruby/2.3.0/gems/rack-test-1.1.0/lib/rack/test.rb:66:in `post'
# ./spec/schleuder-api-daemon/requests/list_spec.rb:12:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:48:in `block (3 levels) in <top (required)>'
# ./.bundle/ruby/2.3.0/gems/database_cleaner-1.7.0/lib/database_cleaner/generic/base.rb:16:in `cleaning'
# ./.bundle/ruby/2.3.0/gems/database_cleaner-1.7.0/lib/database_cleaner/base.rb:100:in `cleaning'
# ./.bundle/ruby/2.3.0/gems/database_cleaner-1.7.0/lib/database_cleaner/configuration.rb:86:in `block (2 levels) in cleaning'
# ./.bundle/ruby/2.3.0/gems/database_cleaner-1.7.0/lib/database_cleaner/configuration.rb:87:in `cleaning'
# ./spec/spec_helper.rb:47:in `block (2 levels) in <top (required)>'
When downgrading sinatra and sinatra-contrib to 1.4 (which also downgrades rack to 1.6), the problem vanishes.