Sha256: f66b447e32c72f82affaf954310a90640e600c431c800a69c7b09610a21bf80c

Contents?: true

Size: 992 Bytes

Versions: 14

Compression:

Stored size: 992 Bytes

Contents

module Padrino
  module Rendering
    module Erubi
      module SafeBufferEnhancer
        def add_expression_result(code)
          @src << " @__in_ruby_literal = true; #{bufvar}.concat((" << code << ').to_s); @__in_ruby_literal = false;'
        end

        def add_expression_result_escaped(code)
          @src << " #{bufvar}.safe_concat (" << code << ");"
        end

        def add_text(text)
          @src << " #{bufvar}.safe_concat '" << text.gsub(/['\\]/, '\\\\\&') << "';" unless text.empty?
        end
      end
    end

    class SafeErubi < ::Erubi::Engine
      include Erubi::SafeBufferEnhancer
    end

    class ErubiTemplate < Tilt::ErubiTemplate
      def precompiled_preamble(*)
        "__in_erb_template = true\n" << super
      end
    end
  end
end

Tilt.prefer(Padrino::Rendering::ErubiTemplate, :erb)

Padrino::Rendering.engine_configurations[:erb] = {
  :bufval => "SafeBuffer.new",
  :bufvar => "@_out_buf",
  :engine_class => Padrino::Rendering::SafeErubi
}

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
padrino-helpers-0.16.0.pre3 lib/padrino/rendering/erubi_template.rb
padrino-helpers-0.16.0.pre2 lib/padrino/rendering/erubi_template.rb
padrino-helpers-0.15.3 lib/padrino/rendering/erubi_template.rb
padrino-helpers-0.15.2 lib/padrino/rendering/erubi_template.rb
padrino-helpers-0.15.1 lib/padrino/rendering/erubi_template.rb
padrino-helpers-0.15.0 lib/padrino/rendering/erubi_template.rb
padrino-helpers-0.14.4 lib/padrino/rendering/erubi_template.rb
padrino-helpers-0.14.3 lib/padrino/rendering/erubi_template.rb
padrino-helpers-0.14.2 lib/padrino/rendering/erubi_template.rb
padrino-helpers-0.14.1.1 lib/padrino/rendering/erubi_template.rb
padrino-helpers-0.14.1 lib/padrino/rendering/erubi_template.rb
padrino-helpers-0.14.0.2 lib/padrino/rendering/erubi_template.rb
padrino-helpers-0.14.0.1 lib/padrino/rendering/erubi_template.rb
padrino-helpers-0.14.0 lib/padrino/rendering/erubi_template.rb