class OptimusPrime::NormaliseUniqueURL
Public Class Methods
new(app)
click to toggle source
# File lib/optimus_prime.rb, line 7 def initialize(app) @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/optimus_prime.rb, line 11 def call(env) match = env["QUERY_STRING"].match(/_OpID=(\d)+-(\d)+(.*)?/) if match && match[match.size - 1] != "" path_to_be_prepended = match[match.size - 1] if path_to_be_prepended != "" && path_to_be_prepended != nil timestamps = env["QUERY_STRING"].match(/[_OpID=](\d)+-(\d)+/) puts path_to_be_prepended puts env["PATH_INFO"] path_to_be_prepended.insert(0, '/') unless path_to_be_prepended.start_with?('/') && env["PATH_INFO"].start_with?('/') env["PATH_INFO"] = env["PATH_INFO"] << path_to_be_prepended env["REQUEST_PATH"] = env["PATH_INFO"].clone env["QUERY_STRING"] = "_OpID#{timestamps}" env["REQUEST_URI"] = "#{env["PATH_INFO"]}?#{env["QUERY_STRING"]}" end end @app.call(env) end