Sha256: df5925a7877a6a7e4b17e5461b3e5ed8f23de690551d1a053af1c6ecbb94a1e6

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

require 'swagger/swagger_object'
require 'swagger/v2/operation'

module Swagger
  module V2
    # Class representing a Swagger "Path Item Object".
    # @see https://github.com/wordnik/swagger-spec/blob/master/versions/2.0.md#pathItemObject Path Item Object
    class Path < SwaggerObject
      extend Forwardable
      def_delegator :parent, :host

      VERBS = [:get, :put, :post, :delete, :options, :head, :patch].freeze
      VERBS.each do |verb|
        field verb, Operation
      end
      field :parameters, Array[Parameter]

      def operations
        VERBS.each_with_object({}) do |v, h|
          operation = send v
          h[v] = operation if operation
        end
      end

      def uri_template
        "#{parent.host}#{parent.base_path}#{path}"
      end

      def path
        parent.paths.key self
      end

      # Iterates over each Path level parameter.
      def each_parameter
        return if parameters.nil?
        parameters.each do |parameter|
          yield parameter
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
swagger-core-0.3.0 lib/swagger/v2/path.rb