erubis 2.1.0 → 2.2.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 (118) hide show
  1. data/{ChangeLog → CHANGES} +139 -6
  2. data/MIT-LICENSE +20 -0
  3. data/README.txt +20 -5
  4. data/benchmark/erubybench.rb +465 -229
  5. data/benchmark/erubybench.rhtml +39 -15
  6. data/benchmark/erubybench.yaml +126 -46
  7. data/bin/erubis +2 -2
  8. data/bin/notext +3 -3
  9. data/contrib/action_view_base_rb.patch +23 -0
  10. data/contrib/erubis +466 -308
  11. data/contrib/inline-require +2 -2
  12. data/doc-api/classes/ERB.html +101 -0
  13. data/doc-api/classes/Erubis.html +59 -6
  14. data/doc-api/classes/Erubis/ArrayEnhancer.html +12 -12
  15. data/doc-api/classes/Erubis/Basic/Converter.html +61 -57
  16. data/doc-api/classes/Erubis/BiPatternEnhancer.html +14 -14
  17. data/doc-api/classes/Erubis/CGenerator.html +60 -60
  18. data/doc-api/classes/Erubis/Context.html +125 -29
  19. data/doc-api/classes/Erubis/Converter.html +73 -22
  20. data/doc-api/classes/Erubis/Engine.html +55 -39
  21. data/doc-api/classes/Erubis/EscapeEnhancer.html +6 -6
  22. data/doc-api/classes/Erubis/Evaluator.html +19 -19
  23. data/doc-api/classes/Erubis/Generator.html +16 -10
  24. data/doc-api/classes/Erubis/HeaderFooterEnhancer.html +14 -14
  25. data/doc-api/classes/Erubis/{Helper.html → Helpers.html} +5 -6
  26. data/doc-api/classes/Erubis/Helpers/RailsHelper.html +296 -0
  27. data/doc-api/classes/Erubis/JavaGenerator.html +54 -54
  28. data/doc-api/classes/Erubis/JavascriptGenerator.html +60 -60
  29. data/doc-api/classes/Erubis/Main.html +42 -30
  30. data/doc-api/classes/Erubis/NoCodeEnhancer.html +5 -5
  31. data/doc-api/classes/Erubis/NoTextEnhancer.html +7 -7
  32. data/doc-api/classes/Erubis/OptimizedEruby.html +6 -6
  33. data/doc-api/classes/Erubis/OptimizedGenerator.html +72 -72
  34. data/doc-api/classes/Erubis/OptimizedXmlEruby.html +6 -6
  35. data/doc-api/classes/Erubis/PI/Converter.html +28 -81
  36. data/doc-api/classes/Erubis/PI/Ec.html +6 -6
  37. data/doc-api/classes/Erubis/PI/Ejava.html +6 -6
  38. data/doc-api/classes/Erubis/PI/Ejavascript.html +6 -6
  39. data/doc-api/classes/Erubis/PI/Eperl.html +6 -6
  40. data/doc-api/classes/Erubis/PI/Ephp.html +6 -6
  41. data/doc-api/classes/Erubis/PI/Eruby.html +7 -7
  42. data/doc-api/classes/Erubis/PI/Escheme.html +6 -6
  43. data/doc-api/classes/Erubis/PI/TinyEruby.html +66 -79
  44. data/doc-api/classes/Erubis/PercentLineEnhancer.html +8 -8
  45. data/doc-api/classes/Erubis/PerlGenerator.html +54 -54
  46. data/doc-api/classes/Erubis/PhpGenerator.html +54 -54
  47. data/doc-api/classes/Erubis/PrintEnabledEnhancer.html +21 -21
  48. data/doc-api/classes/Erubis/PrintOutEnhancer.html +30 -30
  49. data/doc-api/classes/Erubis/RubyEvaluator.html +12 -12
  50. data/doc-api/classes/Erubis/RubyGenerator.html +9 -9
  51. data/doc-api/classes/Erubis/SimplifyEnhancer.html +7 -6
  52. data/doc-api/classes/Erubis/StdoutEnhancer.html +12 -12
  53. data/doc-api/classes/Erubis/StringBufferEnhancer.html +13 -13
  54. data/doc-api/classes/Erubis/TinyEruby.html +56 -68
  55. data/doc-api/classes/Erubis/XmlHelper.html +20 -23
  56. data/doc-api/created.rid +1 -1
  57. data/doc-api/files/{__/README_txt.html → README_txt.html} +35 -20
  58. data/doc-api/files/erubis/context_rb.html +2 -2
  59. data/doc-api/files/erubis/converter_rb.html +2 -2
  60. data/doc-api/files/erubis/engine/ec_rb.html +2 -2
  61. data/doc-api/files/erubis/engine/ejava_rb.html +2 -2
  62. data/doc-api/files/erubis/engine/ejavascript_rb.html +2 -2
  63. data/doc-api/files/erubis/engine/enhanced_rb.html +2 -2
  64. data/doc-api/files/erubis/engine/eperl_rb.html +2 -2
  65. data/doc-api/files/erubis/engine/ephp_rb.html +2 -2
  66. data/doc-api/files/erubis/engine/eruby_rb.html +2 -3
  67. data/doc-api/files/erubis/engine/escheme_rb.html +2 -2
  68. data/doc-api/files/erubis/engine/optimized_rb.html +2 -2
  69. data/doc-api/files/erubis/engine_rb.html +2 -2
  70. data/doc-api/files/erubis/enhancer_rb.html +2 -2
  71. data/doc-api/files/erubis/error_rb.html +2 -2
  72. data/doc-api/files/erubis/evaluator_rb.html +2 -2
  73. data/doc-api/files/erubis/generator_rb.html +2 -2
  74. data/doc-api/files/erubis/helper_rb.html +2 -2
  75. data/doc-api/files/erubis/{helper/rails_rb.html → helpers/rails_helper_rb.html} +6 -31
  76. data/doc-api/files/erubis/local-setting_rb.html +2 -2
  77. data/doc-api/files/erubis/main_rb.html +4 -2
  78. data/doc-api/files/erubis/tiny_rb.html +2 -2
  79. data/doc-api/files/erubis_rb.html +2 -2
  80. data/doc-api/fr_class_index.html +3 -3
  81. data/doc-api/fr_file_index.html +2 -2
  82. data/doc-api/fr_method_index.html +142 -147
  83. data/doc-api/index.html +1 -1
  84. data/doc/users-guide.html +387 -218
  85. data/lib/erubis.rb +21 -25
  86. data/lib/erubis/context.rb +34 -4
  87. data/lib/erubis/converter.rb +159 -115
  88. data/lib/erubis/engine.rb +29 -12
  89. data/lib/erubis/engine/ec.rb +2 -2
  90. data/lib/erubis/engine/ejava.rb +2 -2
  91. data/lib/erubis/engine/ejavascript.rb +2 -2
  92. data/lib/erubis/engine/enhanced.rb +2 -2
  93. data/lib/erubis/engine/eperl.rb +2 -2
  94. data/lib/erubis/engine/ephp.rb +2 -2
  95. data/lib/erubis/engine/eruby.rb +5 -6
  96. data/lib/erubis/engine/escheme.rb +2 -2
  97. data/lib/erubis/engine/optimized.rb +2 -2
  98. data/lib/erubis/enhancer.rb +33 -7
  99. data/lib/erubis/error.rb +2 -2
  100. data/lib/erubis/evaluator.rb +2 -2
  101. data/lib/erubis/generator.rb +6 -3
  102. data/lib/erubis/helper.rb +6 -23
  103. data/lib/erubis/helpers/rails_helper.rb +202 -0
  104. data/lib/erubis/local-setting.rb +4 -4
  105. data/lib/erubis/main.rb +90 -35
  106. data/lib/erubis/tiny.rb +57 -52
  107. data/test/assert-text-equal.rb +2 -2
  108. data/test/test-engines.rb +5 -5
  109. data/test/test-erubis.rb +173 -63
  110. data/test/test-main.rb +135 -27
  111. data/test/test-notext.rb +2 -2
  112. data/test/test.rb +2 -2
  113. data/test/testutil.rb +2 -2
  114. metadata +16 -16
  115. data/LGPL +0 -504
  116. data/doc-api/classes/Erubis/Helper/CachedRailsTemplate.html +0 -198
  117. data/doc-api/classes/Erubis/Helper/RailsTemplate.html +0 -366
  118. data/lib/erubis/helper/rails.rb +0 -159
@@ -1,159 +0,0 @@
1
- ###
2
- ### $Rev: 38 $
3
- ### $Release: 2.1.0 $
4
- ### copyright(c) 2006 kuwata-lab all rights reserved.
5
- ###
6
- ### = How to use Erubis in Rails
7
- ###
8
- ### 1. add the folliwng code in your 'app/controllers/application.rb'.
9
- ### --------------------
10
- ### require 'erubis/helper/rails'
11
- ### suffix = 'erubis'
12
- ### ActionView::Base.register_template_handler(suffix, Erubis::Helper::RailsTemplate)
13
- ### #Erubis::Helper::RailsTemplate.engine_class = Erubis::EscapedEruby ## if you want
14
- ### #Erubis::Helper::RailsTemplate.default_class = { :escape=>true, :escapefunc='h' }
15
- ### --------------------
16
- ### 2. restart web server.
17
- ### 3. change view template filename from 'file.rhtml' to 'file.erubis'.
18
- ### (suffix '.rhtml' is not recommended because error page of Rails is
19
- ### assumed to use ERB.)
20
- ###
21
-
22
-
23
- require 'erubis'
24
-
25
-
26
- module Erubis
27
-
28
- module Helper
29
-
30
- class RailsTemplate
31
-
32
-
33
- @@engine_class = Erubis::Eruby
34
-
35
- def self.engine_class
36
- @@engine_class
37
- end
38
-
39
- def self.engine_class=(klass)
40
- @@engine_class = klass
41
- @@engine_instance = klass.new
42
- end
43
-
44
- #cattr_accessor :engine_class
45
-
46
-
47
- @@default_properties = { }
48
-
49
- def self.default_properties
50
- return @@default_properties
51
- end
52
-
53
- def self.default_properties=(properties)
54
- @@default_properties = properties
55
- end
56
-
57
- #cattr_accessor :default_properties
58
-
59
-
60
- def initialize(view)
61
- @view = view
62
- #@@engine_instance ||= @@engine_class.new(nil, @@default_properties)
63
- end
64
-
65
-
66
- def convert(template)
67
- #code = @@engine_instance.convert(template)
68
- #return code
69
- engine = @@engine_class.new(nil, @@default_properties)
70
- code = engine.convert(template)
71
- return code
72
- end
73
-
74
-
75
- def render(template, assigns)
76
- ## get ruby code
77
- code = convert(template)
78
-
79
- ## use @view as context object
80
- @view.__send__(:evaluate_assigns) #or @view.instance_eval("evaluate_assigns()")
81
- context = @view
82
-
83
- ## evaluate ruby code with context object
84
- if assigns && !assigns.empty?
85
- return _evaluate_string(code, context, assigns)
86
- else
87
- return context.instance_eval(code)
88
- end
89
- end
90
-
91
-
92
- protected
93
-
94
-
95
- def _localvar_code(_localvars)
96
- list = _localvars.collect { |_name| "#{_name} = _localvars[#{_name.inspect}]\n" }
97
- code = list.join()
98
- return code
99
- end
100
-
101
-
102
- def _evaluate_string(_code, _context, _localvars)
103
- eval(_localvar_code(_localvars))
104
- _context.instance_eval(_code)
105
- end
106
-
107
-
108
- end #class
109
-
110
-
111
-
112
- class CachedRailsTemplate < RailsTemplate
113
-
114
-
115
- @@cache_table = {}
116
-
117
-
118
- def render(template, assigns)
119
- ## template path without suffix
120
- ## (how to get template path name with suffix? I can't find...)
121
- c = @view.controller
122
- template_basename = c.template_root + "/" + c.controller_name + "/" + c.action_name
123
-
124
- ## cache template
125
- proc_obj = @@cache_table[template_basename]
126
- unless proc_obj
127
- code = convert(template)
128
- proc_obj = eval("proc do #{code} end")
129
- @@cache_table[template_basename] = proc_obj
130
- end
131
-
132
- ## use @view as context object
133
- @view.__send__(:evaluate_assigns)
134
- #or @view.instance_eval("evaluate_assigns()")
135
- context = @view
136
-
137
- ## evaluate ruby code with context object
138
- if assigns && !assigns.empty?
139
- return _evaluate_proc(proc_obj, context, assigns)
140
- else
141
- return context.instance_eval(&proc_obj)
142
- end
143
- end
144
-
145
-
146
- protected
147
-
148
-
149
- def _evaluate_proc(_proc_obj, _context, _localvars)
150
- eval(_localvar_code(_localvars))
151
- _context.instance_eval(&_proc_obj)
152
- end
153
-
154
-
155
- end #class
156
-
157
- end #module
158
-
159
- end #module