erubis 2.2.0 → 2.3.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 +120 -3
- data/README.txt +1 -1
- data/benchmark/Makefile +6 -0
- data/benchmark/bench.rb +306 -0
- data/benchmark/{erubybench.yaml → bench_context.yaml} +20 -20
- data/benchmark/templates/_footer.html +4 -0
- data/benchmark/{erubybench.rhtml → templates/_header.html} +1 -34
- data/benchmark/templates/bench_erb.rhtml +29 -0
- data/benchmark/templates/bench_erubis.rhtml +29 -0
- data/benchmark/templates/bench_eruby.rhtml +29 -0
- data/bin/erubis +2 -2
- data/contrib/erubis +3 -3114
- data/contrib/erubis-run.rb +132 -0
- data/contrib/inline-require +1 -1
- data/doc-api/classes/{ERB.html → ActionView/Base/ERB.html} +3 -3
- data/doc-api/classes/Erubis.html +8 -1
- data/doc-api/classes/Erubis/ArrayEnhancer.html +12 -12
- data/doc-api/classes/Erubis/Basic/Converter.html +24 -24
- data/doc-api/classes/Erubis/BiPatternEnhancer.html +14 -14
- data/doc-api/classes/Erubis/CGenerator.html +60 -60
- data/doc-api/classes/Erubis/Context.html +42 -42
- data/doc-api/classes/Erubis/Converter.html +27 -27
- data/doc-api/classes/Erubis/DeleteIndentEnhancer.html +150 -0
- data/doc-api/classes/Erubis/DeleteIndentEruby.html +120 -0
- data/doc-api/classes/Erubis/Engine.html +31 -31
- data/doc-api/classes/Erubis/ErboutEnhancer.html +175 -0
- data/doc-api/classes/Erubis/ErboutEruby.html +120 -0
- data/doc-api/classes/Erubis/Eruby.html +5 -0
- data/doc-api/classes/Erubis/EscapeEnhancer.html +6 -6
- data/doc-api/classes/Erubis/Evaluator.html +19 -19
- data/doc-api/classes/Erubis/FastEruby.html +131 -0
- data/doc-api/classes/Erubis/HeaderFooterEnhancer.html +14 -14
- data/doc-api/classes/Erubis/Helpers/RailsHelper.html +49 -45
- data/doc-api/classes/Erubis/InterpolationEnhancer.html +304 -0
- data/doc-api/classes/Erubis/InterpolationEruby.html +120 -0
- data/doc-api/classes/Erubis/JavaGenerator.html +54 -54
- data/doc-api/classes/Erubis/JavascriptGenerator.html +60 -60
- data/doc-api/classes/Erubis/Main.html +35 -27
- data/doc-api/classes/Erubis/NoCodeEnhancer.html +5 -5
- data/doc-api/classes/Erubis/NoTextEnhancer.html +7 -7
- data/doc-api/classes/Erubis/OptimizedEruby.html +6 -6
- data/doc-api/classes/Erubis/OptimizedGenerator.html +72 -72
- data/doc-api/classes/Erubis/OptimizedXmlEruby.html +6 -6
- data/doc-api/classes/Erubis/PI/Converter.html +18 -18
- data/doc-api/classes/Erubis/PI/Ec.html +6 -6
- data/doc-api/classes/Erubis/PI/Ejava.html +6 -6
- data/doc-api/classes/Erubis/PI/Ejavascript.html +6 -6
- data/doc-api/classes/Erubis/PI/Eperl.html +6 -6
- data/doc-api/classes/Erubis/PI/Ephp.html +6 -6
- data/doc-api/classes/Erubis/PI/Eruby.html +7 -7
- data/doc-api/classes/Erubis/PI/Escheme.html +6 -6
- data/doc-api/classes/Erubis/PI/TinyEruby.html +24 -24
- data/doc-api/classes/Erubis/PercentLineEnhancer.html +8 -8
- data/doc-api/classes/Erubis/PerlGenerator.html +54 -54
- data/doc-api/classes/Erubis/PhpGenerator.html +54 -54
- data/doc-api/classes/Erubis/PrintEnabledEnhancer.html +20 -20
- data/doc-api/classes/Erubis/PrintOutEnhancer.html +30 -30
- data/doc-api/classes/Erubis/RubyEvaluator.html +12 -12
- data/doc-api/classes/Erubis/RubyGenerator.html +48 -48
- data/doc-api/classes/Erubis/SchemeGenerator.html +60 -60
- data/doc-api/classes/Erubis/SimplifyEnhancer.html +8 -8
- data/doc-api/classes/Erubis/StdoutEnhancer.html +12 -12
- data/doc-api/classes/Erubis/StringBufferEnhancer.html +12 -12
- data/doc-api/classes/Erubis/TinyEruby.html +24 -24
- data/doc-api/classes/Erubis/XmlHelper.html +14 -14
- data/doc-api/created.rid +1 -1
- data/doc-api/files/README_txt.html +4 -4
- data/doc-api/files/erubis/context_rb.html +2 -2
- data/doc-api/files/erubis/converter_rb.html +2 -2
- data/doc-api/files/erubis/engine/ec_rb.html +2 -2
- 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 +2 -2
- data/doc-api/files/erubis/helper_rb.html +2 -2
- data/doc-api/files/erubis/helpers/rails_helper_rb.html +2 -2
- data/doc-api/files/erubis/local-setting_rb.html +2 -2
- data/doc-api/files/erubis/main_rb.html +2 -2
- data/doc-api/files/erubis/tiny_rb.html +2 -2
- data/doc-api/files/erubis_rb.html +1 -1
- data/doc-api/fr_class_index.html +8 -1
- data/doc-api/fr_method_index.html +166 -158
- data/doc/users-guide.html +623 -215
- data/lib/erubis.rb +2 -2
- data/lib/erubis/context.rb +2 -2
- data/lib/erubis/converter.rb +2 -2
- data/lib/erubis/engine.rb +3 -3
- data/lib/erubis/engine/ec.rb +2 -2
- data/lib/erubis/engine/ejava.rb +2 -2
- data/lib/erubis/engine/ejavascript.rb +2 -2
- data/lib/erubis/engine/enhanced.rb +17 -2
- data/lib/erubis/engine/eperl.rb +2 -2
- data/lib/erubis/engine/ephp.rb +2 -2
- data/lib/erubis/engine/eruby.rb +10 -2
- data/lib/erubis/engine/escheme.rb +2 -2
- data/lib/erubis/engine/optimized.rb +2 -2
- data/lib/erubis/enhancer.rb +134 -25
- data/lib/erubis/error.rb +2 -2
- data/lib/erubis/evaluator.rb +2 -2
- data/lib/erubis/generator.rb +2 -2
- data/lib/erubis/helper.rb +2 -2
- data/lib/erubis/helpers/rails_helper.rb +19 -75
- data/lib/erubis/local-setting.rb +2 -2
- data/lib/erubis/main.rb +63 -36
- data/lib/erubis/tiny.rb +2 -2
- data/test/assert-text-equal.rb +2 -2
- data/test/data/users-guide/Example.ejava +55 -0
- data/test/data/users-guide/array_example.result +9 -0
- data/test/data/users-guide/arraybuffer_example.result +9 -0
- data/test/data/users-guide/bipattern-example.rhtml +4 -0
- data/test/data/users-guide/bipattern_example.result +6 -0
- data/test/data/users-guide/context.rb +6 -0
- data/test/data/users-guide/context.yaml +8 -0
- data/test/data/users-guide/escape_example.result +9 -0
- data/test/data/users-guide/example.ec +27 -0
- data/test/data/users-guide/example.ejs +20 -0
- data/test/data/users-guide/example.eperl +18 -0
- data/test/data/users-guide/example.ephp +18 -0
- data/test/data/users-guide/example.eruby +6 -0
- data/test/data/users-guide/example.escheme +28 -0
- data/test/data/users-guide/example1.eruby +6 -0
- data/test/data/users-guide/example1.rb +16 -0
- data/test/data/users-guide/example1.result +16 -0
- data/test/data/users-guide/example10.rb +4 -0
- data/test/data/users-guide/example10.result +17 -0
- data/test/data/users-guide/example10.xhtml +14 -0
- data/test/data/users-guide/example10_x.result +17 -0
- data/test/data/users-guide/example11.php +20 -0
- data/test/data/users-guide/example11.result +23 -0
- data/test/data/users-guide/example11.rhtml +21 -0
- data/test/data/users-guide/example11_C.result +10 -0
- data/test/data/users-guide/example11_N.result +16 -0
- data/test/data/users-guide/example11_U.result +16 -0
- data/test/data/users-guide/example11_php.result +15 -0
- data/test/data/users-guide/example1_x.result +9 -0
- data/test/data/users-guide/example2.eruby +7 -0
- data/test/data/users-guide/example2.rb +10 -0
- data/test/data/users-guide/example2.result +27 -0
- data/test/data/users-guide/example2_trim.result +10 -0
- data/test/data/users-guide/example2_x.result +10 -0
- data/test/data/users-guide/example3.eruby +6 -0
- data/test/data/users-guide/example3.rb +10 -0
- data/test/data/users-guide/example31.result +22 -0
- data/test/data/users-guide/example32.result +4 -0
- data/test/data/users-guide/example3_e.result +8 -0
- data/test/data/users-guide/example4.eruby +3 -0
- data/test/data/users-guide/example4.rb +11 -0
- data/test/data/users-guide/example4.result +10 -0
- data/test/data/users-guide/example4_x.result +5 -0
- data/test/data/users-guide/example5.eruby +6 -0
- data/test/data/users-guide/example5.rb +16 -0
- data/test/data/users-guide/example5.result +7 -0
- data/test/data/users-guide/example6.rb +12 -0
- data/test/data/users-guide/example6.result +7 -0
- data/test/data/users-guide/example7.eruby +8 -0
- data/test/data/users-guide/example71.result +13 -0
- data/test/data/users-guide/example72.result +13 -0
- data/test/data/users-guide/example8.eruby +6 -0
- data/test/data/users-guide/example8_ruby.result +7 -0
- data/test/data/users-guide/example8_yaml.result +7 -0
- data/test/data/users-guide/example9.eruby +3 -0
- data/test/data/users-guide/example9.rb +8 -0
- data/test/data/users-guide/example9.result +9 -0
- data/test/data/users-guide/example91.result +5 -0
- data/test/data/users-guide/example92.result +4 -0
- data/test/data/users-guide/example_c.result +29 -0
- data/test/data/users-guide/example_java.result +56 -0
- data/test/data/users-guide/example_js.result +22 -0
- data/test/data/users-guide/example_perl.result +20 -0
- data/test/data/users-guide/example_php.result +19 -0
- data/test/data/users-guide/example_scheme.result +30 -0
- data/test/data/users-guide/example_scheme_display.result +29 -0
- data/test/data/users-guide/fasteruby.rb +11 -0
- data/test/data/users-guide/fasteruby.result +38 -0
- data/test/data/users-guide/fasteruby.rhtml +15 -0
- data/test/data/users-guide/headerfooter-example.eruby +9 -0
- data/test/data/users-guide/headerfooter-example2.rb +8 -0
- data/test/data/users-guide/headerfooter-example2.rhtml +10 -0
- data/test/data/users-guide/headerfooter_example.result +11 -0
- data/test/data/users-guide/headerfooter_example2.result +13 -0
- data/test/data/users-guide/interpolation_example.result +9 -0
- data/test/data/users-guide/nocode-example.eruby +14 -0
- data/test/data/users-guide/nocode-php.result +20 -0
- data/test/data/users-guide/nocode_example.result +15 -0
- data/test/data/users-guide/normal-eruby-test.eruby +9 -0
- data/test/data/users-guide/normal_eruby_test.result +11 -0
- data/test/data/users-guide/notext-example.eruby +14 -0
- data/test/data/users-guide/notext-example.php +19 -0
- data/test/data/users-guide/notext-php.result +20 -0
- data/test/data/users-guide/notext_example.result +16 -0
- data/test/data/users-guide/percentline-example.rhtml +4 -0
- data/test/data/users-guide/percentline_example.result +7 -0
- data/test/data/users-guide/printenable_example.result +4 -0
- data/test/data/users-guide/printenabled-example.eruby +3 -0
- data/test/data/users-guide/printenabled-example.rb +8 -0
- data/test/data/users-guide/printstatement_example.result +8 -0
- data/test/data/users-guide/simplify_example.result +9 -0
- data/test/data/users-guide/stdout_exmple.result +9 -0
- data/test/data/users-guide/stringbuffer_example.result +9 -0
- data/test/test-engines.rb +2 -2
- data/test/test-enhancers.rb +569 -0
- data/test/test-erubis.rb +3 -380
- data/test/test-main.rb +39 -15
- data/test/test-users-guide.rb +56 -0
- data/test/test.rb +4 -3
- data/test/testutil.rb +2 -2
- metadata +166 -57
- data/benchmark/erubybench-lib.rb +0 -189
- data/benchmark/erubybench.rb +0 -600
- data/bin/notext +0 -154
- data/test/test-notext.rb +0 -27
data/bin/notext
DELETED
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
|
|
3
|
-
###
|
|
4
|
-
### notext - retrieve embedded code from eRuby, PHP, and so on
|
|
5
|
-
###
|
|
6
|
-
### $Rev$
|
|
7
|
-
### $Release: 2.2.0 $
|
|
8
|
-
### copyright(c) 2006-2007 kuwata-lab all rights reserved.
|
|
9
|
-
###
|
|
10
|
-
|
|
11
|
-
require 'erubis'
|
|
12
|
-
require 'erubis/engine/eruby'
|
|
13
|
-
require 'erubis/engine/ephp'
|
|
14
|
-
require 'erubis/engine/ec'
|
|
15
|
-
require 'erubis/engine/ejava'
|
|
16
|
-
require 'erubis/engine/escheme'
|
|
17
|
-
require 'erubis/engine/eperl'
|
|
18
|
-
require 'erubis/engine/ejavascript'
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
def help()
|
|
22
|
-
command = File.basename($0)
|
|
23
|
-
s = <<END
|
|
24
|
-
#{command} - retrieve embedded code from eRuby, PHP, and so on.
|
|
25
|
-
Usage: #{command} [-hvncu] [-l lang] [-p pattern] file.php ...
|
|
26
|
-
-h : help
|
|
27
|
-
-v : version
|
|
28
|
-
-n : show line number
|
|
29
|
-
-c : compact mode (delete empty lines)
|
|
30
|
-
-u : uniq mode (compress repeated empty lines to a line)
|
|
31
|
-
-l lang : ruby/php/perl/c/java/scheme/javascript
|
|
32
|
-
-p pattern : embedded pattern (default '<% %>' or '<\\?(?:php|=|\\s) \\?>')
|
|
33
|
-
END
|
|
34
|
-
return s
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
## Engine classes which include NoTextEnhancer
|
|
39
|
-
klass_table = {}
|
|
40
|
-
lang_list = %w[ruby php c java scheme perl javascript]
|
|
41
|
-
lang_list.each do |lang|
|
|
42
|
-
eval <<-END
|
|
43
|
-
class NoTextE#{lang} < Erubis::E#{lang}
|
|
44
|
-
include Erubis::NoTextEnhancer
|
|
45
|
-
end
|
|
46
|
-
END
|
|
47
|
-
klass_table[lang] = Object.const_get("NoTextE#{lang}")
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
## parse command-line options
|
|
52
|
-
options = {}
|
|
53
|
-
properties = {}
|
|
54
|
-
while !ARGV.empty? && ARGV[0][0] == ?-
|
|
55
|
-
optstr = ARGV.shift
|
|
56
|
-
optstr = optstr.sub(/^-/, '')
|
|
57
|
-
while !optstr.empty?
|
|
58
|
-
optch = optstr[0]
|
|
59
|
-
optstr = optstr[1, optstr.length-1]
|
|
60
|
-
case optch
|
|
61
|
-
when ?h, ?v, ?n, ?c, ?u # help, version, linenum, compact, uniq
|
|
62
|
-
options[optch] = true
|
|
63
|
-
when ?l, ?p # lang, pattern
|
|
64
|
-
arg = !optstr.empty? ? optstr : ARGV.shift
|
|
65
|
-
unless arg
|
|
66
|
-
argnames = { ?l => 'lang name', ?p => 'pattern' }
|
|
67
|
-
$stderr.puts "-#{optch.chr}: #{argnames[optch]} required."
|
|
68
|
-
exit(1)
|
|
69
|
-
end
|
|
70
|
-
options[optch] = arg
|
|
71
|
-
else
|
|
72
|
-
$stderr.puts "-#{optch.chr}: unknown option."
|
|
73
|
-
exit(1)
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
opt_help = options[?h]
|
|
79
|
-
opt_version = options[?v]
|
|
80
|
-
opt_linenum = options[?n]
|
|
81
|
-
opt_compact = options[?c]
|
|
82
|
-
opt_unique = options[?u]
|
|
83
|
-
opt_pattern = options[?p]
|
|
84
|
-
opt_lang = options[?l]
|
|
85
|
-
|
|
86
|
-
if opt_lang
|
|
87
|
-
unless lang_list.include?(opt_lang)
|
|
88
|
-
$stderr.puts "-l #{opt_lang}: not supported."
|
|
89
|
-
exit(1)
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
## help message
|
|
95
|
-
if opt_help || opt_version
|
|
96
|
-
version = ('$Release: 2.2.0 $' =~ /[\.\d]+/) && $&
|
|
97
|
-
puts version if opt_version
|
|
98
|
-
puts help() if opt_help
|
|
99
|
-
exit(0)
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
## determine pattern
|
|
104
|
-
lang = opt_lang
|
|
105
|
-
unless lang
|
|
106
|
-
filename = ARGV[0]
|
|
107
|
-
if filename && filename =~ /\.(\w+)$/
|
|
108
|
-
case suffix = $1
|
|
109
|
-
when 'php', 'php5', 'inc' ; lang = 'php'
|
|
110
|
-
when 'ec' ; lang = 'c'
|
|
111
|
-
when 'ejava' ; lang = 'java'
|
|
112
|
-
when 'escheme', 'escm' ; lang = 'scheme'
|
|
113
|
-
when 'eperl' ; lang = 'perl'
|
|
114
|
-
when 'js', 'javascript' ; lang = 'javascript'
|
|
115
|
-
else ; lang = 'ruby'
|
|
116
|
-
end
|
|
117
|
-
else
|
|
118
|
-
lang = 'ruby'
|
|
119
|
-
end
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
## determine pattern
|
|
124
|
-
if opt_pattern
|
|
125
|
-
pattern = opt_pattern
|
|
126
|
-
else
|
|
127
|
-
case lang
|
|
128
|
-
when 'php' ; pattern = '<\?(?:php\b|(?==)|(?=\s)) \?>'
|
|
129
|
-
when 'perl' ; pattern = '<\?(?=\s|=) !>'
|
|
130
|
-
else ; pattern = '<% %>'
|
|
131
|
-
end
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
## read input and create engine
|
|
136
|
-
klass = klass_table[lang]
|
|
137
|
-
input = ARGF.read()
|
|
138
|
-
engine = klass.new(input, :pattern=>pattern, :trim=>false)
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
## print embedded code
|
|
142
|
-
n = 0
|
|
143
|
-
prev_empty = false
|
|
144
|
-
engine.src.each_line do |line|
|
|
145
|
-
n += 1
|
|
146
|
-
if line =~ /^\s*$/
|
|
147
|
-
next if opt_compact || (opt_unique && prev_empty)
|
|
148
|
-
print opt_linenum && !opt_unique ? ("%3d: \n" % n) : "\n"
|
|
149
|
-
prev_empty = true
|
|
150
|
-
else
|
|
151
|
-
print opt_linenum ? ("%3d: %s" % [n, line]) : line
|
|
152
|
-
prev_empty = false
|
|
153
|
-
end
|
|
154
|
-
end
|
data/test/test-notext.rb
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
##
|
|
2
|
-
## $Rev: 31 $
|
|
3
|
-
## $Release: 2.2.0 $
|
|
4
|
-
## copyright(c) 2006-2007 kuwata-lab all rights reserved.
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
require File.dirname(__FILE__) + '/test'
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class NoTextTest < Test::Unit::TestCase
|
|
11
|
-
|
|
12
|
-
filename = __FILE__.sub(/\.\w+$/, '.yaml')
|
|
13
|
-
testdata_list = load_yaml_datafile(filename)
|
|
14
|
-
define_testmethods(testdata_list)
|
|
15
|
-
|
|
16
|
-
def _test
|
|
17
|
-
File.open(@filename, 'w') { |f| f.write(@input) }
|
|
18
|
-
begin
|
|
19
|
-
result = `notext #{@options} #{@filename}`
|
|
20
|
-
expected = @output.gsub(/^\./, '')
|
|
21
|
-
assert_text_equal(expected, result)
|
|
22
|
-
ensure
|
|
23
|
-
File.unlink @filename if test(?f, @filename)
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
end
|