class NvimConf::Writers::Documentation::Orchestrator

Constants

NON_WRITABLE_MANAGER

Public Class Methods

new(managers, io, configuration = nil) click to toggle source
# File lib/nvim_conf/writers/documentation/orchestrator.rb, line 12
def initialize(managers, io, configuration = nil)
  @managers = managers
  @io = io
  @configuration = configuration || default_configuration
end

Public Instance Methods

aggregate_writes() click to toggle source
# File lib/nvim_conf/writers/documentation/orchestrator.rb, line 18
def aggregate_writes
  return unless @configuration[:documented]

  write_main_header

  writers = [
    [
      NvimConf::Writers::Documentation::Settings, NvimConf::Managers::Settings
    ],
    [
      NvimConf::Writers::Documentation::Mappings, NvimConf::Managers::Mappings
    ],
    [
      NvimConf::Writers::Documentation::Plugins, NvimConf::Managers::Plugins
    ],
    [
      NvimConf::Writers::Documentation::Globals, NvimConf::Managers::Globals
    ]
  ]

  writers.each_with_index do |relevant_classes, index|
    writer_class, manager_class = *relevant_classes
    managers = @managers.select { |manager| manager.instance_of?(manager_class) }

    next if managers.length.zero?

    writer_class.new(
      managers,
      @io
    ).aggregate_writes

    @io.write("\n\n") if index != (writers.length - 1)
  end
end

Private Instance Methods

write_main_header() click to toggle source
# File lib/nvim_conf/writers/documentation/orchestrator.rb, line 55
def write_main_header
  @io.write(
    "# Configuration Documentation Vim - NvimConf\n\n"
  )
end