class Bookbinder::Config::Configuration
Constants
- CONFIG_OPTIONAL_KEYS
- CONFIG_REQUIRED_KEYS
Attributes
config[R]
products[R]
Public Class Methods
new(config)
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 54 def initialize(config) @config = config @products = assemble_products || [] end
parse(input_config)
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 11 def parse(input_config) section_configs = to_section_configs(combined_sections(input_config)) parse_sections(input_config, section_configs) end
Protected Class Methods
expand_repo_identifiers(input_config)
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 28 def expand_repo_identifiers(input_config) input_config.select {|k, _| k.match(/_repo$/)}. reduce({}) {|h, (k, v)| h.merge(:"#{k}_url" => Ingest::RepoIdentifier.new(v))} end
parse_sections(input_config, section_configs)
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 18 def parse_sections(input_config, section_configs) new(symbolize_keys(input_config). merge(expand_repo_identifiers(input_config)). merge(sections: section_configs)) end
symbolize_keys(h)
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 24 def symbolize_keys(h) h.reduce({}) {|acc, (k, v)| acc.merge(k.to_sym => v) } end
to_section_configs(sections)
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 33 def to_section_configs sections sections.map { |section| Config::SectionConfig.new(section) } end
Private Class Methods
combined_sections(input_config)
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 39 def combined_sections(input_config) regular_sections(input_config) + dita_sections(input_config) end
dita_sections(input_config)
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 47 def dita_sections(input_config) (input_config['dita_sections'] || []).map { |dita_section| DitaConfigGenerator.new(dita_section).to_hash } end
regular_sections(input_config)
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 43 def regular_sections(input_config) input_config['sections'] || [] end
Public Instance Methods
==(o)
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 98 def ==(o) o.class == self.class && o.instance_variable_get(:@config) == @config end
Also aliased as: eql?
broken_link_exclusions()
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 74 def broken_link_exclusions config.fetch(:broken_link_exclusions, /(?!.*)/) end
elastic_search?()
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 94 def elastic_search? config.fetch(:elastic_search, false) end
has_option?(key)
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 90 def has_option?(key) !!config[key.to_sym] end
merge(other_configuration)
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 82 def merge(other_configuration) Configuration.new(config.merge(other_configuration.instance_variable_get(:@config))) end
merge_sections(incoming_sections)
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 86 def merge_sections(incoming_sections) merge(Configuration.new(sections: sections + incoming_sections)) end
template_variables()
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 78 def template_variables config.fetch(:template_variables, {}) end
Private Instance Methods
assemble_products()
click to toggle source
# File lib/bookbinder/config/configuration.rb, line 108 def assemble_products if config[:products] config[:products].map do |product| Config::ProductConfig.new(product) end end end