Class: Missing::Route

Inherits:
Object
  • Object
show all
Defined in:
lib/missing/route.rb

Class Method Summary collapse

Class Method Details

.allObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/missing/route.rb', line 3

def self.all
  routes = Hash.new([])

  Rails.application.routes.routes.map(&:defaults).each do |d|
    next if d[:controller].blank? || d[:action].blank?

    controller = d[:controller].classify.to_s + "Controller"
    begin
      controller.split("::").inject(Module) do |r, e|
        r.const_get(e)
      end
    rescue
      controller = d[:controller].classify.to_s.pluralize + "Controller"
    end

    if routes[controller].present?
      routes[controller] << d[:action].to_s
    else
      routes[controller] = [d[:action].to_s]
    end
  end

  routes
end