Sha256: b88a766b94ca9082b5d40b4cfb6c86d32d9cc4791993297d6234cb84b18fbd7b

Contents?: true

Size: 1.83 KB

Versions: 1

Compression:

Stored size: 1.83 KB

Contents

require_relative 'base_storage'
require_relative '../dsl/document'

module Apress
  module Documentation
    module Storage
      # Protected
      #
      # Внутренний класс системы документации
      # Описывает отдельный документ
      class Document < BaseStorage
        include Apress::Documentation::Dsl::Document
        # Public: Заголовок документа
        json_attr :title
        # Public: Описание документа
        json_attr :description
        # Public: Бизнесс описание - заполняется менаджером
        json_attr :business_desc
        # Public: Наличие тестов, ссылка на задачу с тестами
        json_attr :tests
        # Public: Публичность описываемого функционала - (Защищенный, Публичный)
        json_attr :publicity

        def initialize(slug)
          @slug = slug
        end

        # Public: проверка, необходимо ли для данного документа отображать SwaggerUI
        def swagger?
          !swagger_documents.empty?
        end

        # Public: Хранит дочерние документы
        def documents
          @documents ||= {}
        end

        # Public: Хранит объекты SwaggerDocument для отображения на одной старнице через SwaggerUI
        def swagger_documents
          @swagger_documents ||= {}
        end

        # Public: находит документ верхнего уровня - модуль
        #
        # Returns Document
        def current_module
          Apress::Documentation::Storage::Modules.instance[slug.to_s.split('/').first]
        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/storage/document.rb