erubis 2.6.6 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. data/CHANGES.txt +79 -3
  2. data/MIT-LICENSE +1 -1
  3. data/README.txt +2 -2
  4. data/benchmark/bench.rb +2 -2
  5. data/bin/erubis +2 -2
  6. data/contrib/erubis +293 -155
  7. data/contrib/inline-require +2 -2
  8. data/doc-api/classes/Erubis.html +10 -1
  9. data/doc-api/classes/Erubis/ArrayBufferEnhancer.html +12 -12
  10. data/doc-api/classes/Erubis/ArrayEnhancer.html +14 -14
  11. data/doc-api/classes/Erubis/Basic/Converter.html +24 -24
  12. data/doc-api/classes/Erubis/BiPatternEnhancer.html +12 -12
  13. data/doc-api/classes/Erubis/CGenerator.html +60 -60
  14. data/doc-api/classes/Erubis/Context.html +42 -42
  15. data/doc-api/classes/Erubis/Converter.html +27 -27
  16. data/doc-api/classes/Erubis/CppGenerator.html +382 -0
  17. data/doc-api/classes/Erubis/DeleteIndentEnhancer.html +7 -7
  18. data/doc-api/classes/Erubis/Ecpp.html +126 -0
  19. data/doc-api/classes/Erubis/Engine.html +36 -36
  20. data/doc-api/classes/Erubis/ErboutEnhancer.html +14 -14
  21. data/doc-api/classes/Erubis/EscapeEnhancer.html +6 -6
  22. data/doc-api/classes/Erubis/EscapedEcpp.html +120 -0
  23. data/doc-api/classes/Erubis/Evaluator.html +19 -19
  24. data/doc-api/classes/Erubis/Generator.html +60 -60
  25. data/doc-api/classes/Erubis/HeaderFooterEnhancer.html +14 -14
  26. data/doc-api/classes/Erubis/Helpers/RailsFormHelper.html +150 -150
  27. data/doc-api/classes/Erubis/Helpers/RailsHelper.html +49 -49
  28. data/doc-api/classes/Erubis/Helpers/RailsHelper/TemplateConverter.html +24 -24
  29. data/doc-api/classes/Erubis/InterpolationEnhancer.html +38 -39
  30. data/doc-api/classes/Erubis/JavaGenerator.html +60 -60
  31. data/doc-api/classes/Erubis/JavascriptGenerator.html +66 -66
  32. data/doc-api/classes/Erubis/Main.html +22 -22
  33. data/doc-api/classes/Erubis/NoCodeEnhancer.html +30 -30
  34. data/doc-api/classes/Erubis/NoTextEnhancer.html +6 -6
  35. data/doc-api/classes/Erubis/OptimizedEruby.html +6 -6
  36. data/doc-api/classes/Erubis/OptimizedGenerator.html +72 -72
  37. data/doc-api/classes/Erubis/OptimizedXmlEruby.html +6 -6
  38. data/doc-api/classes/Erubis/PI.html +1 -0
  39. data/doc-api/classes/Erubis/PI/Converter.html +18 -18
  40. data/doc-api/classes/Erubis/PI/Ec.html +6 -6
  41. data/doc-api/classes/Erubis/PI/Ecpp.html +166 -0
  42. data/doc-api/classes/Erubis/PI/Ejava.html +6 -6
  43. data/doc-api/classes/Erubis/PI/Ejavascript.html +6 -6
  44. data/doc-api/classes/Erubis/PI/Eperl.html +6 -6
  45. data/doc-api/classes/Erubis/PI/Ephp.html +6 -6
  46. data/doc-api/classes/Erubis/PI/Eruby.html +7 -7
  47. data/doc-api/classes/Erubis/PI/Escheme.html +6 -6
  48. data/doc-api/classes/Erubis/PI/TinyEruby.html +24 -24
  49. data/doc-api/classes/Erubis/PercentLineEnhancer.html +18 -34
  50. data/doc-api/classes/Erubis/PerlGenerator.html +54 -54
  51. data/doc-api/classes/Erubis/PhpGenerator.html +54 -54
  52. data/doc-api/classes/Erubis/PrefixedLineEnhancer.html +210 -0
  53. data/doc-api/classes/Erubis/PrefixedLineEruby.html +120 -0
  54. data/doc-api/classes/Erubis/PreprocessingEruby.html +12 -12
  55. data/doc-api/classes/Erubis/PreprocessingHelper.html +22 -22
  56. data/doc-api/classes/Erubis/PrintEnabledEnhancer.html +20 -20
  57. data/doc-api/classes/Erubis/PrintOutEnhancer.html +33 -33
  58. data/doc-api/classes/Erubis/RubyEvaluator.html +18 -18
  59. data/doc-api/classes/Erubis/RubyGenerator.html +59 -58
  60. data/doc-api/classes/Erubis/SchemeGenerator.html +60 -60
  61. data/doc-api/classes/Erubis/SimplifyEnhancer.html +7 -7
  62. data/doc-api/classes/Erubis/StdoutEnhancer.html +13 -13
  63. data/doc-api/classes/Erubis/StringBufferEnhancer.html +14 -14
  64. data/doc-api/classes/Erubis/TinyEruby.html +24 -24
  65. data/doc-api/classes/Erubis/XmlHelper.html +30 -30
  66. data/doc-api/classes/Kernel.html +155 -0
  67. data/doc-api/created.rid +1 -1
  68. data/doc-api/files/README_txt.html +3 -3
  69. data/doc-api/files/erubis/context_rb.html +1 -1
  70. data/doc-api/files/erubis/converter_rb.html +3 -3
  71. data/doc-api/files/erubis/engine/ec_rb.html +1 -1
  72. data/doc-api/files/erubis/engine/ecpp_rb.html +115 -0
  73. data/doc-api/files/erubis/engine/ejava_rb.html +2 -2
  74. data/doc-api/files/erubis/engine/ejavascript_rb.html +2 -2
  75. data/doc-api/files/erubis/engine/enhanced_rb.html +2 -2
  76. data/doc-api/files/erubis/engine/eperl_rb.html +1 -1
  77. data/doc-api/files/erubis/engine/ephp_rb.html +1 -1
  78. data/doc-api/files/erubis/engine/eruby_rb.html +2 -2
  79. data/doc-api/files/erubis/engine/escheme_rb.html +1 -1
  80. data/doc-api/files/erubis/engine/optimized_rb.html +1 -1
  81. data/doc-api/files/erubis/engine_rb.html +2 -2
  82. data/doc-api/files/erubis/enhancer_rb.html +2 -2
  83. data/doc-api/files/erubis/error_rb.html +1 -1
  84. data/doc-api/files/erubis/evaluator_rb.html +1 -1
  85. data/doc-api/files/erubis/generator_rb.html +3 -3
  86. data/doc-api/files/erubis/helper_rb.html +1 -1
  87. data/doc-api/files/erubis/helpers/rails_form_helper_rb.html +1 -1
  88. data/doc-api/files/erubis/helpers/rails_helper_rb.html +1 -1
  89. data/doc-api/files/erubis/local-setting_rb.html +1 -1
  90. data/doc-api/files/erubis/main_rb.html +4 -2
  91. data/doc-api/files/erubis/preprocessing_rb.html +1 -1
  92. data/doc-api/files/erubis/tiny_rb.html +1 -1
  93. data/doc-api/files/erubis/util_rb.html +107 -0
  94. data/doc-api/files/erubis_rb.html +2 -2
  95. data/doc-api/fr_class_index.html +7 -0
  96. data/doc-api/fr_file_index.html +2 -0
  97. data/doc-api/fr_method_index.html +237 -223
  98. data/doc/docstyle.css +25 -4
  99. data/doc/users-guide.html +286 -21
  100. data/examples/basic/Makefile +7 -2
  101. data/examples/basic/example.ecpp +33 -0
  102. data/lib/erubis.rb +4 -3
  103. data/lib/erubis/context.rb +2 -2
  104. data/lib/erubis/converter.rb +3 -3
  105. data/lib/erubis/engine.rb +8 -8
  106. data/lib/erubis/engine/ec.rb +2 -2
  107. data/lib/erubis/engine/ecpp.rb +113 -0
  108. data/lib/erubis/engine/ejava.rb +9 -9
  109. data/lib/erubis/engine/ejavascript.rb +9 -9
  110. data/lib/erubis/engine/enhanced.rb +7 -2
  111. data/lib/erubis/engine/eperl.rb +2 -2
  112. data/lib/erubis/engine/ephp.rb +2 -2
  113. data/lib/erubis/engine/eruby.rb +8 -7
  114. data/lib/erubis/engine/escheme.rb +2 -2
  115. data/lib/erubis/engine/optimized.rb +2 -2
  116. data/lib/erubis/enhancer.rb +70 -27
  117. data/lib/erubis/error.rb +2 -2
  118. data/lib/erubis/evaluator.rb +2 -2
  119. data/lib/erubis/generator.rb +3 -3
  120. data/lib/erubis/helper.rb +2 -2
  121. data/lib/erubis/helpers/rails_form_helper.rb +2 -2
  122. data/lib/erubis/helpers/rails_helper.rb +2 -2
  123. data/lib/erubis/local-setting.rb +2 -2
  124. data/lib/erubis/main.rb +31 -4
  125. data/lib/erubis/preprocessing.rb +2 -2
  126. data/lib/erubis/tiny.rb +2 -2
  127. data/lib/erubis/util.rb +22 -0
  128. data/test/assert-text-equal.rb +2 -2
  129. data/test/data/users-guide/bufvar-example.rb +10 -0
  130. data/test/data/users-guide/bufvar-example.result +17 -0
  131. data/test/data/users-guide/example.ecpp +30 -0
  132. data/test/data/users-guide/example_c.result +22 -19
  133. data/test/data/users-guide/fasteruby-example.rb +8 -0
  134. data/test/data/users-guide/fasteruby-example.result +18 -0
  135. data/test/data/users-guide/percentline-example.rhtml +3 -1
  136. data/test/data/users-guide/percentline_example.result +5 -3
  137. data/test/data/users-guide/prefixedline-example.rb +9 -0
  138. data/test/data/users-guide/prefixedline-example.rhtml +6 -0
  139. data/test/data/users-guide/prefixedline_example.result +9 -0
  140. data/test/test-engines.rb +58 -2
  141. data/test/test-enhancers.rb +51 -2
  142. data/test/test-erubis.rb +14 -10
  143. data/test/test-index-cgi.rb +191 -0
  144. data/test/test-main.rb +35 -4
  145. data/test/test-users-guide.rb +18 -2
  146. data/test/test.rb +18 -2
  147. data/test/testutil.rb +22 -7
  148. metadata +30 -24
@@ -1,4 +1,4 @@
1
- all = example.rb example.php example.c example.java example.scm example.pl example.js
1
+ all = example.rb example.php example.c example.cpp example.java example.scm example.pl example.js
2
2
 
3
3
  all: $(all)
4
4
 
@@ -12,6 +12,9 @@ example.php: example.ephp
12
12
  example.c: example.ec
13
13
  erubis -bl c example.ec > example.c
14
14
 
15
+ example.cpp: example.ecpp
16
+ erubis -bl cpp example.ecpp > example.cpp
17
+
15
18
  example.java: example.ejava
16
19
  erubis -bl java example.ejava > example.java
17
20
 
@@ -28,7 +31,7 @@ example.js: example.ejs
28
31
 
29
32
  ###----------
30
33
 
31
- src = example.eruby example.ephp example.ec example.ejava example.escheme example.eperl example.ejs Makefile
34
+ src = example.eruby example.ephp example.ec example.ecpp example.ejava example.escheme example.eperl example.ejs Makefile
32
35
 
33
36
  clean:
34
37
  rm -f `ruby -e 'puts(Dir.glob("*.*") - %w[$(src)])'`
@@ -38,6 +41,7 @@ compile: example.bin example.class
38
41
 
39
42
  example.bin: example.c
40
43
  cc -o example.bin example.c
44
+ g++ -o example.bin2 example.cpp
41
45
 
42
46
  example.class: example.java
43
47
  jikes example.java
@@ -46,6 +50,7 @@ output: $(all) example.bin example.class
46
50
  erubis example.eruby > example.ruby.out
47
51
  php example.php > example.php.out
48
52
  ./example.bin '<aaa>' 'b&b' '"ccc"' > example.c.out
53
+ ./example.bin2 '<aaa>' 'b&b' '"ccc"' > example.cpp.out
49
54
  java example > example.javexample.bin
50
55
  gosh example.scm > example.scm.out
51
56
  # guile example.scm > example.scm.out
@@ -0,0 +1,33 @@
1
+ <%
2
+ #include <string>
3
+ #include <iostream>
4
+ #include <sstream>
5
+
6
+ int main(int argc, char *argv[])
7
+ {
8
+ int i;
9
+ std::stringstream _buf;
10
+
11
+ %>
12
+ <html>
13
+ <body>
14
+ <p>Hello <%= argv[0] %>!</p>
15
+ <table>
16
+ <tbody>
17
+ <% for (i = 1; i < argc; i++) { %>
18
+ <tr bgcolor="<%= i % 2 == 0 ? "#FFCCCC" : "#CCCCFF" %>">
19
+ <td><%= i %></td>
20
+ <td><%= argv[i] %></td>
21
+ </tr>
22
+ <% } %>
23
+ </tbody>
24
+ </table>
25
+ </body>
26
+ </html>
27
+ <%
28
+
29
+ std::string _output = _buf.str();
30
+ std::cout << _output;
31
+ return 0;
32
+ }
33
+ %>
@@ -1,6 +1,6 @@
1
1
  ##
2
- ## $Release: 2.6.6 $
3
- ## copyright(c) 2006-2010 kuwata-lab.com all rights reserved.
2
+ ## $Release: 2.7.0 $
3
+ ## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
4
4
  ##
5
5
 
6
6
  ##
@@ -47,7 +47,7 @@
47
47
 
48
48
 
49
49
  module Erubis
50
- VERSION = ('$Release: 2.6.6 $' =~ /([.\d]+)/) && $1
50
+ VERSION = ('$Release: 2.7.0 $' =~ /([.\d]+)/) && $1
51
51
  end
52
52
 
53
53
  require 'erubis/engine'
@@ -56,6 +56,7 @@ require 'erubis/engine'
56
56
  #require 'erubis/evaluator'
57
57
  #require 'erubis/error'
58
58
  #require 'erubis/context'
59
+ #requier 'erubis/util'
59
60
  require 'erubis/helper'
60
61
  require 'erubis/enhancer'
61
62
  #require 'erubis/tiny'
@@ -1,6 +1,6 @@
1
1
  ##
2
- ## $Release: 2.6.6 $
3
- ## copyright(c) 2006-2010 kuwata-lab.com all rights reserved.
2
+ ## $Release: 2.7.0 $
3
+ ## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
4
4
  ##
5
5
 
6
6
 
@@ -1,9 +1,9 @@
1
1
  ##
2
- ## $Release: 2.6.6 $
3
- ## copyright(c) 2006-2010 kuwata-lab.com all rights reserved.
2
+ ## $Release: 2.7.0 $
3
+ ## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
4
4
  ##
5
5
 
6
- require 'abstract'
6
+ require 'erubis/util'
7
7
 
8
8
  module Erubis
9
9
 
@@ -1,6 +1,6 @@
1
1
  ##
2
- ## $Release: 2.6.6 $
3
- ## copyright(c) 2006-2010 kuwata-lab.com all rights reserved.
2
+ ## $Release: 2.7.0 $
3
+ ## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
4
4
  ##
5
5
 
6
6
 
@@ -48,17 +48,17 @@ module Erubis
48
48
  def self.load_file(filename, properties={})
49
49
  cachename = properties[:cachename] || (filename + '.cache')
50
50
  properties[:filename] = filename
51
- if test(?f, cachename) && File.mtime(filename) <= File.mtime(cachename)
51
+ timestamp = File.mtime(filename)
52
+ if test(?f, cachename) && timestamp == File.mtime(cachename)
52
53
  engine = self.new(nil, properties)
53
54
  engine.src = File.read(cachename)
54
55
  else
55
56
  input = File.open(filename, 'rb') {|f| f.read }
56
57
  engine = self.new(input, properties)
57
- File.open(cachename, 'wb') do |f|
58
- f.flock(File::LOCK_EX)
59
- f.write(engine.src)
60
- f.flush()
61
- end
58
+ tmpname = cachename + rand().to_s[1,8]
59
+ File.open(tmpname, 'wb') {|f| f.write(engine.src) }
60
+ File.rename(tmpname, cachename)
61
+ File.utime(timestamp, timestamp, cachename)
62
62
  end
63
63
  engine.src.untaint # ok?
64
64
  return engine
@@ -1,6 +1,6 @@
1
1
  ##
2
- ## $Release: 2.6.6 $
3
- ## copyright(c) 2006-2010 kuwata-lab.com all rights reserved.
2
+ ## $Release: 2.7.0 $
3
+ ## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
4
4
  ##
5
5
 
6
6
  require 'erubis/engine'
@@ -0,0 +1,113 @@
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 CppGenerator
14
+ include Generator
15
+
16
+ def self.supported_properties() # :nodoc:
17
+ return [
18
+ [:indent, '', "indent spaces (ex. ' ')"],
19
+ [:bufvar, '_buf', "buffer variable name"],
20
+ ]
21
+ end
22
+
23
+ def init_generator(properties={})
24
+ super
25
+ @escapefunc ||= "escape"
26
+ @indent = properties[:indent] || ''
27
+ @bufvar = properties[:bufvar] || '_buf'
28
+ end
29
+
30
+ def add_preamble(src)
31
+ src << "#line 1 \"#{self.filename}\"\n" if self.filename
32
+ end
33
+
34
+ def escape_text(text)
35
+ @@table_ ||= { "\r"=>"\\r", "\n"=>"\\n", "\t"=>"\\t", '"'=>'\\"', "\\"=>"\\\\" }
36
+ text.gsub!(/[\r\n\t"\\]/) { |m| @@table_[m] }
37
+ return text
38
+ end
39
+
40
+ def escaped_expr(code)
41
+ return "#{@escapefunc}(#{code.strip})"
42
+ end
43
+
44
+ def add_text(src, text)
45
+ return if text.empty?
46
+ src << (src.empty? || src[-1] == ?\n ? @indent : ' ')
47
+ src << "_buf << "
48
+ i = 0
49
+ text.each_line do |line|
50
+ src << "\n" << @indent << " " if i > 0
51
+ i += 1
52
+ src << '"' << escape_text(line) << '"'
53
+ end
54
+ src << ";" #<< (text[-1] == ?\n ? "\n" : "")
55
+ src << "\n" if text[-1] == ?\n
56
+ end
57
+
58
+ def add_stmt(src, code)
59
+ src << code
60
+ end
61
+
62
+ def add_expr_literal(src, code)
63
+ src << @indent if src.empty? || src[-1] == ?\n
64
+ src << " _buf << (" << code.strip << ");"
65
+ end
66
+
67
+ def add_expr_escaped(src, code)
68
+ src << @indent if src.empty? || src[-1] == ?\n
69
+ src << ' ' << escaped_expr(code) << ';'
70
+ end
71
+
72
+ def add_expr_debug(src, code)
73
+ code.strip!
74
+ src << @indent if src.empty? || src[-1] == ?\n
75
+ src << " std::cerr << \"*** debug: #{code.gsub(/(")/, '\\\&')}=\" << (#{code});"
76
+ end
77
+
78
+ def add_postamble(src)
79
+ # empty
80
+ end
81
+
82
+ end
83
+
84
+
85
+ ##
86
+ ## engine for C
87
+ ##
88
+ class Ecpp < Basic::Engine
89
+ include CppGenerator
90
+ end
91
+
92
+
93
+ class EscapedEcpp < Ecpp
94
+ include EscapeEnhancer
95
+ end
96
+
97
+
98
+ #class XmlEcpp < Ecpp
99
+ # include EscapeEnhancer
100
+ #end
101
+
102
+ class PI::Ecpp < PI::Engine
103
+ include CppGenerator
104
+
105
+ def init_converter(properties={})
106
+ @pi = 'cpp'
107
+ super(properties)
108
+ end
109
+
110
+ end
111
+
112
+
113
+ end
@@ -1,6 +1,6 @@
1
1
  ##
2
- ## $Release: 2.6.6 $
3
- ## copyright(c) 2006-2010 kuwata-lab.com all rights reserved.
2
+ ## $Release: 2.7.0 $
3
+ ## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
4
4
  ##
5
5
 
6
6
  require 'erubis/engine'
@@ -16,7 +16,7 @@ module Erubis
16
16
  def self.supported_properties() # :nodoc:
17
17
  return [
18
18
  [:indent, '', "indent spaces (ex. ' ')"],
19
- [:buf, '_buf', "output buffer name"],
19
+ [:bufvar, '_buf', "output buffer variable name"],
20
20
  [:bufclass, 'StringBuffer', "output buffer class (ex. 'StringBuilder')"],
21
21
  ]
22
22
  end
@@ -25,12 +25,12 @@ module Erubis
25
25
  super
26
26
  @escapefunc ||= 'escape'
27
27
  @indent = properties[:indent] || ''
28
- @buf = properties[:buf] || '_buf'
28
+ @bufvar = properties[:bufvar] || '_buf'
29
29
  @bufclass = properties[:bufclass] || 'StringBuffer'
30
30
  end
31
31
 
32
32
  def add_preamble(src)
33
- src << "#{@indent}#{@bufclass} #{@buf} = new #{@bufclass}();"
33
+ src << "#{@indent}#{@bufclass} #{@bufvar} = new #{@bufclass}();"
34
34
  end
35
35
 
36
36
  def escape_text(text)
@@ -41,7 +41,7 @@ module Erubis
41
41
  def add_text(src, text)
42
42
  return if text.empty?
43
43
  src << (src.empty? || src[-1] == ?\n ? @indent : ' ')
44
- src << @buf << ".append("
44
+ src << @bufvar << ".append("
45
45
  i = 0
46
46
  text.each_line do |line|
47
47
  src << "\n" << @indent << ' + ' if i > 0
@@ -58,7 +58,7 @@ module Erubis
58
58
  def add_expr_literal(src, code)
59
59
  src << @indent if src.empty? || src[-1] == ?\n
60
60
  code.strip!
61
- src << " #{@buf}.append(#{code});"
61
+ src << " #{@bufvar}.append(#{code});"
62
62
  end
63
63
 
64
64
  def add_expr_escaped(src, code)
@@ -73,8 +73,8 @@ module Erubis
73
73
 
74
74
  def add_postamble(src)
75
75
  src << "\n" if src[-1] == ?;
76
- src << @indent << "return " << @buf << ".toString();\n"
77
- #src << @indent << "System.out.print(" << @buf << ".toString());\n"
76
+ src << @indent << "return " << @bufvar << ".toString();\n"
77
+ #src << @indent << "System.out.print(" << @bufvar << ".toString());\n"
78
78
  end
79
79
 
80
80
  end
@@ -1,6 +1,6 @@
1
1
  ##
2
- ## $Release: 2.6.6 $
3
- ## copyright(c) 2006-2010 kuwata-lab.com all rights reserved.
2
+ ## $Release: 2.7.0 $
3
+ ## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
4
4
  ##
5
5
 
6
6
  require 'erubis/engine'
@@ -16,7 +16,7 @@ module Erubis
16
16
  def self.supported_properties() # :nodoc:
17
17
  list = []
18
18
  #list << [:indent, '', "indent spaces (ex. ' ')"]
19
- #list << [:buf, '_buf', "output buffer name"]
19
+ #list << [:bufvar, '_buf', "output buffer variable name"]
20
20
  list << [:docwrite, true, "use 'document.write()' when true"]
21
21
  return list
22
22
  end
@@ -25,12 +25,12 @@ module Erubis
25
25
  super
26
26
  @escapefunc ||= 'escape'
27
27
  @indent = properties[:indent] || ''
28
- @buf = properties[:out] || '_buf'
28
+ @bufvar = properties[:bufvar] || '_buf'
29
29
  @docwrite = properties[:docwrite] != false # '!= false' will be removed in the next release
30
30
  end
31
31
 
32
32
  def add_preamble(src)
33
- src << "#{@indent}var #{@buf} = [];"
33
+ src << "#{@indent}var #{@bufvar} = [];"
34
34
  end
35
35
 
36
36
  def escape_text(text)
@@ -45,7 +45,7 @@ module Erubis
45
45
  def add_text(src, text)
46
46
  return if text.empty?
47
47
  add_indent(src, @indent)
48
- src << @buf << '.push("'
48
+ src << @bufvar << '.push("'
49
49
  s = escape_text(text)
50
50
  if s[-1] == ?\n
51
51
  s[-2, 2] = ''
@@ -62,7 +62,7 @@ module Erubis
62
62
  def add_expr_literal(src, code)
63
63
  add_indent(src, @indent)
64
64
  code.strip!
65
- src << "#{@buf}.push(#{code});"
65
+ src << "#{@bufvar}.push(#{code});"
66
66
  end
67
67
 
68
68
  def add_expr_escaped(src, code)
@@ -78,9 +78,9 @@ module Erubis
78
78
  def add_postamble(src)
79
79
  src << "\n" if src[-1] == ?;
80
80
  if @docwrite
81
- src << @indent << 'document.write(' << @buf << ".join(\"\"));\n"
81
+ src << @indent << 'document.write(' << @bufvar << ".join(\"\"));\n"
82
82
  else
83
- src << @indent << @buf << ".join(\"\");\n"
83
+ src << @indent << @bufvar << ".join(\"\");\n"
84
84
  end
85
85
  end
86
86
 
@@ -1,6 +1,6 @@
1
1
  ##
2
- ## $Release: 2.6.6 $
3
- ## copyright(c) 2006-2010 kuwata-lab.com all rights reserved.
2
+ ## $Release: 2.7.0 $
3
+ ## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
4
4
  ##
5
5
 
6
6
  require 'erubis/enhancer'
@@ -103,6 +103,11 @@ module Erubis
103
103
  end
104
104
 
105
105
 
106
+ class PrefixedLineEruby < Eruby
107
+ include PrefixedLineEnhancer
108
+ end
109
+
110
+
106
111
  class HeaderFooterEruby < Eruby
107
112
  include HeaderFooterEnhancer
108
113
  end
@@ -1,6 +1,6 @@
1
1
  ##
2
- ## $Release: 2.6.6 $
3
- ## copyright(c) 2006-2010 kuwata-lab.com all rights reserved.
2
+ ## $Release: 2.7.0 $
3
+ ## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
4
4
  ##
5
5
 
6
6
  require 'erubis/engine'
@@ -1,6 +1,6 @@
1
1
  ##
2
- ## $Release: 2.6.6 $
3
- ## copyright(c) 2006-2010 kuwata-lab.com all rights reserved.
2
+ ## $Release: 2.7.0 $
3
+ ## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
4
4
  ##
5
5
 
6
6
  require 'erubis/engine'
@@ -1,6 +1,6 @@
1
1
  ##
2
- ## $Release: 2.6.6 $
3
- ## copyright(c) 2006-2010 kuwata-lab.com all rights reserved.
2
+ ## $Release: 2.7.0 $
3
+ ## copyright(c) 2006-2011 kuwata-lab.com all rights reserved.
4
4
  ##
5
5
 
6
6
  require 'erubis/engine'
@@ -21,6 +21,7 @@ module Erubis
21
21
  def init_generator(properties={})
22
22
  super
23
23
  @escapefunc ||= "Erubis::XmlHelper.escape_xml"
24
+ @bufvar = properties[:bufvar] || "_buf"
24
25
  end
25
26
 
26
27
  def self.supported_properties() # :nodoc:
@@ -37,12 +38,12 @@ module Erubis
37
38
 
38
39
  #--
39
40
  #def add_preamble(src)
40
- # src << "_buf = [];"
41
+ # src << "#{@bufvar} = [];"
41
42
  #end
42
43
  #++
43
44
 
44
45
  def add_text(src, text)
45
- src << " _buf << '" << escape_text(text) << "';" unless text.empty?
46
+ src << " #{@bufvar} << '" << escape_text(text) << "';" unless text.empty?
46
47
  end
47
48
 
48
49
  def add_stmt(src, code)
@@ -52,11 +53,11 @@ module Erubis
52
53
  end
53
54
 
54
55
  def add_expr_literal(src, code)
55
- src << ' _buf << (' << code << ').to_s;'
56
+ src << " #{@bufvar} << (" << code << ').to_s;'
56
57
  end
57
58
 
58
59
  def add_expr_escaped(src, code)
59
- src << ' _buf << ' << escaped_expr(code) << ';'
60
+ src << " #{@bufvar} << " << escaped_expr(code) << ';'
60
61
  end
61
62
 
62
63
  def add_expr_debug(src, code)
@@ -67,7 +68,7 @@ module Erubis
67
68
 
68
69
  #--
69
70
  #def add_postamble(src)
70
- # src << "\n_buf.join\n"
71
+ # src << "\n#{@bufvar}.join\n"
71
72
  #end
72
73
  #++
73
74