Module: RocketDocs::Router

Defined in:
lib/rocket_docs/router.rb

Class Method Summary collapse

Class Method Details

.api_controller_namesObject



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

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
# File 'lib/rocket_docs/router.rb', line 11

def api_controller_paths(controllers = api_controllers)
  controllers.map do |controller|
    controller.action_methods.map do |action_method|
      controller.instance_method(action_method).source_location.first
    end
  end.flatten.uniq.compact
end

.api_controllers(names = api_controller_names) ⇒ Object



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

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



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

def app_routes
  Rails.application.class.routes
end

.routesObject



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

def routes
  app_routes.routes
end

.routes_for_version(version) ⇒ Object



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

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

.versionsObject



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

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