Sha256: 9be6fc53507096a333bc9fd9f009f702e2abf4f4865bf6f9f5224352dd8c977b
Contents?: true
Size: 888 Bytes
Versions: 2
Compression:
Stored size: 888 Bytes
Contents
# Copyright (c) 2020 Jerome Arbez-Gindre # frozen_string_literal: true module DefMastership # Change references from temporary to definitive with multiple RefChangers class BatchChanger attr_reader :refchangers def initialize @refchangers = {} end def self.from_h(hash) new.from_h(hash) end def from_h(hash) @refchangers = hash.transform_values do |value| DefMastership::RefChanger.from_h(value) end self end def to_h @refchangers.transform_values(&:to_h) end def replace(symb, line) @refchangers.reduce(line) do |res_line, (_, refchanger)| refchanger.public_send("replace_#{symb}".to_sym, res_line) end end def changes @refchangers.reduce([]) do |all_changes, (_, refchanger)| all_changes + refchanger.changes end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
defmastership-1.0.5 | lib/defmastership/batch_changer.rb |
defmastership-1.0.4 | lib/defmastership/batch_changer.rb |