erubis 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
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