Class: Rails::Hyperdrive::Tools::ListRoutes

Inherits:
Base
  • Object
show all
Defined in:
lib/rails/hyperdrive/tools/list_routes.rb

Class Method Summary collapse

Methods inherited from Base

respond_error, respond_json, respond_text, with_dev_guard

Class Method Details

.call(server_context: nil) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/rails/hyperdrive/tools/list_routes.rb', line 12

def self.call(server_context: nil)
  with_dev_guard do
    list = ::Rails.application.routes.routes.map do |r|
      reqs = r.requirements
      controller = reqs[:controller]
      action     = reqs[:action]
      # Engine mounts have no controller/action, so the pair is nil.
      controller_action = (controller && action) ? "#{controller}##{action}" : nil
      {
        verb: r.verb.to_s,
        path: r.path.spec.to_s.sub(/\(\.:format\)\z/, ""),
        controller_action: controller_action,
        name: r.name
      }
    end
    respond_json(list)
  end
end