Sha256: f0cb78c7b177571f04003e84bfe9307b00abfb4a57fe2a643d76f0c8f51e9598

Contents?: true

Size: 1.01 KB

Versions: 5

Compression:

Stored size: 1.01 KB

Contents

module GrapeSwagger
  module DocMethods
    class TagNameDescription
      class << self
        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| route.options[: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
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
grape-swagger-0.24.0 lib/grape-swagger/doc_methods/tag_name_description.rb
grape-swagger-0.23.0 lib/grape-swagger/doc_methods/tag_name_description.rb
grape-swagger-0.22.0 lib/grape-swagger/doc_methods/tag_name_description.rb
grape-swagger-0.21.0 lib/grape-swagger/doc_methods/tag_name_description.rb
grape-swagger-0.20.3 lib/grape-swagger/doc_methods/tag_name_description.rb