/usr/lib/ruby/vendor_ruby/erubis/preprocessing.rb is in ruby-erubis 2.7.0-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | ###
### $Release: 2.7.0 $
### copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
###
require 'cgi'
module Erubis
##
## for preprocessing
##
class PreprocessingEruby < Erubis::Eruby
def initialize(input, params={})
params = params.dup
params[:pattern] ||= '\[% %\]' # use '[%= %]' instead of '<%= %>'
#params[:escape] = true # transport '[%= %]' and '[%== %]'
super
end
def add_expr_escaped(src, code)
add_expr_literal(src, "_decode((#{code}))")
end
end
##
## helper methods for preprocessing
##
module PreprocessingHelper
module_function
def _p(arg)
return "<%=#{arg}%>"
end
def _P(arg)
return "<%=h(#{arg})%>"
end
alias _? _p
def _decode(arg)
arg = arg.to_s
arg.gsub!(/%3C%25(?:=|%3D)(.*?)%25%3E/) { "<%=#{CGI.unescape($1)}%>" }
arg.gsub!(/<%=(.*?)%>/) { "<%=#{CGI.unescapeHTML($1)}%>" }
return arg
end
end
end
|