class Nexmo::OAS::Renderer::Presenters::Versions

Public Class Methods

new(definition_name) click to toggle source
# File lib/nexmo/oas/renderer/presenters/versions.rb, line 8
def initialize(definition_name)
  @definition_name = definition_name
end

Public Instance Methods

available_versions() click to toggle source
# File lib/nexmo/oas/renderer/presenters/versions.rb, line 23
def available_versions
  @available_versions ||= begin
                            matches = definitions.select do |definition|
                              definition.match(/^#{base_name}(\.v\d+)?$/) && !definition.include?("#{base_name}/")
                            end

                            matches = matches.map do |definition|
                              m = /\.v(\d+)/.match(definition)
                              next { 'version' => '1', 'name' => definition } unless m

                              { 'version' => m[1], 'name' => definition }
                            end

                            matches.sort_by { |v| v['version'] }
                          end
end
base_name() click to toggle source
# File lib/nexmo/oas/renderer/presenters/versions.rb, line 12
def base_name
  @base_name ||= @definition_name.gsub(/\.v\d+/, '')
end
current_version() click to toggle source
# File lib/nexmo/oas/renderer/presenters/versions.rb, line 16
def current_version
  @current_version ||= begin
                         m = /\.v(\d+)/.match(@definition_name)
                         m.nil? ? '1' : m[1]
                       end
end
definitions() click to toggle source
# File lib/nexmo/oas/renderer/presenters/versions.rb, line 40
def definitions
  @definitions ||= begin
                     Dir.glob("#{API.oas_path}/**/*.yml").map do |file|
                       file.sub("#{API.oas_path}/", '').chomp('.yml')
                     end
                   end
end