Class: Apress::Documentation::Dsl::Utils::SwaggerBindPointExtractor

Inherits:
Object
  • Object
show all
Defined in:
lib/apress/documentation/dsl/utils/swagger_bind_point_extractor.rb

Overview

Private: “Распознает” идентификатор html-tag’а в SwaggerUI по переданному блоку Swagger::Blocks, в который будет вставлена дополнительная информация из SwaggerDocument.

Идея: Выполнить блок DSL swagger_path из Swagger::Blocks без вызовов реальных методов.

Алгоритм:

- Выполняем переданный блок от swagger_path, пропуская неизвестные методы
- как только нашли первый вызов "key :operationId, value", запоминаем value
- тоже самое для key :tags, [value]
- если после выполнения блока оба значения заданы (@tag, @operation_id) возвращаем результат

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &block) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/apress/documentation/dsl/utils/swagger_bind_point_extractor.rb', line 21

def method_missing(name, *args, &block)
  if block_given?
    instance_eval(&block)
  elsif name.to_s == 'key'
    case args[0]
    when :operationId
      @operation_id ||= args[1]
    when :tags
      @tag ||= args[1].try(:first)
    end
  end
end

Instance Method Details

#extract(&block) ⇒ Object



16
17
18
19
# File 'lib/apress/documentation/dsl/utils/swagger_bind_point_extractor.rb', line 16

def extract(&block)
  instance_eval(&block)
  "#{@tag}_#{@operation_id}" if @tag && @operation_id
end