Module: RocketDocs::Router

Defined in:
lib/rocket_docs/router.rb

Class Method Summary collapse

Class Method Details

.api_controller_namesObject



27
28
29
30
31
32
# File 'lib/rocket_docs/router.rb', line 27

def api_controller_names
  ar = routes.named_routes.select do |_k, route|
    route && route.path && route.path.requirements[:version]
  end
  ar.values.map { |r| r.defaults[:controller] }.uniq
end

.api_controller_paths(controllers = api_controllers) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/rocket_docs/router.rb', line 11

def api_controller_paths(controllers = api_controllers)
  cp = controllers.map do |c|
    c.instance_methods(false).map do |m|
      c.instance_method(m).source_location.first
    end
  end
  cp.flatten.uniq.compact
end

.api_controllers(names = api_controller_names) ⇒ Object



20
21
22
23
24
25
# File 'lib/rocket_docs/router.rb', line 20

def api_controllers(names = api_controller_names)
  names.map do |cn|
    cn += '_controller'
    cn.classify.constantize
  end
end

.api_fullObject



4
5
6
7
8
9
# File 'lib/rocket_docs/router.rb', line 4

def api_full
  result = {}
  versions.each { |v| result[v] = {} }
  result.each { |k, v| fill_controllers_hash_for_version(k, v) }
  result
end

.app_routesObject



50
51
52
# File 'lib/rocket_docs/router.rb', line 50

def app_routes
  Rails.application.class.routes
end

.routesObject



46
47
48
# File 'lib/rocket_docs/router.rb', line 46

def routes
  app_routes.routes
end

.routes_for_version(version) ⇒ Object



34
35
36
37
38
39
# File 'lib/rocket_docs/router.rb', line 34

def routes_for_version(version)
  routes.to_a.select do |r|
    versions = extract_versions_from_route(r)
    versions && versions.include?(version)
  end
end

.versionsObject



41
42
43
44
# File 'lib/rocket_docs/router.rb', line 41

def versions
  routes.to_a.map { |r| extract_versions_from_route(r) }
    .flatten.uniq.compact
end