module ActionDispatch::Routing::Mapper::Base

def mount(app, options = nil)

used to navigate to this mounted app.
This will generate the `exciting_path` and `exciting_url` helpers which can be

mount(SomeRackApp, at: "some_route", as: "exciting")

use the `:as` option:
`some_rack_app_path` or `some_rack_app_url`. To customize this helper's name,
named after the class specified, so for the above example the helper is either
All mounted applications come with routing helpers to access them. These are

For options, see `match`, as `mount` uses it internally.

mount SomeRackApp, at: "some_route"

Mount a Rack-based application to be used within the application.
def mount(app, options = nil)
  if options
    path = options.delete(:at)
  elsif Hash === app
    options = app
    app, path = options.find { |k, _| k.respond_to?(:call) }
    options.delete(app) if app
  end
  raise ArgumentError, "A rack application must be specified" unless app.respond_to?(:call)
  raise ArgumentError, <<~MSG unless path
    Must be called with mount point
      mount SomeRackApp, at: "some_route"
      or
      mount(SomeRackApp => "some_route")
  MSG
  rails_app = rails_app? app
  options[:as] ||= app_name(app, rails_app)
  target_as       = name_for_action(options[:as], path)
  options[:via] ||= :all
  match(path, { to: app, anchor: false, format: false }.merge(options))
  define_generate_prefix(app, target_as) if rails_app
  self
end