class Nexmo::OAS::Renderer::Presenters::Groups
Public Class Methods
new(definition)
click to toggle source
# File lib/nexmo/oas/renderer/presenters/groups.rb, line 8 def initialize(definition) @definition = definition end
Public Instance Methods
groups()
click to toggle source
# File lib/nexmo/oas/renderer/presenters/groups.rb, line 12 def groups tags = @definition.raw['tags'] # For now we only use the first tag in the list as an equivalent for the old x-group functionality @groups = @definition.endpoints.group_by do |endpoint| next nil unless tags endpoint.raw['tags']&.first end # We want to use the order in which the tags are defined in the definition, so iterate over the tags # and store the index against the tag name. We'll use this later for sorting ordering = {} tags&.each_with_index do |tag, index| ordering[tag['name'].capitalize] = index end # Sort by the order in which they're defined in the definition @groups = @groups.sort_by do |name, _| next -1 if name.nil? ordering[name.capitalize] || 999 end end