Sha256: c692338d4dd54e61c3a121f0daa24bd9b1be726d37cb913438eaca5aabfa6247

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

require 'mustermann/regular'

module Mustermann
  module Visualizer
    # @!visibility private
    module Renderer
      # Logic shared by most renderers.
      class Generic
        # @!visibility private
        def initialize(target, inspect: false)
          @target  = target
          @inspect = inspect
        end

        # @!visibility private
        def render
          quote = @inspect ? "#{pre(:quote)}\"#{post(:quote)}" : ""
          pre(:pattern).to_s + preamble.to_s + quote + @target.render(self) + quote + post(:pattern).to_s
        end

        # @!visibility private
        def preamble
        end

        # @!visibility private
        def escape(value)
          value = value.to_s
          value = value.inspect[1..-2] if @inspect
          escape_string(value)
        end

        # @!visibility private
        def escape_string(string)
          string
        end

        # @!visibility private
        def pre(type)
          ""
        end

        # @!visibility private
        def post(type)
          ""
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mustermann-visualizer-0.4.0 lib/mustermann/visualizer/renderer/generic.rb