Class: Apress::Documentation::Dsl::Utils::SwaggerBindPointExtractor
- Inherits:
-
Object
- Object
- Apress::Documentation::Dsl::Utils::SwaggerBindPointExtractor
- 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 |