Sha256: 99d29b0b6d20f29f884001aa0d21a851da0814b85a8df5e264598fc806e5bb60

Contents?: true

Size: 734 Bytes

Versions: 1

Compression:

Stored size: 734 Bytes

Contents

# frozen_string_literal: true
module WeakSwaggerParameters
  module Definitions
    class HashProperty
      include WeakSwaggerParameters::Definitions::PropertyContainer

      def initialize(name, description, &block)
        @name = name
        @description = description

        instance_eval(&block) if block.present?
      end

      def apply_docs(parent_node)
        name = @name
        description = @description
        definitions = child_definitions

        parent_node.instance_eval do
          property name, description: description, type: :object do
            hash_node = self
            definitions.each { |definition| definition.apply_docs(hash_node) }
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
weak_swagger_parameters-0.3.0 lib/weak_swagger_parameters/definitions/hash_property.rb