erubis 2.3.1 → 2.7.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.
- data/{CHANGES → CHANGES.txt} +373 -3
- data/MIT-LICENSE +1 -1
- data/README.txt +6 -5
- data/benchmark/bench.rb +18 -11
- data/bin/erubis +3 -4
- data/contrib/erubis +3462 -5
- data/contrib/inline-require +54 -28
- data/doc/docstyle.css +25 -4
- data/doc/users-guide.html +814 -110
- data/doc-api/classes/ActionView/TemplateHandlers/ErubisHandler.html +209 -0
- data/doc-api/classes/ActionView.html +105 -0
- data/doc-api/classes/Erubis/ArrayBufferEnhancer.html +14 -14
- data/doc-api/classes/Erubis/ArrayEnhancer.html +16 -16
- data/doc-api/classes/Erubis/Basic/Converter.html +36 -31
- data/doc-api/classes/Erubis/BiPatternEnhancer.html +16 -13
- data/doc-api/classes/Erubis/CGenerator.html +70 -70
- data/doc-api/classes/Erubis/Context.html +49 -49
- data/doc-api/classes/Erubis/Converter.html +30 -29
- data/doc-api/classes/Erubis/CppGenerator.html +382 -0
- data/doc-api/classes/Erubis/DeleteIndentEnhancer.html +7 -7
- data/doc-api/classes/Erubis/Ecpp.html +126 -0
- data/doc-api/classes/Erubis/Engine.html +46 -43
- data/doc-api/classes/Erubis/ErboutEnhancer.html +16 -16
- data/doc-api/classes/Erubis/EscapeEnhancer.html +7 -7
- data/doc-api/classes/Erubis/EscapedEcpp.html +120 -0
- data/doc-api/classes/Erubis/Evaluator.html +22 -22
- data/doc-api/classes/Erubis/Generator.html +70 -70
- data/doc-api/classes/Erubis/HeaderFooterEnhancer.html +18 -15
- data/doc-api/classes/Erubis/Helpers/RailsFormHelper.html +787 -0
- data/doc-api/classes/Erubis/Helpers/RailsHelper/TemplateConverter.html +213 -0
- data/doc-api/classes/Erubis/Helpers/RailsHelper.html +103 -54
- data/doc-api/classes/Erubis/Helpers.html +6 -1
- data/doc-api/classes/Erubis/InterpolationEnhancer.html +42 -41
- data/doc-api/classes/Erubis/JavaGenerator.html +69 -69
- data/doc-api/classes/Erubis/JavascriptGenerator.html +79 -74
- data/doc-api/classes/Erubis/Main.html +49 -48
- data/doc-api/classes/Erubis/NoCodeEnhancer.html +35 -35
- data/doc-api/classes/Erubis/NoTextEnhancer.html +7 -7
- data/doc-api/classes/Erubis/OptimizedEruby.html +7 -7
- data/doc-api/classes/Erubis/OptimizedGenerator.html +84 -84
- data/doc-api/classes/Erubis/OptimizedXmlEruby.html +7 -7
- data/doc-api/classes/Erubis/PI/Converter.html +23 -22
- data/doc-api/classes/Erubis/PI/Ec.html +7 -7
- data/doc-api/classes/Erubis/PI/Ecpp.html +166 -0
- data/doc-api/classes/Erubis/PI/Ejava.html +7 -7
- data/doc-api/classes/Erubis/PI/Ejavascript.html +7 -7
- data/doc-api/classes/Erubis/PI/Eperl.html +7 -7
- data/doc-api/classes/Erubis/PI/Ephp.html +7 -7
- data/doc-api/classes/Erubis/PI/Eruby.html +6 -6
- data/doc-api/classes/Erubis/PI/Escheme.html +7 -7
- data/doc-api/classes/Erubis/PI/TinyEruby.html +28 -27
- data/doc-api/classes/Erubis/PI.html +1 -0
- data/doc-api/classes/Erubis/PercentLineEnhancer.html +18 -29
- data/doc-api/classes/Erubis/PerlGenerator.html +63 -63
- data/doc-api/classes/Erubis/PhpGenerator.html +63 -63
- data/doc-api/classes/Erubis/PrefixedLineEnhancer.html +210 -0
- data/doc-api/classes/Erubis/PrefixedLineEruby.html +120 -0
- data/doc-api/classes/Erubis/PreprocessingEruby.html +183 -0
- data/doc-api/classes/Erubis/PreprocessingHelper.html +212 -0
- data/doc-api/classes/Erubis/PrintEnabledEnhancer.html +23 -23
- data/doc-api/classes/Erubis/PrintOutEnhancer.html +38 -38
- data/doc-api/classes/Erubis/RubyEvaluator.html +59 -22
- data/doc-api/classes/Erubis/RubyGenerator.html +53 -52
- data/doc-api/classes/Erubis/SchemeGenerator.html +70 -70
- data/doc-api/classes/Erubis/SimplifyEnhancer.html +10 -9
- data/doc-api/classes/Erubis/StdoutEnhancer.html +3 -3
- data/doc-api/classes/Erubis/StringBufferEnhancer.html +16 -16
- data/doc-api/classes/Erubis/TinyEruby.html +33 -33
- data/doc-api/classes/Erubis/XmlHelper.html +80 -15
- data/doc-api/classes/Erubis.html +25 -1
- data/doc-api/classes/Kernel.html +155 -0
- data/doc-api/created.rid +1 -1
- data/doc-api/files/README_txt.html +8 -8
- data/doc-api/files/erubis/context_rb.html +2 -2
- data/doc-api/files/erubis/converter_rb.html +3 -3
- data/doc-api/files/erubis/engine/ec_rb.html +2 -2
- data/doc-api/files/erubis/engine/ecpp_rb.html +115 -0
- data/doc-api/files/erubis/engine/ejava_rb.html +2 -2
- data/doc-api/files/erubis/engine/ejavascript_rb.html +2 -2
- data/doc-api/files/erubis/engine/enhanced_rb.html +2 -2
- data/doc-api/files/erubis/engine/eperl_rb.html +2 -2
- data/doc-api/files/erubis/engine/ephp_rb.html +2 -2
- data/doc-api/files/erubis/engine/eruby_rb.html +2 -2
- data/doc-api/files/erubis/engine/escheme_rb.html +2 -2
- data/doc-api/files/erubis/engine/optimized_rb.html +2 -2
- data/doc-api/files/erubis/engine_rb.html +2 -2
- data/doc-api/files/erubis/enhancer_rb.html +2 -2
- data/doc-api/files/erubis/error_rb.html +2 -2
- data/doc-api/files/erubis/evaluator_rb.html +2 -2
- data/doc-api/files/erubis/generator_rb.html +3 -3
- data/doc-api/files/erubis/helper_rb.html +2 -2
- data/doc-api/files/erubis/helpers/rails_form_helper_rb.html +107 -0
- data/doc-api/files/erubis/helpers/rails_helper_rb.html +3 -2
- data/doc-api/files/erubis/local-setting_rb.html +2 -2
- data/doc-api/files/erubis/main_rb.html +4 -2
- data/doc-api/files/erubis/preprocessing_rb.html +114 -0
- data/doc-api/files/erubis/tiny_rb.html +2 -2
- data/doc-api/files/erubis/util_rb.html +107 -0
- data/doc-api/files/erubis_rb.html +2 -2
- data/doc-api/fr_class_index.html +13 -0
- data/doc-api/fr_file_index.html +4 -0
- data/doc-api/fr_method_index.html +237 -179
- data/examples/basic/Makefile +7 -2
- data/examples/basic/example.ecpp +33 -0
- data/lib/erubis/context.rb +2 -3
- data/lib/erubis/converter.rb +17 -11
- data/lib/erubis/engine/ec.rb +2 -3
- data/lib/erubis/engine/ecpp.rb +113 -0
- data/lib/erubis/engine/ejava.rb +9 -10
- data/lib/erubis/engine/ejavascript.rb +14 -9
- data/lib/erubis/engine/enhanced.rb +7 -3
- data/lib/erubis/engine/eperl.rb +2 -3
- data/lib/erubis/engine/ephp.rb +2 -3
- data/lib/erubis/engine/eruby.rb +8 -8
- data/lib/erubis/engine/escheme.rb +2 -3
- data/lib/erubis/engine/optimized.rb +2 -3
- data/lib/erubis/engine.rb +13 -11
- data/lib/erubis/enhancer.rb +101 -34
- data/lib/erubis/error.rb +2 -3
- data/lib/erubis/evaluator.rb +27 -10
- data/lib/erubis/generator.rb +3 -4
- data/lib/erubis/helper.rb +14 -3
- data/lib/erubis/helpers/rails_form_helper.rb +197 -0
- data/lib/erubis/helpers/rails_helper.rb +219 -77
- data/lib/erubis/local-setting.rb +2 -3
- data/lib/erubis/main.rb +85 -60
- data/lib/erubis/preprocessing.rb +58 -0
- data/lib/erubis/tiny.rb +9 -9
- data/lib/erubis/util.rb +22 -0
- data/lib/erubis.rb +4 -4
- data/test/assert-text-equal.rb +2 -3
- data/test/data/users-guide/bufvar-example.rb +10 -0
- data/test/data/users-guide/bufvar-example.result +17 -0
- data/test/data/users-guide/def_method.rb +14 -0
- data/test/data/users-guide/def_method.result +3 -0
- data/test/data/users-guide/example.ecpp +30 -0
- data/test/data/users-guide/example1.rb +1 -0
- data/test/data/users-guide/example_c.result +22 -19
- data/test/data/users-guide/fasteruby-example.rb +8 -0
- data/test/data/users-guide/fasteruby-example.result +18 -0
- data/test/data/users-guide/main_program1.rb +8 -0
- data/test/data/users-guide/main_program1.result +6 -0
- data/test/data/users-guide/main_program2.rb +8 -0
- data/test/data/users-guide/main_program2.result +6 -0
- data/test/data/users-guide/percentline-example.rhtml +3 -1
- data/test/data/users-guide/percentline_example.result +5 -3
- data/test/data/users-guide/prefixedline-example.rb +9 -0
- data/test/data/users-guide/prefixedline-example.rhtml +6 -0
- data/test/data/users-guide/prefixedline_example.result +9 -0
- data/test/data/users-guide/tail_260.result +4 -0
- data/test/data/users-guide/tailnewline.rhtml +3 -0
- data/test/data/users-guide/template1.rhtml +4 -0
- data/test/data/users-guide/template2.rhtml +4 -0
- data/test/test-engines.rb +88 -5
- data/test/test-enhancers.rb +83 -6
- data/test/test-erubis.rb +115 -11
- data/test/test-index-cgi.rb +191 -0
- data/test/test-main.rb +143 -31
- data/test/test-users-guide.rb +20 -3
- data/test/test.rb +18 -3
- data/test/testutil.rb +44 -8
- metadata +104 -67
- data/contrib/action_view_base_rb.patch +0 -23
data/contrib/inline-require
CHANGED
|
@@ -5,14 +5,19 @@
|
|
|
5
5
|
###
|
|
6
6
|
### usage: inline-require [-h] [-I path[,path2,..]] script
|
|
7
7
|
###
|
|
8
|
-
### copyright(c) 2006-
|
|
9
|
-
### 2.
|
|
10
|
-
### $Rev:
|
|
8
|
+
### copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
|
|
9
|
+
### 2.7.0
|
|
10
|
+
### $Rev: 10 $
|
|
11
11
|
###
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class InlineRequire
|
|
15
15
|
|
|
16
|
+
def initialize(opts={})
|
|
17
|
+
@opts = opts.dup
|
|
18
|
+
end
|
|
19
|
+
attr_accessor :opts
|
|
20
|
+
|
|
16
21
|
def expand(filename)
|
|
17
22
|
sbuf = ''
|
|
18
23
|
inlined = []
|
|
@@ -25,6 +30,10 @@ class InlineRequire
|
|
|
25
30
|
|
|
26
31
|
def expand_require(filename, sbuf, inlined, level)
|
|
27
32
|
raise "*** assertion error" if inlined.include?(filename)
|
|
33
|
+
remove_comment = @opts[:remove_comment]
|
|
34
|
+
expand_indented = @opts[:expand_indented]
|
|
35
|
+
keep_filename = @opts[:keep_filename]
|
|
36
|
+
loaded_features = @opts[:loaded_features]
|
|
28
37
|
inlined << filename
|
|
29
38
|
prog = File.read(filename)
|
|
30
39
|
n = 0
|
|
@@ -48,7 +57,9 @@ class InlineRequire
|
|
|
48
57
|
|
|
49
58
|
## find 'require "foo"' and expand it to inline code
|
|
50
59
|
flag_inline = false
|
|
51
|
-
|
|
60
|
+
pattern = expand_indented ? /^[ \t]*require ['"](.*)["']\s*$/ \
|
|
61
|
+
: /^require ['"](.*)["']\s*$/
|
|
62
|
+
if line =~ pattern
|
|
52
63
|
libname = $1
|
|
53
64
|
libpath = find_library(libname)
|
|
54
65
|
$stderr.puts "*** debug: libpath=#{libpath.inspect}" if $debug_mode
|
|
@@ -60,13 +71,19 @@ class InlineRequire
|
|
|
60
71
|
end
|
|
61
72
|
end
|
|
62
73
|
if !flag_inline
|
|
63
|
-
sbuf << line
|
|
74
|
+
sbuf << line unless remove_comment && line =~ /^[ \t]*\#/
|
|
64
75
|
elsif inlined.include?(libpath)
|
|
65
|
-
sbuf << "#--already included #{line}"
|
|
76
|
+
sbuf << "#--already included #{line}" unless remove_comment
|
|
66
77
|
else
|
|
67
|
-
|
|
78
|
+
if keep_filename
|
|
79
|
+
@n ||= 0; @n += 1; n = @n
|
|
80
|
+
end
|
|
81
|
+
sbuf << "#--begin of #{line}" unless remove_comment
|
|
82
|
+
sbuf << "$LOADED_FEATURES << '#{libname}.rb'\n" if loaded_features
|
|
83
|
+
sbuf << "eval <<'END_OF_SCRIPT__#{n}', TOPLEVEL_BINDING, '#{libpath}', 1\n" if keep_filename
|
|
68
84
|
expand_require(libpath, sbuf, inlined, level+1)
|
|
69
|
-
sbuf << "
|
|
85
|
+
sbuf << "END_OF_SCRIPT__#{n}\n" if keep_filename
|
|
86
|
+
sbuf << "#--end of #{line}" unless remove_comment
|
|
70
87
|
end
|
|
71
88
|
end
|
|
72
89
|
#sbuf << "\n" if sbuf[-1] != ?\n
|
|
@@ -105,38 +122,47 @@ end
|
|
|
105
122
|
if __FILE__ == $0
|
|
106
123
|
|
|
107
124
|
begin
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
end
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
if flag_help
|
|
125
|
+
require "optparse"
|
|
126
|
+
op = OptionParser.new
|
|
127
|
+
options = {}
|
|
128
|
+
op.on("-h", "--help") {|v| options[:help] = v }
|
|
129
|
+
op.on("-I libpath") {|v| options[:libpath] = v }
|
|
130
|
+
op.on("-i") {|v| options[:expand_indented] = v }
|
|
131
|
+
op.on("-c") {|v| options[:remove_comment] = v }
|
|
132
|
+
op.on("-k") {|v| options[:keep_filename] = v }
|
|
133
|
+
op.on("-l") {|v| options[:loaded_features] = v }
|
|
134
|
+
op.on("-D") {|v| options[:debug] = v }
|
|
135
|
+
op.parse!()
|
|
136
|
+
|
|
137
|
+
$debug_mode = options[:debug]
|
|
138
|
+
|
|
139
|
+
if options[:help]
|
|
127
140
|
command = File.basename($0)
|
|
128
141
|
puts "Usage: #{command} [-h] [-I path[,path2,..]] script"
|
|
129
142
|
puts " -h : help"
|
|
143
|
+
puts " -i : expand indented require(), too"
|
|
144
|
+
puts " -c : remove comment lines start with '#'"
|
|
145
|
+
puts " -k : keep filename (for debugging)"
|
|
146
|
+
puts " -l : append libs to $LOADED_FEATURES"
|
|
130
147
|
puts " -I path[,path2,...] : ruby library path"
|
|
131
148
|
exit(0)
|
|
132
149
|
end
|
|
133
150
|
|
|
151
|
+
if options[:libpath]
|
|
152
|
+
rubylib_paths = options[:libpath].split(/,/)
|
|
153
|
+
else
|
|
154
|
+
rubylib_paths = []
|
|
155
|
+
end
|
|
134
156
|
$stderr.puts "*** debug: rubylib_paths=#{rubylib_paths.inspect}" if $debug_mode
|
|
135
157
|
$LOAD_PATH.concat(rubylib_paths)
|
|
136
158
|
|
|
137
159
|
filenames = ARGV
|
|
138
160
|
|
|
139
|
-
|
|
161
|
+
opts = { :expand_indented => options[:expand_indented],
|
|
162
|
+
:remove_comment => options[:remove_comment],
|
|
163
|
+
:keep_filename => options[:keep_filename],
|
|
164
|
+
:loaded_features => options[:loaded_features] }
|
|
165
|
+
inline_require = InlineRequire.new(opts)
|
|
140
166
|
filenames.each do |filename|
|
|
141
167
|
print inline_require.expand(filename)
|
|
142
168
|
end
|
data/doc/docstyle.css
CHANGED
|
@@ -27,7 +27,7 @@ pre {
|
|
|
27
27
|
white-space:pre;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
.program {
|
|
30
|
+
pre.program {
|
|
31
31
|
border-style:solid;
|
|
32
32
|
border-width:1px;
|
|
33
33
|
border-color:#6699FF;
|
|
@@ -38,7 +38,7 @@ pre {
|
|
|
38
38
|
word-break:break-all;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
.terminal {
|
|
41
|
+
pre.terminal {
|
|
42
42
|
border-style:solid;
|
|
43
43
|
border-width:1;
|
|
44
44
|
border-color:#999999;
|
|
@@ -49,7 +49,7 @@ pre {
|
|
|
49
49
|
word-break:break-all;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
.output {
|
|
52
|
+
pre.output {
|
|
53
53
|
border-style:solid;
|
|
54
54
|
border-width:1px;
|
|
55
55
|
border-color:#CCCCCC;
|
|
@@ -61,6 +61,12 @@ pre {
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
|
|
64
|
+
pre strong {
|
|
65
|
+
color: #990000;
|
|
66
|
+
font-weight: bold;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
|
|
64
70
|
.program_caption {
|
|
65
71
|
margin-top: 20px;
|
|
66
72
|
}
|
|
@@ -168,7 +174,7 @@ h3, .subsection {
|
|
|
168
174
|
font-size:small;
|
|
169
175
|
}
|
|
170
176
|
|
|
171
|
-
.note {
|
|
177
|
+
div.note, div.tips {
|
|
172
178
|
background-color:#FFFFDD;
|
|
173
179
|
border-style:solid;
|
|
174
180
|
border-width:0px 1px 0px 1px;
|
|
@@ -176,9 +182,14 @@ h3, .subsection {
|
|
|
176
182
|
color:#333300;
|
|
177
183
|
/* font-size:small; */
|
|
178
184
|
line-height:120%;
|
|
185
|
+
margin-top: 10px;
|
|
179
186
|
padding: 5px 20px 5px 20px;
|
|
180
187
|
}
|
|
181
188
|
|
|
189
|
+
div.note span.caption, div.tips span.caption {
|
|
190
|
+
color: #C60;
|
|
191
|
+
}
|
|
192
|
+
|
|
182
193
|
.figure {
|
|
183
194
|
/*
|
|
184
195
|
border-width:1px;
|
|
@@ -186,3 +197,13 @@ h3, .subsection {
|
|
|
186
197
|
white-space:pre;
|
|
187
198
|
*/
|
|
188
199
|
}
|
|
200
|
+
|
|
201
|
+
strong {
|
|
202
|
+
color: #630;
|
|
203
|
+
font-weight; bold;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
em {
|
|
208
|
+
font-style: italic;
|
|
209
|
+
}
|