Sha256: ddfe97884f7db9ba5da1a551bc611c67a4c2446fe8a19a1470ef010212b88871

Contents?: true

Size: 1.6 KB

Versions: 253

Compression:

Stored size: 1.6 KB

Contents

##
## $Release: 2.7.0 $
## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
##

require 'erubis/engine'
require 'erubis/enhancer'


module Erubis


  module PerlGenerator
    include Generator

    def self.supported_properties()  # :nodoc:
      return [
              [:func, 'print', "function name"],
              ]
    end

    def init_generator(properties={})
      super
      @escapefunc ||= 'encode_entities'
      @func = properties[:func] || 'print'
    end

    def add_preamble(src)
      src << "use HTML::Entities; ";
    end

    def escape_text(text)
      return text.gsub!(/['\\]/, '\\\\\&') || text
    end

    def add_text(src, text)
      src << @func << "('" << escape_text(text) << "'); " unless text.empty?
    end

    def add_expr_literal(src, code)
      code.strip!
      src << @func << "(" << code << "); "
    end

    def add_expr_escaped(src, code)
      add_expr_literal(src, escaped_expr(code))
    end

    def add_expr_debug(src, code)
      code.strip!
      s = code.gsub(/\'/, "\\'")
      src << @func << "('*** debug: #{code}=', #{code}, \"\\n\");"
    end

    def add_stmt(src, code)
      src << code
    end

    def add_postamble(src)
      src << "\n" unless src[-1] == ?\n
    end

  end


  ##
  ## engine for Perl
  ##
  class Eperl < Basic::Engine
    include PerlGenerator
  end


  class EscapedEperl < Eperl
    include EscapeEnhancer
  end


  #class XmlEperl < Eperl
  #  include EscapeEnhancer
  #end


  class PI::Eperl < PI::Engine
    include PerlGenerator

    def init_converter(properties={})
      @pi = 'perl'
      super(properties)
    end

  end


end

Version data entries

253 entries across 213 versions & 42 rubygems

Version Path
brakeman-7.0.0 bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-6.2.2 bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-6.2.2.rc1 bundle/ruby/3.3.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-6.2.1 bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-6.2.0 bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-6.1.2 bundle/ruby/3.3.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-6.1.1 bundle/ruby/3.0.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-6.1.0 bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-6.0.1 bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-6.0.0 bundle/ruby/3.0.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-5.4.1 bundle/ruby/3.1.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-5.4.0 bundle/ruby/2.7.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-5.3.1 bundle/ruby/2.7.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-5.3.0 bundle/ruby/2.7.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-5.2.3 bundle/ruby/2.7.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-5.2.2 bundle/ruby/2.7.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-5.2.1 bundle/ruby/2.7.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-5.2.0 bundle/ruby/2.7.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-5.1.2 bundle/ruby/2.7.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb
brakeman-5.1.1 bundle/ruby/2.7.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb