Class: Giblish::GitIndexConfigBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/giblish/config_builders/git_index_config_builder.rb

Overview

AIDEV-NOTE: Builder for git-specific Index configuration with history support

Class Method Summary collapse

Class Method Details

.build(config_opts, resource_paths, doc_attr, git_repo_dir) ⇒ IndexConfig

Builds complete Index configuration with git history support. Returns a null configuration if index generation is disabled.

Parameters:

  • config_opts (CmdLine::Options)

    User configuration with no_index flag

  • resource_paths (ResourcePaths)

    Resolved paths for templates

  • doc_attr (DocAttrBuilder)

    Document attribute builder

  • git_repo_dir (Pathname)

    Path to git repository root

Returns:

  • (IndexConfig)

    Configuration with index generation and git history support



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/giblish/config_builders/git_index_config_builder.rb', line 16

def self.build(config_opts, resource_paths, doc_attr, git_repo_dir)
  return IndexConfigBuilder.null_config if config_opts.no_index

  post_builders = []
  post_builders << AddHistoryPostBuilder.new(git_repo_dir)

  adoc_src_provider = SubtreeIndexGit.new(
    {erb_template_path: resource_paths.idx_erb_template_abs}
  )

  idx = SubtreeInfoBuilder.new(
    doc_attr,
    nil,
    adoc_src_provider,
    config_opts.index_basename
  )
  post_builders << idx

  IndexConfig.new(post_builders: post_builders)
end