class NvimConf::Generators::Plugins::Code::Packer

Constants

COMMAND_ALIAS
COMMAND_PREFIX

Public Class Methods

new(plugin) click to toggle source
# File lib/nvim_conf/generators/code/plugins/packer.rb, line 12
def initialize(plugin)
  @plugin = plugin
end

Public Instance Methods

generate() click to toggle source
# File lib/nvim_conf/generators/code/plugins/packer.rb, line 16
def generate
  generated_call = [
    COMMAND_PREFIX,
    command_call
  ].join(" ")

  args? ? "{#{generated_call}}" : generated_call
end

Private Instance Methods

args?() click to toggle source
# File lib/nvim_conf/generators/code/plugins/packer.rb, line 55
def args?
  @plugin.class.optional_arguments.map do |argument|
    @plugin.send(argument)
  end.any? { |argument| !argument.nil? }
end
command_arguments() click to toggle source
# File lib/nvim_conf/generators/code/plugins/packer.rb, line 38
def command_arguments
  @plugin.class.optional_arguments.map do |argument|
    next if @plugin.send(argument).nil?

    [
      COMMAND_ALIAS[argument] || argument,
      escape_value(@plugin.send(argument))
    ].join(" = ")
  end.compact
end
command_call() click to toggle source
# File lib/nvim_conf/generators/code/plugins/packer.rb, line 27
def command_call
  [
    plugin_name,
    *command_arguments
  ].compact.join(", ")
end
escape_value(value) click to toggle source
# File lib/nvim_conf/generators/code/plugins/packer.rb, line 49
def escape_value(value)
  return value unless value.is_a?(String)

  "'#{value}'"
end
plugin_name() click to toggle source
# File lib/nvim_conf/generators/code/plugins/packer.rb, line 34
def plugin_name
  "'#{@plugin.name}'"
end