Class: GrapeSwagger::DocMethods::TagNameDescription

Inherits:
Object
  • Object
show all
Defined in:
lib/grape-swagger/doc_methods/tag_name_description.rb

Class Method Summary collapse

Class Method Details

.build(options = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/grape-swagger/doc_methods/tag_name_description.rb', line 5

def build(options = {})
  target_class = options[:target_class]
  namespaces = target_class.combined_namespaces
  namespace_routes = target_class.combined_namespace_routes

  namespace_routes.keys.map do |local_route|
    next if namespace_routes[local_route].map(&:route_hidden).all? { |value| value.respond_to?(:call) ? value.call : value }

    original_namespace_name = target_class.combined_namespace_identifiers.key?(local_route) ? target_class.combined_namespace_identifiers[local_route] : local_route
    description = namespaces[original_namespace_name] && namespaces[original_namespace_name].options[:desc]
    description ||= "Operations about #{original_namespace_name.pluralize}"

    {
      name: local_route,
      description: description
    }
  end.compact
end