brakeman 7.1.2 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGES.md +11 -0
- data/README.md +1 -1
- data/bundle/load.rb +2 -2
- data/bundle/ruby/3.2.0/gems/erubi-1.13.1/CHANGELOG +111 -0
- data/bundle/ruby/3.2.0/gems/{erubis-2.7.0 → erubi-1.13.1}/MIT-LICENSE +1 -0
- data/bundle/ruby/3.2.0/gems/erubi-1.13.1/README.rdoc +151 -0
- data/bundle/ruby/3.2.0/gems/erubi-1.13.1/lib/erubi/capture_block.rb +91 -0
- data/bundle/ruby/3.2.0/gems/erubi-1.13.1/lib/erubi/capture_end.rb +58 -0
- data/bundle/ruby/3.2.0/gems/erubi-1.13.1/lib/erubi.rb +299 -0
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/asciidoc.rb +12 -5
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/babel.rb +5 -0
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/builder.rb +4 -0
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/coffee.rb +14 -4
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/commonmarker.rb +41 -0
- data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/csv.rb +63 -0
- data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/erb.rb +130 -0
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/erubi.rb +41 -8
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/etanni.rb +7 -0
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/haml.rb +67 -1
- data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/kramdown.rb +59 -0
- data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/liquid.rb +93 -0
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/livescript.rb +11 -4
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/mapping.rb +8 -8
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/markaby.rb +11 -2
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/nokogiri.rb +13 -2
- data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/pandoc.rb +81 -0
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/pipeline.rb +6 -1
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/plain.rb +5 -1
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/prawn.rb +17 -6
- data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/radius.rb +96 -0
- data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/rdiscount.rb +82 -0
- data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/rdoc.rb +33 -0
- data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/redcarpet.rb +73 -0
- data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/redcloth.rb +40 -0
- data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/rst-pandoc.rb +33 -0
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/sass.rb +16 -3
- data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/slim.rb +18 -0
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/string.rb +10 -2
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/template.rb +5 -5
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/typescript.rb +5 -0
- data/bundle/ruby/3.2.0/gems/tilt-2.7.0/lib/tilt/yajl.rb +91 -0
- data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt.rb +1 -2
- data/lib/brakeman/app_tree.rb +7 -2
- data/lib/brakeman/checks/check_model_attributes.rb +1 -1
- data/lib/brakeman/checks/check_render.rb +1 -27
- data/lib/brakeman/checks/check_render_rce.rb +43 -0
- data/lib/brakeman/checks/check_session_settings.rb +1 -1
- data/lib/brakeman/checks.rb +31 -25
- data/lib/brakeman/commandline.rb +6 -1
- data/lib/brakeman/file_parser.rb +3 -2
- data/lib/brakeman/logger.rb +264 -0
- data/lib/brakeman/options.rb +0 -9
- data/lib/brakeman/parsers/rails_erubi.rb +82 -0
- data/lib/brakeman/parsers/template_parser.rb +7 -15
- data/lib/brakeman/processor.rb +2 -2
- data/lib/brakeman/processors/controller_alias_processor.rb +1 -1
- data/lib/brakeman/processors/controller_processor.rb +3 -3
- data/lib/brakeman/processors/{erubis_template_processor.rb → erubi_template_procesor.rb} +3 -3
- data/lib/brakeman/processors/lib/rails2_config_processor.rb +4 -3
- data/lib/brakeman/processors/lib/rails2_route_processor.rb +1 -1
- data/lib/brakeman/processors/lib/render_helper.rb +1 -1
- data/lib/brakeman/processors/lib/render_path.rb +1 -1
- data/lib/brakeman/processors/model_processor.rb +1 -1
- data/lib/brakeman/report/ignore/config.rb +1 -1
- data/lib/brakeman/scanner.rb +25 -49
- data/lib/brakeman/tracker/collection.rb +12 -2
- data/lib/brakeman/tracker/config.rb +17 -13
- data/lib/brakeman/tracker/constants.rb +17 -2
- data/lib/brakeman/tracker/controller.rb +1 -1
- data/lib/brakeman/tracker.rb +7 -15
- data/lib/brakeman/version.rb +1 -1
- data/lib/brakeman.rb +89 -49
- metadata +51 -80
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/CHANGES.txt +0 -828
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/README.txt +0 -102
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/contrib/erubis +0 -3468
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/contrib/erubis-run.rb +0 -132
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/contrib/inline-require +0 -179
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/context.rb +0 -83
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/converter.rb +0 -357
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/engine/ec.rb +0 -117
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/engine/ecpp.rb +0 -113
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/engine/ejava.rb +0 -110
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/engine/ejavascript.rb +0 -119
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/engine/enhanced.rb +0 -126
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb +0 -95
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/engine/ephp.rb +0 -99
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/engine/eruby.rb +0 -125
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/engine/escheme.rb +0 -114
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/engine/optimized.rb +0 -127
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/engine.rb +0 -120
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/enhancer.rb +0 -723
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/error.rb +0 -23
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/evaluator.rb +0 -88
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/generator.rb +0 -85
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/helper.rb +0 -47
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/helpers/rails_form_helper.rb +0 -197
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/helpers/rails_helper.rb +0 -353
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/local-setting.rb +0 -9
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/main.rb +0 -516
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/preprocessing.rb +0 -58
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/tiny.rb +0 -144
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis/util.rb +0 -22
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/lib/erubis.rb +0 -73
- data/bundle/ruby/3.2.0/gems/erubis-2.7.0/setup.rb +0 -1331
- data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/creole.rb +0 -16
- data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/csv.rb +0 -53
- data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/erb.rb +0 -65
- data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/kramdown.rb +0 -13
- data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/liquid.rb +0 -37
- data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/pandoc.rb +0 -39
- data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/radius.rb +0 -41
- data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/rdiscount.rb +0 -23
- data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/rdoc.rb +0 -11
- data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/redcarpet.rb +0 -31
- data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/redcloth.rb +0 -13
- data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/rst-pandoc.rb +0 -10
- data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/slim.rb +0 -5
- data/bundle/ruby/3.2.0/gems/tilt-2.6.1/lib/tilt/yajl.rb +0 -81
- data/lib/brakeman/parsers/erubis_patch.rb +0 -11
- data/lib/brakeman/parsers/rails2_erubis.rb +0 -9
- data/lib/brakeman/parsers/rails2_xss_plugin_erubis.rb +0 -52
- data/lib/brakeman/parsers/rails3_erubis.rb +0 -85
- /data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/COPYING +0 -0
- /data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/_emacs_org.rb +0 -0
- /data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/_handlebars.rb +0 -0
- /data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/_jbuilder.rb +0 -0
- /data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/_org.rb +0 -0
- /data/bundle/ruby/3.2.0/gems/{tilt-2.6.1 → tilt-2.7.0}/lib/tilt/cli.rb +0 -0
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
##
|
|
2
|
-
## $Release: 2.7.0 $
|
|
3
|
-
## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
|
|
4
|
-
##
|
|
5
|
-
|
|
6
|
-
require 'erubis/engine'
|
|
7
|
-
require 'erubis/enhancer'
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
module Erubis
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
module JavascriptGenerator
|
|
14
|
-
include Generator
|
|
15
|
-
|
|
16
|
-
def self.supported_properties() # :nodoc:
|
|
17
|
-
list = []
|
|
18
|
-
#list << [:indent, '', "indent spaces (ex. ' ')"]
|
|
19
|
-
#list << [:bufvar, '_buf', "output buffer variable name"]
|
|
20
|
-
list << [:docwrite, true, "use 'document.write()' when true"]
|
|
21
|
-
return list
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def init_generator(properties={})
|
|
25
|
-
super
|
|
26
|
-
@escapefunc ||= 'escape'
|
|
27
|
-
@indent = properties[:indent] || ''
|
|
28
|
-
@bufvar = properties[:bufvar] || '_buf'
|
|
29
|
-
@docwrite = properties[:docwrite] != false # '!= false' will be removed in the next release
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def add_preamble(src)
|
|
33
|
-
src << "#{@indent}var #{@bufvar} = [];"
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def escape_text(text)
|
|
37
|
-
@@table_ ||= { "\r"=>"\\r", "\n"=>"\\n\\\n", "\t"=>"\\t", '"'=>'\\"', "\\"=>"\\\\" }
|
|
38
|
-
return text.gsub!(/[\r\n\t"\\]/) { |m| @@table_[m] } || text
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def add_indent(src, indent)
|
|
42
|
-
src << (src.empty? || src[-1] == ?\n ? indent : ' ')
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def add_text(src, text)
|
|
46
|
-
return if text.empty?
|
|
47
|
-
add_indent(src, @indent)
|
|
48
|
-
src << @bufvar << '.push("'
|
|
49
|
-
s = escape_text(text)
|
|
50
|
-
if s[-1] == ?\n
|
|
51
|
-
s[-2, 2] = ''
|
|
52
|
-
src << s << "\");\n"
|
|
53
|
-
else
|
|
54
|
-
src << s << "\");"
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def add_stmt(src, code)
|
|
59
|
-
src << code
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def add_expr_literal(src, code)
|
|
63
|
-
add_indent(src, @indent)
|
|
64
|
-
code.strip!
|
|
65
|
-
src << "#{@bufvar}.push(#{code});"
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def add_expr_escaped(src, code)
|
|
69
|
-
add_expr_literal(src, escaped_expr(code))
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def add_expr_debug(src, code)
|
|
73
|
-
add_indent(src, @indent)
|
|
74
|
-
code.strip!
|
|
75
|
-
src << "alert(\"*** debug: #{code}=\"+(#{code}));"
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
def add_postamble(src)
|
|
79
|
-
src << "\n" if src[-1] == ?;
|
|
80
|
-
if @docwrite
|
|
81
|
-
src << @indent << 'document.write(' << @bufvar << ".join(\"\"));\n"
|
|
82
|
-
else
|
|
83
|
-
src << @indent << @bufvar << ".join(\"\");\n"
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
##
|
|
91
|
-
## engine for JavaScript
|
|
92
|
-
##
|
|
93
|
-
class Ejavascript < Basic::Engine
|
|
94
|
-
include JavascriptGenerator
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
class EscapedEjavascript < Ejavascript
|
|
99
|
-
include EscapeEnhancer
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
#class XmlEjavascript < Ejavascript
|
|
104
|
-
# include EscapeEnhancer
|
|
105
|
-
#end
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
class PI::Ejavascript < PI::Engine
|
|
109
|
-
include JavascriptGenerator
|
|
110
|
-
|
|
111
|
-
def init_converter(properties={})
|
|
112
|
-
@pi = 'js'
|
|
113
|
-
super(properties)
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
end
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
##
|
|
2
|
-
## $Release: 2.7.0 $
|
|
3
|
-
## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
|
|
4
|
-
##
|
|
5
|
-
|
|
6
|
-
require 'erubis/enhancer'
|
|
7
|
-
require 'erubis/engine/eruby'
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
module Erubis
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
#--
|
|
14
|
-
## moved to engine/ruby.rb
|
|
15
|
-
#class EscapedEruby < Eruby
|
|
16
|
-
# include EscapeEnhancer
|
|
17
|
-
#end
|
|
18
|
-
#++
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
#--
|
|
22
|
-
### (obsolete)
|
|
23
|
-
#class FastEruby < Eruby
|
|
24
|
-
# include FastEnhancer
|
|
25
|
-
#end
|
|
26
|
-
#++
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
class StdoutEruby < Eruby
|
|
30
|
-
include StdoutEnhancer
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
class PrintOutEruby < Eruby
|
|
35
|
-
include PrintOutEnhancer
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
class PrintEnabledEruby < Eruby
|
|
40
|
-
include PrintEnabledEnhancer
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
class ArrayEruby < Eruby
|
|
45
|
-
include ArrayEnhancer
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
class ArrayBufferEruby < Eruby
|
|
50
|
-
include ArrayBufferEnhancer
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
class StringBufferEruby < Eruby
|
|
55
|
-
include StringBufferEnhancer
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
class StringIOEruby < Eruby
|
|
60
|
-
include StringIOEnhancer
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
class ErboutEruby < Eruby
|
|
65
|
-
include ErboutEnhancer
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
class NoTextEruby < Eruby
|
|
70
|
-
include NoTextEnhancer
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
class NoCodeEruby < Eruby
|
|
75
|
-
include NoCodeEnhancer
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
class SimplifiedEruby < Eruby
|
|
80
|
-
include SimplifyEnhancer
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
class StdoutSimplifiedEruby < Eruby
|
|
85
|
-
include StdoutEnhancer
|
|
86
|
-
include SimplifyEnhancer
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
class PrintOutSimplifiedEruby < Eruby
|
|
91
|
-
include PrintOutEnhancer
|
|
92
|
-
include SimplifyEnhancer
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
class BiPatternEruby < Eruby
|
|
97
|
-
include BiPatternEnhancer
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
class PercentLineEruby < Eruby
|
|
102
|
-
include PercentLineEnhancer
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
class PrefixedLineEruby < Eruby
|
|
107
|
-
include PrefixedLineEnhancer
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
class HeaderFooterEruby < Eruby
|
|
112
|
-
include HeaderFooterEnhancer
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
class DeleteIndentEruby < Eruby
|
|
117
|
-
include DeleteIndentEnhancer
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
class InterpolationEruby < Eruby
|
|
122
|
-
include InterpolationEnhancer
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
end
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
##
|
|
2
|
-
## $Release: 2.7.0 $
|
|
3
|
-
## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
|
|
4
|
-
##
|
|
5
|
-
|
|
6
|
-
require 'erubis/engine'
|
|
7
|
-
require 'erubis/enhancer'
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
module Erubis
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
module PerlGenerator
|
|
14
|
-
include Generator
|
|
15
|
-
|
|
16
|
-
def self.supported_properties() # :nodoc:
|
|
17
|
-
return [
|
|
18
|
-
[:func, 'print', "function name"],
|
|
19
|
-
]
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def init_generator(properties={})
|
|
23
|
-
super
|
|
24
|
-
@escapefunc ||= 'encode_entities'
|
|
25
|
-
@func = properties[:func] || 'print'
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def add_preamble(src)
|
|
29
|
-
src << "use HTML::Entities; ";
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def escape_text(text)
|
|
33
|
-
return text.gsub!(/['\\]/, '\\\\\&') || text
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def add_text(src, text)
|
|
37
|
-
src << @func << "('" << escape_text(text) << "'); " unless text.empty?
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def add_expr_literal(src, code)
|
|
41
|
-
code.strip!
|
|
42
|
-
src << @func << "(" << code << "); "
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def add_expr_escaped(src, code)
|
|
46
|
-
add_expr_literal(src, escaped_expr(code))
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def add_expr_debug(src, code)
|
|
50
|
-
code.strip!
|
|
51
|
-
s = code.gsub(/\'/, "\\'")
|
|
52
|
-
src << @func << "('*** debug: #{code}=', #{code}, \"\\n\");"
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def add_stmt(src, code)
|
|
56
|
-
src << code
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def add_postamble(src)
|
|
60
|
-
src << "\n" unless src[-1] == ?\n
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
##
|
|
67
|
-
## engine for Perl
|
|
68
|
-
##
|
|
69
|
-
class Eperl < Basic::Engine
|
|
70
|
-
include PerlGenerator
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
class EscapedEperl < Eperl
|
|
75
|
-
include EscapeEnhancer
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
#class XmlEperl < Eperl
|
|
80
|
-
# include EscapeEnhancer
|
|
81
|
-
#end
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
class PI::Eperl < PI::Engine
|
|
85
|
-
include PerlGenerator
|
|
86
|
-
|
|
87
|
-
def init_converter(properties={})
|
|
88
|
-
@pi = 'perl'
|
|
89
|
-
super(properties)
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
end
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
##
|
|
2
|
-
## $Release: 2.7.0 $
|
|
3
|
-
## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
|
|
4
|
-
##
|
|
5
|
-
|
|
6
|
-
require 'erubis/engine'
|
|
7
|
-
require 'erubis/enhancer'
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
module Erubis
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
module PhpGenerator
|
|
14
|
-
include Generator
|
|
15
|
-
|
|
16
|
-
def self.supported_properties() # :nodoc:
|
|
17
|
-
return []
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def init_generator(properties={})
|
|
21
|
-
super
|
|
22
|
-
@escapefunc ||= 'htmlspecialchars'
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def add_preamble(src)
|
|
26
|
-
# empty
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def escape_text(text)
|
|
30
|
-
return text.gsub!(/<\?xml\b/, '<<?php ?>?xml') || text
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def add_text(src, text)
|
|
34
|
-
src << escape_text(text)
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def add_expr_literal(src, code)
|
|
38
|
-
code.strip!
|
|
39
|
-
src << "<?php echo #{code}; ?>"
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def add_expr_escaped(src, code)
|
|
43
|
-
add_expr_literal(src, escaped_expr(code))
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def add_expr_debug(src, code)
|
|
47
|
-
code.strip!
|
|
48
|
-
s = code.gsub(/\'/, "\\'")
|
|
49
|
-
src << "<?php error_log('*** debug: #{s}='.(#{code}), 0); ?>"
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def add_stmt(src, code)
|
|
53
|
-
src << "<?php"
|
|
54
|
-
src << " " if code[0] != ?\ #
|
|
55
|
-
if code[-1] == ?\n
|
|
56
|
-
code.chomp!
|
|
57
|
-
src << code << "?>\n"
|
|
58
|
-
else
|
|
59
|
-
src << code << "?>"
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def add_postamble(src)
|
|
64
|
-
# empty
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
##
|
|
71
|
-
## engine for PHP
|
|
72
|
-
##
|
|
73
|
-
class Ephp < Basic::Engine
|
|
74
|
-
include PhpGenerator
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
class EscapedEphp < Ephp
|
|
79
|
-
include EscapeEnhancer
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
#class XmlEphp < Ephp
|
|
84
|
-
# include EscapeEnhancer
|
|
85
|
-
#end
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
class PI::Ephp < PI::Engine
|
|
89
|
-
include PhpGenerator
|
|
90
|
-
|
|
91
|
-
def init_converter(properties={})
|
|
92
|
-
@pi = 'php'
|
|
93
|
-
super(properties)
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
end
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
##
|
|
2
|
-
## $Release: 2.7.0 $
|
|
3
|
-
## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
|
|
4
|
-
##
|
|
5
|
-
|
|
6
|
-
require 'erubis/engine'
|
|
7
|
-
require 'erubis/enhancer'
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
module Erubis
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
##
|
|
14
|
-
## code generator for Ruby
|
|
15
|
-
##
|
|
16
|
-
module RubyGenerator
|
|
17
|
-
include Generator
|
|
18
|
-
#include ArrayBufferEnhancer
|
|
19
|
-
include StringBufferEnhancer
|
|
20
|
-
|
|
21
|
-
def init_generator(properties={})
|
|
22
|
-
super
|
|
23
|
-
@escapefunc ||= "Erubis::XmlHelper.escape_xml"
|
|
24
|
-
@bufvar = properties[:bufvar] || "_buf"
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def self.supported_properties() # :nodoc:
|
|
28
|
-
return []
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def escape_text(text)
|
|
32
|
-
text.gsub(/['\\]/, '\\\\\&') # "'" => "\\'", '\\' => '\\\\'
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def escaped_expr(code)
|
|
36
|
-
return "#{@escapefunc}(#{code})"
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
#--
|
|
40
|
-
#def add_preamble(src)
|
|
41
|
-
# src << "#{@bufvar} = [];"
|
|
42
|
-
#end
|
|
43
|
-
#++
|
|
44
|
-
|
|
45
|
-
def add_text(src, text)
|
|
46
|
-
src << " #{@bufvar} << '" << escape_text(text) << "';" unless text.empty?
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def add_stmt(src, code)
|
|
50
|
-
#src << code << ';'
|
|
51
|
-
src << code
|
|
52
|
-
src << ';' unless code[-1] == ?\n
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def add_expr_literal(src, code)
|
|
56
|
-
src << " #{@bufvar} << (" << code << ').to_s;'
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def add_expr_escaped(src, code)
|
|
60
|
-
src << " #{@bufvar} << " << escaped_expr(code) << ';'
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def add_expr_debug(src, code)
|
|
64
|
-
code.strip!
|
|
65
|
-
s = (code.dump =~ /\A"(.*)"\z/) && $1
|
|
66
|
-
src << ' $stderr.puts("*** debug: ' << s << '=#{(' << code << ').inspect}");'
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
#--
|
|
70
|
-
#def add_postamble(src)
|
|
71
|
-
# src << "\n#{@bufvar}.join\n"
|
|
72
|
-
#end
|
|
73
|
-
#++
|
|
74
|
-
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
##
|
|
79
|
-
## engine for Ruby
|
|
80
|
-
##
|
|
81
|
-
class Eruby < Basic::Engine
|
|
82
|
-
include RubyEvaluator
|
|
83
|
-
include RubyGenerator
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
##
|
|
88
|
-
## fast engine for Ruby
|
|
89
|
-
##
|
|
90
|
-
class FastEruby < Eruby
|
|
91
|
-
include InterpolationEnhancer
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
##
|
|
96
|
-
## swtich '<%= %>' to escaped and '<%== %>' to not escaped
|
|
97
|
-
##
|
|
98
|
-
class EscapedEruby < Eruby
|
|
99
|
-
include EscapeEnhancer
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
##
|
|
104
|
-
## sanitize expression (<%= ... %>) by default
|
|
105
|
-
##
|
|
106
|
-
## this is equivalent to EscapedEruby and is prepared only for compatibility.
|
|
107
|
-
##
|
|
108
|
-
class XmlEruby < Eruby
|
|
109
|
-
include EscapeEnhancer
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
class PI::Eruby < PI::Engine
|
|
114
|
-
include RubyEvaluator
|
|
115
|
-
include RubyGenerator
|
|
116
|
-
|
|
117
|
-
def init_converter(properties={})
|
|
118
|
-
@pi = 'rb'
|
|
119
|
-
super(properties)
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
end
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
##
|
|
2
|
-
## $Release: 2.7.0 $
|
|
3
|
-
## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
|
|
4
|
-
##
|
|
5
|
-
|
|
6
|
-
require 'erubis/engine'
|
|
7
|
-
require 'erubis/enhancer'
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
module Erubis
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
module SchemeGenerator
|
|
14
|
-
include Generator
|
|
15
|
-
|
|
16
|
-
def self.supported_properties() # :nodoc:
|
|
17
|
-
return [
|
|
18
|
-
[:func, '_add', "function name (ex. 'display')"],
|
|
19
|
-
]
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def init_generator(properties={})
|
|
23
|
-
super
|
|
24
|
-
@escapefunc ||= 'escape'
|
|
25
|
-
@func = properties[:func] || '_add' # or 'display'
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def add_preamble(src)
|
|
29
|
-
return unless @func == '_add'
|
|
30
|
-
src << "(let ((_buf '())) " + \
|
|
31
|
-
"(define (_add x) (set! _buf (cons x _buf))) "
|
|
32
|
-
#src << "(let* ((_buf '())" + \
|
|
33
|
-
# " (_add (lambda (x) (set! _buf (cons x _buf))))) "
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def escape_text(text)
|
|
37
|
-
@table_ ||= { '"'=>'\\"', '\\'=>'\\\\' }
|
|
38
|
-
text.gsub!(/["\\]/) { |m| @table_[m] }
|
|
39
|
-
return text
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def escaped_expr(code)
|
|
43
|
-
code.strip!
|
|
44
|
-
return "(#{@escapefunc} #{code})"
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def add_text(src, text)
|
|
48
|
-
return if text.empty?
|
|
49
|
-
t = escape_text(text)
|
|
50
|
-
if t[-1] == ?\n
|
|
51
|
-
t[-1, 1] = ''
|
|
52
|
-
src << "(#{@func} \"" << t << "\\n\")\n"
|
|
53
|
-
else
|
|
54
|
-
src << "(#{@func} \"" << t << '")'
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def add_stmt(src, code)
|
|
59
|
-
src << code
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def add_expr_literal(src, code)
|
|
63
|
-
code.strip!
|
|
64
|
-
src << "(#{@func} #{code})"
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def add_expr_escaped(src, code)
|
|
68
|
-
add_expr_literal(src, escaped_expr(code))
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def add_expr_debug(src, code)
|
|
72
|
-
s = (code.strip! || code).gsub(/\"/, '\\"')
|
|
73
|
-
src << "(display \"*** debug: #{s}=\")(display #{code.strip})(display \"\\n\")"
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
def add_postamble(src)
|
|
77
|
-
return unless @func == '_add'
|
|
78
|
-
src << "\n" unless src[-1] == ?\n
|
|
79
|
-
src << " (reverse _buf))\n"
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
##
|
|
86
|
-
## engine for Scheme
|
|
87
|
-
##
|
|
88
|
-
class Escheme < Basic::Engine
|
|
89
|
-
include SchemeGenerator
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
class EscapedEscheme < Escheme
|
|
94
|
-
include EscapeEnhancer
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
#class XmlEscheme < Escheme
|
|
99
|
-
# include EscapeEnhancer
|
|
100
|
-
#end
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
class PI::Escheme < PI::Engine
|
|
104
|
-
include SchemeGenerator
|
|
105
|
-
|
|
106
|
-
def init_converter(properties={})
|
|
107
|
-
@pi = 'scheme'
|
|
108
|
-
super(properties)
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
end
|