Sha256: ec73329d67b6feaa5fe62b0089e2963c187abeefa307c5c4b36a8727b05115bf
Contents?: true
Size: 1.01 KB
Versions: 9
Compression:
Stored size: 1.01 KB
Contents
# Copyright (c) 2020 Jerome Arbez-Gindre # frozen_string_literal: true module DefMastership # Change references from temporary to definitive with multiple RefChangers class BatchModifier attr_reader :config, :adoc_texts, :changes def initialize(config, adoc_texts) @config = config @adoc_texts = adoc_texts @changes = [] end def apply(modifs) modifs.split(/\s*,\s*/).each do |modif| modifier = modifier_from(modif) @adoc_texts = modifier.do_modifications(@adoc_texts) @config[modif.to_sym][:config] = modifier.config modifier.changes.each do |change| @changes << [modif] + change end end end private def modifier_from(modif) raise(ArgumentError, "#{modif} is not a known modification") if @config[modif.to_sym].nil? class_name = "#{@config[modif.to_sym][:type].split('_').map(&:capitalize).join}Modifier" DefMastership.const_get(class_name).new(@config[modif.to_sym][:config]) end end end
Version data entries
9 entries across 9 versions & 1 rubygems