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