Class: NvimConf::Writers::Code::Orchestrator

Inherits:
Object
  • Object
show all
Defined in:
lib/nvim_conf/writers/code/orchestrator.rb

Constant Summary collapse

NON_WRITABLE_MANAGER =
NvimConf::Managers::CompilerConfigurations
WRITER_CONFIGURATION =
{
  NvimConf::Managers::Settings => SettingsWriter,
  NvimConf::Managers::Mappings => MappingsWriter,
  NvimConf::Managers::Plugins => Code::Plugins::Handler,
  NvimConf::Managers::Globals => GlobalsWriter,
  NvimConf::Managers::Requires => RequiresWriter,
  NvimConf::Managers::Commands => CommandsWriter
}

Instance Method Summary collapse

Constructor Details

#initialize(managers, io, configuration = nil) ⇒ Orchestrator

Returns a new instance of Orchestrator.



23
24
25
26
27
# File 'lib/nvim_conf/writers/code/orchestrator.rb', line 23

def initialize(managers, io, configuration = nil)
  @managers = managers
  @io = io
  @configuration = configuration || default_configuration
end

Instance Method Details

#aggregate_writesObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/nvim_conf/writers/code/orchestrator.rb', line 29

def aggregate_writes
  @managers.select { |manager| manager.class != NON_WRITABLE_MANAGER }.each_with_index do |manager, index|
    @io.write(
      NvimConf::Commenter.comment_block(
        @configuration,
        manager_section_name(manager),
        spacer: index.positive?
      )
    )

    if index.positive? || @configuration[:commented]
      @io.write(
        separator
      )
    end

    aggregate_writes_for_manager(manager)
  end
end