Sha256: d31e795ce7be8f67ca85e41e315b9d994b5ee1c01e46038ea07a3a8cb13f4d9e

Contents?: true

Size: 686 Bytes

Versions: 9

Compression:

Stored size: 686 Bytes

Contents

# frozen_string_literal: true

module GrapeSwagger
  module DocMethods
    class OptionalObject
      class << self
        def build(key, options, request = nil)
          if options[key]
            return evaluate(key, options, request) if options[key].is_a?(Proc)
            options[key]
          else
            request.send(default_values[key])
          end
        end

        def evaluate(key, options, request)
          options[key].arity.zero? ? options[key].call : options[key].call(request)
        end

        def default_values
          {
            host: 'host_with_port',
            base_path: 'script_name'
          }
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
grape-swagger-0.31.0 lib/grape-swagger/doc_methods/optional_object.rb
grape-swagger-0.30.1 lib/grape-swagger/doc_methods/optional_object.rb
grape-swagger-0.30.0 lib/grape-swagger/doc_methods/optional_object.rb
grape-swagger-0.29.0 lib/grape-swagger/doc_methods/optional_object.rb
grape-swagger-0.28.0 lib/grape-swagger/doc_methods/optional_object.rb
grape-swagger-0.27.3 lib/grape-swagger/doc_methods/optional_object.rb
grape-swagger-0.27.2 lib/grape-swagger/doc_methods/optional_object.rb
grape-swagger-0.27.1 lib/grape-swagger/doc_methods/optional_object.rb
grape-swagger-0.27.0 lib/grape-swagger/doc_methods/optional_object.rb