erubis 2.0.1 → 2.1.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.
Files changed (145) hide show
  1. data/ChangeLog +150 -2
  2. data/LGPL +504 -0
  3. data/README.txt +14 -8
  4. data/benchmark/erubybench.rb +1 -1
  5. data/benchmark/erubybench.rhtml +3 -3
  6. data/bin/erubis +1 -1
  7. data/bin/notext +154 -0
  8. data/contrib/erubis +1036 -374
  9. data/contrib/inline-require +5 -3
  10. data/doc-api/classes/Erubis.html +43 -1
  11. data/doc-api/classes/Erubis/ArrayBufferEnhancer.html +14 -14
  12. data/doc-api/classes/Erubis/ArrayEnhancer.html +14 -14
  13. data/doc-api/classes/Erubis/Basic.html +112 -0
  14. data/doc-api/classes/Erubis/Basic/Converter.html +318 -0
  15. data/doc-api/classes/Erubis/Basic/Engine.html +130 -0
  16. data/doc-api/classes/Erubis/BiPatternEnhancer.html +14 -14
  17. data/doc-api/classes/Erubis/CGenerator.html +386 -0
  18. data/doc-api/classes/Erubis/Context.html +31 -32
  19. data/doc-api/classes/Erubis/Converter.html +231 -0
  20. data/doc-api/classes/Erubis/Ec.html +9 -283
  21. data/doc-api/classes/Erubis/Ejava.html +9 -274
  22. data/doc-api/classes/Erubis/Ejavascript.html +9 -298
  23. data/doc-api/classes/Erubis/Engine.html +68 -508
  24. data/doc-api/classes/Erubis/Eperl.html +9 -259
  25. data/doc-api/classes/Erubis/Ephp.html +9 -239
  26. data/doc-api/classes/Erubis/ErubisError.html +2 -2
  27. data/doc-api/classes/Erubis/Eruby.html +4 -187
  28. data/doc-api/classes/Erubis/EscapeEnhancer.html +9 -11
  29. data/doc-api/classes/Erubis/Escheme.html +9 -272
  30. data/doc-api/classes/Erubis/Evaluator.html +212 -0
  31. data/doc-api/classes/Erubis/Generator.html +410 -0
  32. data/doc-api/classes/Erubis/HeaderFooterEnhancer.html +16 -16
  33. data/doc-api/classes/Erubis/Helper.html +112 -0
  34. data/doc-api/classes/Erubis/Helper/CachedRailsTemplate.html +198 -0
  35. data/doc-api/classes/Erubis/Helper/RailsTemplate.html +366 -0
  36. data/doc-api/classes/Erubis/JavaGenerator.html +359 -0
  37. data/doc-api/classes/Erubis/JavascriptGenerator.html +381 -0
  38. data/doc-api/classes/Erubis/Main.html +27 -25
  39. data/doc-api/classes/Erubis/NoCodeEnhancer.html +249 -0
  40. data/doc-api/classes/Erubis/NoCodeEruby.html +120 -0
  41. data/doc-api/classes/Erubis/NoTextEnhancer.html +8 -8
  42. data/doc-api/classes/Erubis/NotSupportedError.html +119 -0
  43. data/doc-api/classes/Erubis/OptimizedEruby.html +22 -304
  44. data/doc-api/classes/Erubis/OptimizedGenerator.html +439 -0
  45. data/doc-api/classes/Erubis/OptimizedXmlEruby.html +7 -7
  46. data/doc-api/classes/Erubis/PI.html +124 -0
  47. data/doc-api/classes/Erubis/PI/Converter.html +318 -0
  48. data/doc-api/classes/Erubis/PI/Ec.html +166 -0
  49. data/doc-api/classes/Erubis/PI/Ejava.html +166 -0
  50. data/doc-api/classes/Erubis/PI/Ejavascript.html +166 -0
  51. data/doc-api/classes/Erubis/PI/Engine.html +122 -0
  52. data/doc-api/classes/Erubis/PI/Eperl.html +166 -0
  53. data/doc-api/classes/Erubis/PI/Ephp.html +166 -0
  54. data/doc-api/classes/Erubis/PI/Eruby.html +155 -0
  55. data/doc-api/classes/Erubis/PI/Escheme.html +166 -0
  56. data/doc-api/classes/Erubis/PI/TinyEruby.html +305 -0
  57. data/doc-api/classes/Erubis/PercentLineEnhancer.html +7 -7
  58. data/doc-api/classes/Erubis/PerlGenerator.html +344 -0
  59. data/doc-api/classes/Erubis/PhpGenerator.html +350 -0
  60. data/doc-api/classes/Erubis/PrintEnabledEnhancer.html +24 -24
  61. data/doc-api/classes/Erubis/PrintOutEnhancer.html +35 -35
  62. data/doc-api/classes/Erubis/RubyEvaluator.html +190 -0
  63. data/doc-api/classes/Erubis/RubyGenerator.html +327 -0
  64. data/doc-api/classes/Erubis/SchemeGenerator.html +382 -0
  65. data/doc-api/classes/Erubis/SimplifyEnhancer.html +17 -13
  66. data/doc-api/classes/Erubis/StdoutEnhancer.html +14 -14
  67. data/doc-api/classes/Erubis/StringBufferEnhancer.html +14 -14
  68. data/doc-api/classes/Erubis/TinyEruby.html +45 -40
  69. data/doc-api/classes/Erubis/XmlHelper.html +14 -14
  70. data/doc-api/created.rid +1 -1
  71. data/doc-api/files/__/README_txt.html +27 -9
  72. data/doc-api/files/erubis/context_rb.html +107 -0
  73. data/doc-api/files/erubis/converter_rb.html +114 -0
  74. data/doc-api/files/erubis/engine/ec_rb.html +2 -2
  75. data/doc-api/files/erubis/engine/ejava_rb.html +2 -2
  76. data/doc-api/files/erubis/engine/ejavascript_rb.html +2 -2
  77. data/doc-api/files/erubis/engine/enhanced_rb.html +2 -2
  78. data/doc-api/files/erubis/engine/eperl_rb.html +2 -2
  79. data/doc-api/files/erubis/engine/ephp_rb.html +2 -2
  80. data/doc-api/files/erubis/engine/eruby_rb.html +3 -2
  81. data/doc-api/files/erubis/engine/escheme_rb.html +2 -2
  82. data/doc-api/files/erubis/engine/optimized_rb.html +2 -2
  83. data/doc-api/files/erubis/engine_rb.html +6 -3
  84. data/doc-api/files/erubis/enhancer_rb.html +2 -9
  85. data/doc-api/files/erubis/error_rb.html +107 -0
  86. data/doc-api/files/erubis/evaluator_rb.html +115 -0
  87. data/doc-api/files/erubis/generator_rb.html +114 -0
  88. data/doc-api/files/erubis/helper/rails_rb.html +140 -0
  89. data/doc-api/files/erubis/helper_rb.html +1 -1
  90. data/doc-api/files/erubis/local-setting_rb.html +1 -1
  91. data/doc-api/files/erubis/main_rb.html +2 -2
  92. data/doc-api/files/erubis/tiny_rb.html +2 -2
  93. data/doc-api/files/erubis_rb.html +2 -2
  94. data/doc-api/fr_class_index.html +32 -0
  95. data/doc-api/fr_file_index.html +6 -0
  96. data/doc-api/fr_method_index.html +178 -136
  97. data/doc/users-guide.html +538 -199
  98. data/examples/{Makefile → basic/Makefile} +11 -11
  99. data/examples/basic/example.ec +42 -0
  100. data/examples/{example.ejava → basic/example.ejava} +5 -1
  101. data/examples/{example.ejavascript → basic/example.ejs} +0 -0
  102. data/examples/{example.eperl → basic/example.eperl} +2 -2
  103. data/examples/{example.ephp → basic/example.ephp} +0 -0
  104. data/examples/{example.eruby → basic/example.eruby} +0 -0
  105. data/examples/{example.escheme → basic/example.escheme} +0 -0
  106. data/examples/pi/Makefile +54 -0
  107. data/examples/pi/example.ec +42 -0
  108. data/examples/pi/example.ejava +45 -0
  109. data/examples/pi/example.ejs +16 -0
  110. data/examples/pi/example.eperl +16 -0
  111. data/examples/pi/example.ephp +17 -0
  112. data/examples/pi/example.eruby +15 -0
  113. data/examples/pi/example.escheme +26 -0
  114. data/lib/erubis.rb +15 -8
  115. data/lib/erubis/context.rb +54 -0
  116. data/lib/erubis/converter.rb +307 -0
  117. data/lib/erubis/engine.rb +57 -227
  118. data/lib/erubis/engine/ec.rb +31 -20
  119. data/lib/erubis/engine/ejava.rb +33 -21
  120. data/lib/erubis/engine/ejavascript.rb +30 -18
  121. data/lib/erubis/engine/enhanced.rb +7 -2
  122. data/lib/erubis/engine/eperl.rb +33 -19
  123. data/lib/erubis/engine/ephp.rb +32 -14
  124. data/lib/erubis/engine/eruby.rb +34 -7
  125. data/lib/erubis/engine/escheme.rb +34 -15
  126. data/lib/erubis/engine/optimized.rb +25 -11
  127. data/lib/erubis/enhancer.rb +53 -19
  128. data/lib/erubis/error.rb +24 -0
  129. data/lib/erubis/evaluator.rb +71 -0
  130. data/lib/erubis/generator.rb +83 -0
  131. data/lib/erubis/helper.rb +1 -1
  132. data/lib/erubis/helper/rails.rb +159 -0
  133. data/lib/erubis/local-setting.rb +1 -1
  134. data/lib/erubis/main.rb +87 -46
  135. data/lib/erubis/tiny.rb +81 -7
  136. data/test/assert-text-equal.rb +1 -1
  137. data/test/test-engines.rb +8 -9
  138. data/test/test-erubis.rb +196 -18
  139. data/test/{test-bin.rb → test-main.rb} +123 -21
  140. data/test/test-notext.rb +27 -0
  141. data/test/test.rb +5 -3
  142. data/test/testutil.rb +25 -36
  143. metadata +75 -13
  144. data/COPYING +0 -340
  145. data/examples/example.ec +0 -24
@@ -1,6 +1,6 @@
1
1
  ##
2
- ## $Rev: 24 $
3
- ## $Release: 2.0.1 $
2
+ ## $Rev: 33 $
3
+ ## $Release: 2.1.0 $
4
4
  ## copyright(c) 2006 kuwata-lab all rights reserved.
5
5
  ##
6
6
 
@@ -11,22 +11,21 @@ require 'erubis/enhancer'
11
11
  module Erubis
12
12
 
13
13
 
14
- ##
15
- ## engine for C
16
- ##
17
- class Ec < Engine
14
+ module CGenerator
15
+ include Generator
18
16
 
19
17
  def self.supported_properties() # :nodoc:
20
- list = super
21
- list << [:indent, '', "indent spaces (ex. ' ')"]
22
- list << [:out, 'stdout', "output file pointer name"]
23
- return list
18
+ return [
19
+ [:indent, '', "indent spaces (ex. ' ')"],
20
+ [:out, 'stdout', "output file pointer name"],
21
+ ]
24
22
  end
25
23
 
26
- def initialize(input, properties={})
24
+ def init_generator(properties={})
25
+ super
26
+ @escapefunc ||= "escape"
27
27
  @indent = properties[:indent] || ''
28
28
  @out = properties[:out] || 'stdout'
29
- super
30
29
  end
31
30
 
32
31
  def add_preamble(src)
@@ -40,13 +39,7 @@ module Erubis
40
39
  end
41
40
 
42
41
  def escaped_expr(code)
43
- @escape ||= "escape"
44
- code.strip!
45
- if code =~ /\A(\".*?\")\s*,\s*(.*)/
46
- return "#{$1}, #{@escape}(#{$2})"
47
- else
48
- return "#{@escape}(#{code})"
49
- end
42
+ return "#{@escapefunc}(#{code.strip}, #{@out})"
50
43
  end
51
44
 
52
45
  def add_text(src, text)
@@ -74,7 +67,7 @@ module Erubis
74
67
 
75
68
  def add_expr_escaped(src, code)
76
69
  src << @indent if src.empty? || src[-1] == ?\n
77
- src << " fprintf(#{@out}, " << escaped_expr(code) << ');'
70
+ src << ' ' << escaped_expr(code) << ';'
78
71
  end
79
72
 
80
73
  def add_expr_debug(src, code)
@@ -94,6 +87,14 @@ module Erubis
94
87
  end
95
88
 
96
89
 
90
+ ##
91
+ ## engine for C
92
+ ##
93
+ class Ec < Basic::Engine
94
+ include CGenerator
95
+ end
96
+
97
+
97
98
  class EscapedEc < Ec
98
99
  include EscapeEnhancer
99
100
  end
@@ -103,5 +104,15 @@ module Erubis
103
104
  # include EscapeEnhancer
104
105
  #end
105
106
 
107
+ class PI::Ec < PI::Engine
108
+ include CGenerator
109
+
110
+ def init_converter(properties={})
111
+ @pi = 'c'
112
+ super(properties)
113
+ end
114
+
115
+ end
116
+
106
117
 
107
118
  end
@@ -1,6 +1,6 @@
1
1
  ##
2
- ## $Rev: 24 $
3
- ## $Release: 2.0.1 $
2
+ ## $Rev: 31 $
3
+ ## $Release: 2.1.0 $
4
4
  ## copyright(c) 2006 kuwata-lab all rights reserved.
5
5
  ##
6
6
 
@@ -11,24 +11,23 @@ require 'erubis/enhancer'
11
11
  module Erubis
12
12
 
13
13
 
14
- ##
15
- ## engine for Java
16
- ##
17
- class Ejava < Engine
14
+ module JavaGenerator
15
+ include Generator
18
16
 
19
17
  def self.supported_properties() # :nodoc:
20
- list = super
21
- list << [:indent, '', "indent spaces (ex. ' ')"]
22
- list << [:buf, '_buf', "output buffer name"]
23
- list << [:bufclass, 'StringBuffer', "output buffer class (ex. 'StringBuilder')"]
24
- return list
18
+ return [
19
+ [:indent, '', "indent spaces (ex. ' ')"],
20
+ [:buf, '_buf', "output buffer name"],
21
+ [:bufclass, 'StringBuffer', "output buffer class (ex. 'StringBuilder')"],
22
+ ]
25
23
  end
26
24
 
27
- def initialize(input, properties={})
25
+ def init_generator(properties={})
26
+ super
27
+ @escapefunc ||= 'escape'
28
28
  @indent = properties[:indent] || ''
29
29
  @buf = properties[:buf] || '_buf'
30
30
  @bufclass = properties[:bufclass] || 'StringBuffer'
31
- super
32
31
  end
33
32
 
34
33
  def add_preamble(src)
@@ -40,11 +39,6 @@ module Erubis
40
39
  return text.gsub!(/[\r\n\t"\\]/) { |m| @@table_[m] } || text
41
40
  end
42
41
 
43
- def escaped_expr(code)
44
- @escape ||= 'escape'
45
- return "#{@escape}(#{code.strip})"
46
- end
47
-
48
42
  def add_text(src, text)
49
43
  return if text.empty?
50
44
  src << (src.empty? || src[-1] == ?\n ? @indent : ' ')
@@ -64,12 +58,12 @@ module Erubis
64
58
 
65
59
  def add_expr_literal(src, code)
66
60
  src << @indent if src.empty? || src[-1] == ?\n
67
- src << ' ' << @buf << '.append(' << code.strip << ');'
61
+ code.strip!
62
+ src << " #{@buf}.append(#{code});"
68
63
  end
69
64
 
70
65
  def add_expr_escaped(src, code)
71
- src << @indent if src.empty? || src[-1] == ?\n
72
- src << ' ' << @buf << '.append(' << escaped_expr(code) << ');'
66
+ add_expr_literal(src, escaped_expr(code))
73
67
  end
74
68
 
75
69
  def add_expr_debug(src, code)
@@ -81,11 +75,20 @@ module Erubis
81
75
  def add_postamble(src)
82
76
  src << "\n" if src[-1] == ?;
83
77
  src << @indent << "return " << @buf << ".toString();\n"
78
+ #src << @indent << "System.out.print(" << @buf << ".toString());\n"
84
79
  end
85
80
 
86
81
  end
87
82
 
88
83
 
84
+ ##
85
+ ## engine for Java
86
+ ##
87
+ class Ejava < Basic::Engine
88
+ include JavaGenerator
89
+ end
90
+
91
+
89
92
  class EscapedEjava < Ejava
90
93
  include EscapeEnhancer
91
94
  end
@@ -95,5 +98,14 @@ module Erubis
95
98
  # include EscapeEnhancer
96
99
  #end
97
100
 
101
+ class PI::Ejava < PI::Engine
102
+ include JavaGenerator
103
+
104
+ def init_converter(properties={})
105
+ @pi = 'java'
106
+ super(properties)
107
+ end
108
+
109
+ end
98
110
 
99
111
  end
@@ -1,6 +1,6 @@
1
1
  ##
2
- ## $Rev: 24 $
3
- ## $Release: 2.0.1 $
2
+ ## $Rev: 31 $
3
+ ## $Release: 2.1.0 $
4
4
  ## copyright(c) 2006 kuwata-lab all rights reserved.
5
5
  ##
6
6
 
@@ -11,23 +11,21 @@ require 'erubis/enhancer'
11
11
  module Erubis
12
12
 
13
13
 
14
- ##
15
- ## engine for JavaScript
16
- ##
17
- class Ejavascript < Engine
14
+ module JavascriptGenerator
15
+ include Generator
18
16
 
19
17
  def self.supported_properties() # :nodoc:
20
- list = super
18
+ list = []
21
19
  #list << [:indent, '', "indent spaces (ex. ' ')"]
22
20
  #list << [:buf, '_buf', "output buffer name"]
23
21
  return list
24
22
  end
25
23
 
26
- def initialize(input, properties={})
24
+ def init_generator(properties={})
25
+ super
26
+ @escapefunc ||= 'escape'
27
27
  @indent = properties[:indent] || ''
28
28
  @buf = properties[:out] || '_buf'
29
- #@bufclass = properties[:outclass] || 'StringBuffer'
30
- super
31
29
  end
32
30
 
33
31
  def add_preamble(src)
@@ -39,11 +37,6 @@ module Erubis
39
37
  return text.gsub!(/[\r\n\t"\\]/) { |m| @@table_[m] } || text
40
38
  end
41
39
 
42
- def escaped_expr(code)
43
- @escape ||= 'escape'
44
- return "#{@escape}(#{code.strip})"
45
- end
46
-
47
40
  def add_indent(src, indent)
48
41
  src << (src.empty? || src[-1] == ?\n ? indent : ' ')
49
42
  end
@@ -67,12 +60,12 @@ module Erubis
67
60
 
68
61
  def add_expr_literal(src, code)
69
62
  add_indent(src, @indent)
70
- src << @buf << '.push(' << code.strip << ');'
63
+ code.strip!
64
+ src << "#{@buf}.push(#{code});"
71
65
  end
72
66
 
73
67
  def add_expr_escaped(src, code)
74
- add_indent(src, @indent)
75
- src << @buf << '.push(' << escaped_expr(code) << ');'
68
+ add_expr_literal(src, escaped_expr(code))
76
69
  end
77
70
 
78
71
  def add_expr_debug(src, code)
@@ -89,6 +82,14 @@ module Erubis
89
82
  end
90
83
 
91
84
 
85
+ ##
86
+ ## engine for JavaScript
87
+ ##
88
+ class Ejavascript < Basic::Engine
89
+ include JavascriptGenerator
90
+ end
91
+
92
+
92
93
  class EscapedEjavascript < Ejavascript
93
94
  include EscapeEnhancer
94
95
  end
@@ -99,4 +100,15 @@ module Erubis
99
100
  #end
100
101
 
101
102
 
103
+ class PI::Ejavascript < PI::Engine
104
+ include JavascriptGenerator
105
+
106
+ def init_converter(properties={})
107
+ @pi = 'js'
108
+ super(properties)
109
+ end
110
+
111
+ end
112
+
113
+
102
114
  end
@@ -1,6 +1,6 @@
1
1
  ##
2
- ## $Rev: 19 $
3
- ## $Release: 2.0.1 $
2
+ ## $Rev: 27 $
3
+ ## $Release: 2.1.0 $
4
4
  ## copyright(c) 2006 kuwata-lab all rights reserved.
5
5
  ##
6
6
 
@@ -67,6 +67,11 @@ module Erubis
67
67
  end
68
68
 
69
69
 
70
+ class NoCodeEruby < Eruby
71
+ include NoCodeEnhancer
72
+ end
73
+
74
+
70
75
  class SimplifiedEruby < Eruby
71
76
  include SimplifyEnhancer
72
77
  end
@@ -1,6 +1,6 @@
1
1
  ##
2
- ## $Rev: 24 $
3
- ## $Release: 2.0.1 $
2
+ ## $Rev: 40 $
3
+ ## $Release: 2.1.0 $
4
4
  ## copyright(c) 2006 kuwata-lab all rights reserved.
5
5
  ##
6
6
 
@@ -11,24 +11,23 @@ require 'erubis/enhancer'
11
11
  module Erubis
12
12
 
13
13
 
14
- ##
15
- ## engine for Perl
16
- ##
17
- class Eperl < Engine
14
+ module PerlGenerator
15
+ include Generator
18
16
 
19
17
  def self.supported_properties() # :nodoc:
20
- list = super
21
- list << [:func, 'print', "function name"]
22
- return list
18
+ return [
19
+ [:func, 'print', "function name"],
20
+ ]
23
21
  end
24
22
 
25
- def initialize(input, properties={})
26
- @func = properties[:func] || 'print'
23
+ def init_generator(properties={})
27
24
  super
25
+ @escapefunc ||= 'encode_entities'
26
+ @func = properties[:func] || 'print'
28
27
  end
29
28
 
30
29
  def add_preamble(src)
31
- # empty
30
+ src << "use HTML::Entities; ";
32
31
  end
33
32
 
34
33
  def escape_text(text)
@@ -39,17 +38,13 @@ module Erubis
39
38
  src << @func << "('" << escape_text(text) << "'); " unless text.empty?
40
39
  end
41
40
 
42
- def escaped_expr(code)
43
- @escape ||= 'escape'
44
- return "escape(#{code.strip})"
45
- end
46
-
47
41
  def add_expr_literal(src, code)
48
- src << @func << "(" << code.strip << "); "
42
+ code.strip!
43
+ src << @func << "(" << code << "); "
49
44
  end
50
45
 
51
46
  def add_expr_escaped(src, code)
52
- src << @func << "(" << escaped_expr(code) << "); "
47
+ add_expr_literal(src, escaped_expr(code))
53
48
  end
54
49
 
55
50
  def add_expr_debug(src, code)
@@ -69,6 +64,14 @@ module Erubis
69
64
  end
70
65
 
71
66
 
67
+ ##
68
+ ## engine for Perl
69
+ ##
70
+ class Eperl < Basic::Engine
71
+ include PerlGenerator
72
+ end
73
+
74
+
72
75
  class EscapedEperl < Eperl
73
76
  include EscapeEnhancer
74
77
  end
@@ -79,4 +82,15 @@ module Erubis
79
82
  #end
80
83
 
81
84
 
85
+ class PI::Eperl < PI::Engine
86
+ include PerlGenerator
87
+
88
+ def init_converter(properties={})
89
+ @pi = 'perl'
90
+ super(properties)
91
+ end
92
+
93
+ end
94
+
95
+
82
96
  end
@@ -1,6 +1,6 @@
1
1
  ##
2
- ## $Rev: 24 $
3
- ## $Release: 2.0.1 $
2
+ ## $Rev: 31 $
3
+ ## $Release: 2.1.0 $
4
4
  ## copyright(c) 2006 kuwata-lab all rights reserved.
5
5
  ##
6
6
 
@@ -11,13 +11,16 @@ require 'erubis/enhancer'
11
11
  module Erubis
12
12
 
13
13
 
14
- ##
15
- ## engine for PHP
16
- ##
17
- class Ephp < Engine
14
+ module PhpGenerator
15
+ include Generator
18
16
 
19
17
  def self.supported_properties() # :nodoc:
20
- return super
18
+ return []
19
+ end
20
+
21
+ def init_generator(properties={})
22
+ super
23
+ @escapefunc ||= 'htmlspecialchars'
21
24
  end
22
25
 
23
26
  def add_preamble(src)
@@ -32,17 +35,13 @@ module Erubis
32
35
  src << escape_text(text)
33
36
  end
34
37
 
35
- def escaped_expr(code)
36
- @escape ||= 'htmlspecialchars'
37
- return "#{@escape}(#{code.strip})"
38
- end
39
-
40
38
  def add_expr_literal(src, code)
41
- src << "<?php echo #{code.strip}; ?>"
39
+ code.strip!
40
+ src << "<?php echo #{code}; ?>"
42
41
  end
43
42
 
44
43
  def add_expr_escaped(src, code)
45
- src << "<?php echo #{escaped_expr(code)}; ?>"
44
+ add_expr_literal(src, escaped_expr(code))
46
45
  end
47
46
 
48
47
  def add_expr_debug(src, code)
@@ -69,6 +68,14 @@ module Erubis
69
68
  end
70
69
 
71
70
 
71
+ ##
72
+ ## engine for PHP
73
+ ##
74
+ class Ephp < Basic::Engine
75
+ include PhpGenerator
76
+ end
77
+
78
+
72
79
  class EscapedEphp < Ephp
73
80
  include EscapeEnhancer
74
81
  end
@@ -79,4 +86,15 @@ module Erubis
79
86
  #end
80
87
 
81
88
 
89
+ class PI::Ephp < PI::Engine
90
+ include PhpGenerator
91
+
92
+ def init_converter(properties={})
93
+ @pi = 'php'
94
+ super(properties)
95
+ end
96
+
97
+ end
98
+
99
+
82
100
  end