class NvimConf::Writers::Documentation::Settings

Public Class Methods

new(managers, io) click to toggle source
# File lib/nvim_conf/writers/documentation/settings.rb, line 5
def initialize(managers, io)
  @managers = managers
  @io = io
end

Public Instance Methods

aggregate_writes() click to toggle source
# File lib/nvim_conf/writers/documentation/settings.rb, line 10
def aggregate_writes
  return if @managers.empty?

  @io.write(
    Utils::MarkdownFormatter.format_title(
      "Settings",
      level: 2
    )
  )

  write_settings_groups(all_settings.group_by(&:operation))
end

Private Instance Methods

all_settings() click to toggle source
# File lib/nvim_conf/writers/documentation/settings.rb, line 58
def all_settings
  @managers.map(&:settings).flatten
end
operator(setting) click to toggle source
# File lib/nvim_conf/writers/documentation/settings.rb, line 47
def operator(setting)
  %i[set unset].include?(setting.operation) ? " => " : " += "
end
transformed_value(setting, value) click to toggle source
# File lib/nvim_conf/writers/documentation/settings.rb, line 51
def transformed_value(setting, value)
  return value.join(", ") if value.is_a?(Array)
  return value unless value.nil?

  setting.operation == :set
end
write_settings_groups(groups) click to toggle source
# File lib/nvim_conf/writers/documentation/settings.rb, line 25
def write_settings_groups(groups)
  groups.each do |operation, settings|
    @io.write_separator

    @io.write(
      Utils::MarkdownFormatter.format_title(
        operation.capitalize,
        level: 3
      )
    )

    settings.each do |setting|
      @io.write(
        [
          "- #{setting.key}",
          transformed_value(setting, setting.value)
        ].join(operator(setting)) + "\n"
      )
    end
  end
end