Sha256: 8bd2b9752afcca6e507e4bac96007cf5f83d5c180b07c5f43f14c2cb00659c3f

Contents?: true

Size: 869 Bytes

Versions: 9

Compression:

Stored size: 869 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

      line.gsub(Regexp.new("#{match[:reference]}#{DMRegexp::DEF_VERSION_AND_CHECKSUM}")) do
        "#{match[:reference]}(#{match[:explicit_version]}#{@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

9 entries across 9 versions & 1 rubygems

Version Path
defmastership-1.0.17 lib/defmastership/update_def_checksum_line_modifier.rb
defmastership-1.0.16 lib/defmastership/update_def_checksum_line_modifier.rb
defmastership-1.0.15 lib/defmastership/update_def_checksum_line_modifier.rb
defmastership-1.0.14 lib/defmastership/update_def_checksum_line_modifier.rb
defmastership-1.0.13 lib/defmastership/update_def_checksum_line_modifier.rb
defmastership-1.0.12 lib/defmastership/update_def_checksum_line_modifier.rb
defmastership-1.0.11 lib/defmastership/update_def_checksum_line_modifier.rb
defmastership-1.0.10 lib/defmastership/update_def_checksum_line_modifier.rb
defmastership-1.0.9 lib/defmastership/update_def_checksum_line_modifier.rb