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