integtest/spec/helper/book_conf.rb (45 lines of code) (raw):
# frozen_string_literal: true
##
# Methods to build the config for a book.
module BookConf
##
# The configuration needed to build the book.
def conf
conf = basic_conf
conf.merge! branches_conf
conf.merge! flags_conf
conf[:sources] = @sources.map { |source| source_conf source }
conf.compact
end
private
def basic_conf
{
title: @title,
prefix: @prefix,
index: @index,
lang: @lang,
tags: 'test tag',
subject: 'Test',
toc_extra: @toc_extra,
}
end
def source_conf(source)
{
repo: source[:repo],
path: source[:path],
private: source[:is_private] ? true : nil,
map_branches: source[:map_branches],
alternatives: source[:alternatives],
}.compact
end
def branches_conf
{
current: @current_branch,
branches: @branches,
live: @live_branches,
}
end
##
# Config for "flags" on the book. Some are "perl style" and take "1" when
# true. Others are "normal style" and take "true" when "true". Either way,
# when they are false we leave them out entirely.
def flags_conf
{
noindex: @noindex ? 1 : nil,
respect_edit_url_overrides: @respect_edit_url_overrides ? true : nil,
suppress_migration_warnings: @suppress_migration_warnings ? 1 : nil,
single: @single ? 1 : nil,
}
end
end