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.
- data/{ChangeLog → CHANGES} +139 -6
- data/MIT-LICENSE +20 -0
- data/README.txt +20 -5
- data/benchmark/erubybench.rb +465 -229
- data/benchmark/erubybench.rhtml +39 -15
- data/benchmark/erubybench.yaml +126 -46
- data/bin/erubis +2 -2
- data/bin/notext +3 -3
- data/contrib/action_view_base_rb.patch +23 -0
- data/contrib/erubis +466 -308
- data/contrib/inline-require +2 -2
- data/doc-api/classes/ERB.html +101 -0
- data/doc-api/classes/Erubis.html +59 -6
- data/doc-api/classes/Erubis/ArrayEnhancer.html +12 -12
- data/doc-api/classes/Erubis/Basic/Converter.html +61 -57
- 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 +125 -29
- data/doc-api/classes/Erubis/Converter.html +73 -22
- data/doc-api/classes/Erubis/Engine.html +55 -39
- data/doc-api/classes/Erubis/EscapeEnhancer.html +6 -6
- data/doc-api/classes/Erubis/Evaluator.html +19 -19
- data/doc-api/classes/Erubis/Generator.html +16 -10
- data/doc-api/classes/Erubis/HeaderFooterEnhancer.html +14 -14
- data/doc-api/classes/Erubis/{Helper.html → Helpers.html} +5 -6
- data/doc-api/classes/Erubis/Helpers/RailsHelper.html +296 -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 +42 -30
- 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 +28 -81
- 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 +66 -79
- 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 +21 -21
- 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 +9 -9
- data/doc-api/classes/Erubis/SimplifyEnhancer.html +7 -6
- data/doc-api/classes/Erubis/StdoutEnhancer.html +12 -12
- data/doc-api/classes/Erubis/StringBufferEnhancer.html +13 -13
- data/doc-api/classes/Erubis/TinyEruby.html +56 -68
- data/doc-api/classes/Erubis/XmlHelper.html +20 -23
- data/doc-api/created.rid +1 -1
- data/doc-api/files/{__/README_txt.html → README_txt.html} +35 -20
- 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 -3
- 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/{helper/rails_rb.html → helpers/rails_helper_rb.html} +6 -31
- data/doc-api/files/erubis/local-setting_rb.html +2 -2
- data/doc-api/files/erubis/main_rb.html +4 -2
- data/doc-api/files/erubis/tiny_rb.html +2 -2
- data/doc-api/files/erubis_rb.html +2 -2
- data/doc-api/fr_class_index.html +3 -3
- data/doc-api/fr_file_index.html +2 -2
- data/doc-api/fr_method_index.html +142 -147
- data/doc-api/index.html +1 -1
- data/doc/users-guide.html +387 -218
- data/lib/erubis.rb +21 -25
- data/lib/erubis/context.rb +34 -4
- data/lib/erubis/converter.rb +159 -115
- data/lib/erubis/engine.rb +29 -12
- 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 +2 -2
- data/lib/erubis/engine/eperl.rb +2 -2
- data/lib/erubis/engine/ephp.rb +2 -2
- data/lib/erubis/engine/eruby.rb +5 -6
- data/lib/erubis/engine/escheme.rb +2 -2
- data/lib/erubis/engine/optimized.rb +2 -2
- data/lib/erubis/enhancer.rb +33 -7
- data/lib/erubis/error.rb +2 -2
- data/lib/erubis/evaluator.rb +2 -2
- data/lib/erubis/generator.rb +6 -3
- data/lib/erubis/helper.rb +6 -23
- data/lib/erubis/helpers/rails_helper.rb +202 -0
- data/lib/erubis/local-setting.rb +4 -4
- data/lib/erubis/main.rb +90 -35
- data/lib/erubis/tiny.rb +57 -52
- data/test/assert-text-equal.rb +2 -2
- data/test/test-engines.rb +5 -5
- data/test/test-erubis.rb +173 -63
- data/test/test-main.rb +135 -27
- data/test/test-notext.rb +2 -2
- data/test/test.rb +2 -2
- data/test/testutil.rb +2 -2
- metadata +16 -16
- data/LGPL +0 -504
- data/doc-api/classes/Erubis/Helper/CachedRailsTemplate.html +0 -198
- data/doc-api/classes/Erubis/Helper/RailsTemplate.html +0 -366
- data/lib/erubis/helper/rails.rb +0 -159
data/lib/erubis/helper/rails.rb
DELETED
|
@@ -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
|