Sha256: 7532f81177c56a4a5df4a8371d33e9477438a43b778473e7ddbf08904e5d70d3

Contents?: true

Size: 1.43 KB

Versions: 1

Compression:

Stored size: 1.43 KB

Contents

module Apress
  module Documentation
    module Dsl
      module Modules
        # Protected: Точка входа для построения DS
        # используется через делегацию в модуле Apress::Documentation
        #
        #
        # module_slug - Symbol - слаг модуля
        # fields - Hash(optional, default - {}) - поля для установки в короткой записи
        #          (например, Apress::Documentation.build(:slug, title: 'name'))
        # &block - Proc(optional) - вызовы DSL методов
        #
        # Examples
        #
        #   Apress::Documentation.build(:module) do
        #     name 'some module'
        #     description 'tests'
        #   end
        #
        #   Apress::Documentation.build(:module) do
        #     document(:some, title: 'Some doc') do
        #       description 'Тут вставить описание'
        #       publicity 'Публичное'
        #     end
        #   end
        #
        def build(module_slug, fields = {}, &block)
          module_slug = module_slug.to_s
          document = self[module_slug]
          document ||= Apress::Documentation::Storage::Document.new(module_slug)
          Apress::Documentation::Storage::DependencyGraph.instance.add_document(document)
          self << document

          document.compile(fields, &block)
        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/modules.rb