Class: Chusaku::Routes

Inherits:
Object
  • Object
show all
Defined in:
lib/chusaku/routes.rb

Overview

Handles extracting information about the Rails project’s routes.

Class Method Summary collapse

Class Method Details

.callHash

Primary method to call.

Example output:

{
  "users" => {
    "edit" => [
      {verb: "GET", path: "/users/:id", name: "edit_user"}
    ],
    "update" => [
      {verb: "PATCH", path: "/users", name: "edit_user"},
      {verb: "PUT", path: "/users", name: "edit_user"}
    ]
  },
  "empanadas" => {
    "create" => [
      {verb: "POST", path: "/empanadas", name: nil}
    ]
  }
}

Returns:

  • (Hash)

    Routes hash



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/chusaku/routes.rb', line 27

def call
  routes = {}

  Rails.application.routes.routes.each do |route|
    controller, action, defaults = extract_data_from(route)
    routes[controller] ||= {}
    routes[controller][action] ||= []

    add_info_for \
      route: route,
      routes: routes,
      controller: controller,
      action: action,
      defaults: defaults
  end

  backfill_routes(routes)
end