class Wallaby::EngineNameFinder

Service object to find the engine name by given request environment variables.

Public Class Methods

find(env) click to toggle source

Use script name to find out the corresponding named route and its engine name.

When it can't find the engine name, it will return empty string. Reason is to prevent it from being run again. @param env [Hash, String] request env or script name @return [String] engine name or empty string if not found

# File lib/services/wallaby/engine_name_finder.rb, line 12
def find(env)
  script_name = env[SCRIPT_NAME] || env[PATH_INFO] if env.is_a? Hash
  script_name = env if env.is_a? String
  return EMPTY_STRING if script_name.blank?

  named_route = Rails.application.routes.routes.find { |route| route.path.match(script_name) }
  named_route.try(:name) || EMPTY_STRING
end