Sha256: e49c924b62b1f0a784458061caa03e0bb61c4c0d322593ac175c63361d1c0ab4

Contents?: true

Size: 967 Bytes

Versions: 4

Compression:

Stored size: 967 Bytes

Contents

module Wovnrb
  class HtmlReplaceMarker
    KEY_PREFIX = '__wovn-backend-ignored-key-'.freeze

    def initialize
      @current_key_number = 0
      @mapped_values = []
    end

    # Add argument's value to mapping information with comment style key
    def add_comment_value(value)
      key = "<!-- #{generate_key} -->"
      @mapped_values << [key, value]

      key
    end

    def add_value(value)
      key = generate_key
      @mapped_values << [key, value]

      key
    end

    def revert(marked_html)
      i = @mapped_values.size
      while i > 0
        i -= 1
        key, value = @mapped_values[i]
        marked_html = marked_html.sub(key, value)
      end
      marked_html
    end

    def keys
      @mapped_values.map { |v| v[0] }
    end

    private

    def generate_key
      next_key = "#{KEY_PREFIX}#{@current_key_number}"
      @current_key_number += 1

      next_key
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
wovnrb-3.11.0 lib/wovnrb/services/html_replace_marker.rb
wovnrb-3.10.2 lib/wovnrb/services/html_replace_marker.rb
wovnrb-3.10.1 lib/wovnrb/services/html_replace_marker.rb
wovnrb-3.10.0 lib/wovnrb/services/html_replace_marker.rb