Sha256: b5226546facd9543d6a1a75a70923e109fbfc912dbaf3b10caade9cf42c73f7c

Contents?: true

Size: 1.71 KB

Versions: 15

Compression:

Stored size: 1.71 KB

Contents

# frozen_string_literal: true

module Nexmo
  module OAS
    module Renderer
      module Presenters
        class Versions
          def initialize(definition_name)
            @definition_name = definition_name
          end

          def base_name
            @base_name ||= @definition_name.gsub(/\.v\d+/, '')
          end

          def current_version
            @current_version ||= begin
                                   m = /\.v(\d+)/.match(@definition_name)
                                   m.nil? ? '1' : m[1]
                                 end
          end

          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

          def definitions
            @definitions ||= begin
                               Dir.glob("#{API.oas_path}/**/*.yml").map do |file|
                                 file.sub("#{API.oas_path}/", '').chomp('.yml')
                               end
                             end
          end
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
nexmo-oas-renderer-2.7.2 lib/nexmo/oas/renderer/presenters/versions.rb
nexmo-oas-renderer-2.7.1 lib/nexmo/oas/renderer/presenters/versions.rb
nexmo-oas-renderer-2.7.0 lib/nexmo/oas/renderer/presenters/versions.rb
nexmo-oas-renderer-2.6.0 lib/nexmo/oas/renderer/presenters/versions.rb
nexmo-oas-renderer-2.5.0 lib/nexmo/oas/renderer/presenters/versions.rb
nexmo-oas-renderer-2.4.1 lib/nexmo/oas/renderer/presenters/versions.rb
nexmo-oas-renderer-2.4.0 lib/nexmo/oas/renderer/presenters/versions.rb
nexmo-oas-renderer-2.3.0 lib/nexmo/oas/renderer/presenters/versions.rb
nexmo-oas-renderer-2.2.0 lib/nexmo/oas/renderer/presenters/versions.rb
nexmo-oas-renderer-2.1.3 lib/nexmo/oas/renderer/presenters/versions.rb
nexmo-oas-renderer-2.1.2 lib/nexmo/oas/renderer/presenters/versions.rb
nexmo-oas-renderer-2.1.1 lib/nexmo/oas/renderer/presenters/versions.rb
nexmo-oas-renderer-2.1.0 lib/nexmo/oas/renderer/presenters/versions.rb
nexmo-oas-renderer-2.0.1 lib/nexmo/oas/renderer/presenters/versions.rb
nexmo-oas-renderer-2.0.0 lib/nexmo/oas/renderer/presenters/versions.rb