Sha256: 8b928b1fea8e5d853efeb64110239b72ea7695ce2ddab8b7f7b3c8a0319bc3d4

Contents?: true

Size: 1.19 KB

Versions: 17

Compression:

Stored size: 1.19 KB

Contents

# frozen_string_literal: true
module Mustermann
  module Visualizer
    # @!visibility private
    module Renderer
      # Logic shared by most renderers.
      class Generic
        # @!visibility private
        def initialize(target, inspect: nil, add_qoutes: true)
          @target     = target
          @inspect    = inspect
          @add_qoutes = !target.pattern.is_a?(Mustermann::Composite)
        end

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

        # @!visibility private
        def preamble
        end

        # @!visibility private
        def escape(value, inspect_value = value.to_s.inspect[1..-2])
          escape_string(@inspect ? inspect_value : value.to_s)
        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

17 entries across 17 versions & 2 rubygems

Version Path
mustermann-contrib-3.0.3 lib/mustermann/visualizer/renderer/generic.rb
mustermann-contrib-3.0.2 lib/mustermann/visualizer/renderer/generic.rb
mustermann-contrib-3.0.1 lib/mustermann/visualizer/renderer/generic.rb
mustermann-contrib-3.0.0 lib/mustermann/visualizer/renderer/generic.rb
mustermann-contrib-2.0.2 lib/mustermann/visualizer/renderer/generic.rb
mustermann-contrib-2.0.1 lib/mustermann/visualizer/renderer/generic.rb
mustermann-contrib-2.0.0 lib/mustermann/visualizer/renderer/generic.rb
mustermann-contrib-1.1.2 lib/mustermann/visualizer/renderer/generic.rb
mustermann-contrib-1.1.1 lib/mustermann/visualizer/renderer/generic.rb
mustermann-contrib-1.1.0 lib/mustermann/visualizer/renderer/generic.rb
mustermann-contrib-1.0.3 lib/mustermann/visualizer/renderer/generic.rb
mustermann-contrib-1.0.2 lib/mustermann/visualizer/renderer/generic.rb
mustermann-contrib-1.0.2.rc2 lib/mustermann/visualizer/renderer/generic.rb
mustermann-contrib-1.0.2.rc1 lib/mustermann/visualizer/renderer/generic.rb
mustermann-1.0.2.rc1 mustermann-contrib/lib/mustermann/visualizer/renderer/generic.rb
mustermann-contrib-1.0.1 lib/mustermann/visualizer/renderer/generic.rb
mustermann-contrib-1.0.0 lib/mustermann/visualizer/renderer/generic.rb