Sha256: b1c46843b01c76e76d51ae991421867840f5f3016ba36ce25f07963f927d61fb
Contents?: true
Size: 1.58 KB
Versions: 1
Compression:
Stored size: 1.58 KB
Contents
module Apress module Documentation module Dsl module Utils # Private: "Распознает" идентификатор html-tag'а в SwaggerUI по переданному блоку Swagger::Blocks, # в который будет вставлена дополнительная информация из SwaggerDocument. # # Идея: Выполнить блок DSL swagger_path из Swagger::Blocks без вызовов реальных методов. # # Алгоритм: # - Выполняем переданный блок от swagger_path, пропуская неизвестные методы # - как только нашли первый вызов "key :operationId, value", запоминаем value # - тоже самое для key :tags, [value] # - если после выполнения блока оба значения заданы (@tag, @operation_id) возвращаем результат class SwaggerBindPointExtractor def extract(&block) instance_eval(&block) "#{@tag}_#{@operation_id}" if @tag && @operation_id end 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 end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
apress-documentation-0.4.0 | lib/apress/documentation/dsl/utils/swagger_bind_point_extractor.rb |