Sha256: 5796a1e2d0b0c7b9aedffb94a9cef34187fbf64710192d2a055bd1d4b742a0b0
Contents?: true
Size: 1.36 KB
Versions: 51
Compression:
Stored size: 1.36 KB
Contents
require "yaml" module Metanorma module Cli class Collection def initialize(file, options) @file = file @options = Cli.with_indifferent_access(options) @compile_options = @options.delete(:compile) end def self.render(filename, options = {}) new(filename, options).render end def render extract_options_from_file collection_file.render(collection_options.compact) end private attr_reader :file, :options def collection_file @collection_file ||= Metanorma::Collection.parse(file) end def collection_options { compile: @compile_options, coverpage: options.fetch(:coverpage, nil), output_folder: options.fetch(:output_folder, nil), format: collection_output_formats(options.fetch(:format, "")), } end def collection_output_formats(formats) if formats.is_a?(String) formats = formats.split(",") end (formats || []).map { |extension| extension.strip.to_sym } end def extract_options_from_file if options.empty? yaml_file = YAML.safe_load(File.read(@file.to_s)) @options = Cli.with_indifferent_access( yaml_file.slice("coverpage", "format", "output_folder"), ) end end end end end
Version data entries
51 entries across 51 versions & 1 rubygems