Sha256: e2a4891434bcb3a4635523f22b7daa1a7857604c3785f85b32df58e3689db62d

Contents?: true

Size: 638 Bytes

Versions: 11

Compression:

Stored size: 638 Bytes

Contents

# frozen_string_literal: true

module Realize
  class Format
    # This transformer takes in a value and replaces all occurrences of the given
    # original pattern with the replacement pattern.
    class StringReplace
      acts_as_hashable

      attr_reader :original, :replacement

      def initialize(original:, replacement:)
        raise ArgumentError, 'original is required' if original.to_s.empty?

        @original    = original
        @replacement = replacement.to_s

        freeze
      end

      def transform(_resolver, value, _time, _record)
        value.to_s.gsub(original, replacement)
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
realize-1.3.0 lib/realize/format/string_replace.rb
realize-1.2.0 lib/realize/format/string_replace.rb
realize-1.2.0.pre.alpha lib/realize/format/string_replace.rb
realize-1.1.1 lib/realize/format/string_replace.rb
realize-1.1.1.pre.alpha lib/realize/format/string_replace.rb
realize-1.1.0 lib/realize/format/string_replace.rb
realize-1.0.0 lib/realize/format/string_replace.rb
realize-1.0.0.pre.alpha.3 lib/realize/format/string_replace.rb
realize-1.0.0.pre.alpha.2 lib/realize/format/string_replace.rb
realize-1.0.0.pre.alpha.1 lib/realize/format/string_replace.rb
realize-1.0.0.pre.alpha lib/realize/format/string_replace.rb