class NvimConf::Writers::Code::Plugins::Packer

Constants

BLOCK_END
BLOCK_START
BOOTSTRAP_HEADER
BOOTSTRAP_TAIL

Public Class Methods

new(manager, io, configuration) click to toggle source
# File lib/nvim_conf/writers/code/plugins/packer.rb, line 30
def initialize(manager, io, configuration)
  @manager = manager
  @io = io
  @configuration = configuration
  @plugins = install_self(manager.plugins)
end

Public Instance Methods

write() click to toggle source
# File lib/nvim_conf/writers/code/plugins/packer.rb, line 37
def write
  write_start_of_bootstrap
  @io.write(
    BLOCK_START
  )

  @plugins.each do |plugin|
    @io.write(
      "#{plugin_indent(@configuration[:generator].new(plugin).generate)}\n"
    )
  end

  write_tail_of_bootstrap

  @io.write(
    BLOCK_END
  )
end

Private Instance Methods

bootstrap?() click to toggle source
# File lib/nvim_conf/writers/code/plugins/packer.rb, line 80
def bootstrap?
  @manager.bootstraped
end
install_self(plugins) click to toggle source
# File lib/nvim_conf/writers/code/plugins/packer.rb, line 66
def install_self(plugins)
  [Models::Plugin.new("wbthomason/packer.nvim")] + plugins
end
plugin_indent(content) click to toggle source
# File lib/nvim_conf/writers/code/plugins/packer.rb, line 84
def plugin_indent(content)
  [
    " " * @configuration[:indent],
    content
  ].join
end
write_start_of_bootstrap() click to toggle source
# File lib/nvim_conf/writers/code/plugins/packer.rb, line 58
def write_start_of_bootstrap
  return unless bootstrap?

  @io.write(
    BOOTSTRAP_HEADER
  )
end
write_tail_of_bootstrap() click to toggle source
# File lib/nvim_conf/writers/code/plugins/packer.rb, line 70
def write_tail_of_bootstrap
  return unless bootstrap?

  @io.write("\n")
  @io.write(
    plugin_indent(BOOTSTRAP_TAIL)
  )
  @io.write("\n")
end