Sha256: bf14af2ece97c4288062d5d75c5847f9e5daa7089bb594b512e63f202e2f2a76

Contents?: true

Size: 918 Bytes

Versions: 2

Compression:

Stored size: 918 Bytes

Contents

# Copyright (c) 2020 Jerome Arbez-Gindre
# frozen_string_literal: true

module DefMastership
  # modify one line after another
  class UpdateDefChecksumLineModifier < LineModifierBase
    attr_accessor :document

    def self.from_config(hash)
      new.from_config(hash)
    end

    def initialize
      super
      @config = {
        def_type: ''
      }
    end

    def replace(line)
      match = matched?(line)

      return line unless match
      return line unless match[:type] == def_type

      explicit_checksum_str = match[:explicit_checksum].nil? ? '' : "(#{match[:explicit_checksum]})"
      line.gsub("#{match[:reference]}#{explicit_checksum_str}") do
        "#{match[:reference]}(#{@document.ref_to_def(match[:reference]).sha256})"
      end
    end

    def matched?(line)
      return if line.commented?
      return unless line =~ DMRegexp::DEFINITION

      Regexp.last_match
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
defmastership-1.0.8 lib/defmastership/update_def_checksum_line_modifier.rb
defmastership-1.0.7 lib/defmastership/update_def_checksum_line_modifier.rb