Module: Explicit::Documentation

Extended by:
Documentation
Included in:
Documentation
Defined in:
lib/explicit/documentation.rb,
lib/explicit/documentation/builder.rb,
lib/explicit/documentation/section.rb

Defined Under Namespace

Modules: Markdown, Output, Page Classes: Builder

Constant Summary collapse

Section =
::Data.define(:name, :pages) do
  def contains_request?
    pages.any?(&:request?)
  end
end

Instance Method Summary collapse

Instance Method Details

#new(&block) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/explicit/documentation.rb', line 8

def new(&block)
  engine = ::Class.new(::Rails::Engine)

  builder = Builder.new(engine).tap do |builder|
    builder.instance_eval &block
    builder.merge_request_examples_from_file!
  end

  engine.define_singleton_method(:documentation_builder) { builder }

  engine.routes.draw do
    get "/", to: builder.webpage, as: :explicit_documentation_webpage
    match "/swagger", to: builder.swagger, as: :explicit_documentation_swagger, via: [:get, :options]
  end

  engine
end