From: Michal Fojtik <[email protected]>
---
server/lib/sinatra/rack_matrix_params.rb | 16 +++++++++++++++-
1 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/server/lib/sinatra/rack_matrix_params.rb
b/server/lib/sinatra/rack_matrix_params.rb
index a4528b0..cc038ab 100644
--- a/server/lib/sinatra/rack_matrix_params.rb
+++ b/server/lib/sinatra/rack_matrix_params.rb
@@ -66,8 +66,22 @@ module Rack
# For other methods it's a way complicated ;-)
if env['REQUEST_METHOD']!='POST' and not matrix_params.keys.empty?
+ # Workaround for WEBrick 1.3.1
+ # In WEBrick 1.3.1 variables are set incorectly like:
+ #
+ # GET /api;driver=ec2/hardware_profiles
+ #
+ # REQUEST_PATH =
http://localhost:3001/api;driver=mock/hardware_profiles
+ # REQUEST_URI = /
+ # PATH_INFO = /api;driver=mock/hardware_profiles
+ #
+ if env['REQUEST_PATH'] == '/'
+ env['REQUEST_URI'] = env['PATH_INFO']
+ env['REQUEST_PATH'] = env['PATH_INFO']
+ end
+
# Rewrite current path and query string and strip all matrix params
from it
- env['REQUEST_PATH'], env['PATH_INFO'] =
env['REQUEST_URI'].gsub(/;([^\/]*)/, '').gsub(/\?(.*)$/, '')
+ env['REQUEST_PATH'] = env['REQUEST_URI'].gsub(/;([^\/]*)/,
'').gsub(/\?(.*)$/, '')
env['PATH_INFO'] = env['REQUEST_PATH']
env['QUERY_STRING'].gsub!(/;([^\/]*)/, '')
new_params = matrix_params.collect do |component, params|
--
1.7.4.1