html-template-pro 0.0.2 → 0.0.3
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/History.txt +4 -0
- data/Manifest.txt +44 -45
- data/README.rdoc +36 -11
- data/Rakefile +6 -1
- data/ext/html/template/{internal/Pro.xs → Pro.xs} +0 -0
- data/ext/html/template/{internal/builtin_findfile.inc → builtin_findfile.inc} +0 -0
- data/ext/html/template/{internal/calc.h → calc.h} +0 -0
- data/ext/html/template/{internal/calc.inc → calc.inc} +0 -0
- data/ext/html/template/{internal/callback_stubs.inc → callback_stubs.inc} +0 -0
- data/ext/html/template/{internal/expr.c → expr.c} +2 -2
- data/ext/html/template/{internal/expr.y → expr.y} +1 -1
- data/ext/html/template/{internal/expr_iface.c → expr_iface.c} +0 -0
- data/ext/html/template/{internal/exprpstr.h → exprpstr.h} +0 -0
- data/ext/html/template/{internal/exprpstr.inc → exprpstr.inc} +0 -0
- data/ext/html/template/{internal/exprtool.h → exprtool.h} +0 -0
- data/ext/html/template/{internal/exprtool.inc → exprtool.inc} +0 -0
- data/ext/html/template/{internal/exprtype.h → exprtype.h} +0 -0
- data/ext/html/template/{internal/exprval.h → exprval.h} +0 -0
- data/ext/html/template/{internal/extconf.rb → extconf.rb} +0 -0
- data/ext/html/template/{internal/internal.c → internal.c} +2 -2
- data/ext/html/template/{internal/loadfile.h → loadfile.h} +0 -0
- data/ext/html/template/{internal/loadfile.inc → loadfile.inc} +0 -0
- data/ext/html/template/{internal/pabidecl.h → pabidecl.h} +0 -0
- data/ext/html/template/{internal/pabstract.h → pabstract.h} +0 -0
- data/ext/html/template/{internal/parse_expr.h → parse_expr.h} +0 -0
- data/ext/html/template/{internal/pbuffer.c → pbuffer.c} +0 -0
- data/ext/html/template/{internal/pbuffer.h → pbuffer.h} +0 -0
- data/ext/html/template/{internal/pmiscdef.h → pmiscdef.h} +0 -0
- data/ext/html/template/{internal/pparam.h → pparam.h} +0 -0
- data/ext/html/template/{internal/ppport.h → ppport.h} +0 -0
- data/ext/html/template/{internal/procore.c → procore.c} +0 -0
- data/ext/html/template/{internal/procore.h → procore.h} +0 -0
- data/ext/html/template/{internal/proparam.c → proparam.c} +0 -0
- data/ext/html/template/{internal/proparam.h → proparam.h} +0 -0
- data/ext/html/template/{internal/proscope.h → proscope.h} +0 -0
- data/ext/html/template/{internal/proscope.inc → proscope.inc} +0 -0
- data/ext/html/template/{internal/prostate.h → prostate.h} +0 -0
- data/ext/html/template/{internal/prostate.inc → prostate.inc} +0 -0
- data/ext/html/template/{internal/provalue.h → provalue.h} +0 -0
- data/ext/html/template/{internal/pstring.h → pstring.h} +0 -0
- data/ext/html/template/{internal/pstrutils.h → pstrutils.h} +0 -0
- data/ext/html/template/{internal/pstrutils.inc → pstrutils.inc} +0 -0
- data/ext/html/template/{internal/tagstack.h → tagstack.h} +0 -0
- data/ext/html/template/{internal/tagstack.inc → tagstack.inc} +0 -0
- data/ext/html/template/{internal/tmpllog.c → tmpllog.c} +0 -0
- data/ext/html/template/{internal/tmpllog.h → tmpllog.h} +0 -0
- data/ext/html/template/{internal/tmplpro.h → tmplpro.h} +0 -0
- data/ext/html/template/{internal/tmplpro_version.c → tmplpro_version.c} +0 -0
- data/lib/html/template/pro.rb +265 -18
- data/tasks/extconf/tmplpro.rake +1 -1
- data/website/index.txt +37 -9
- metadata +56 -53
- data/test/test_html_template_internal_extn.rb +0 -10
data/History.txt
CHANGED
data/Manifest.txt
CHANGED
|
@@ -7,50 +7,50 @@ README.rdoc
|
|
|
7
7
|
Rakefile
|
|
8
8
|
benchmark.rb
|
|
9
9
|
config/website.yml
|
|
10
|
-
ext/html/template/
|
|
11
|
-
ext/html/template/
|
|
12
|
-
ext/html/template/
|
|
13
|
-
ext/html/template/
|
|
14
|
-
ext/html/template/
|
|
15
|
-
ext/html/template/
|
|
16
|
-
ext/html/template/
|
|
17
|
-
ext/html/template/
|
|
18
|
-
ext/html/template/
|
|
19
|
-
ext/html/template/
|
|
20
|
-
ext/html/template/
|
|
21
|
-
ext/html/template/
|
|
22
|
-
ext/html/template/
|
|
23
|
-
ext/html/template/
|
|
24
|
-
ext/html/template/
|
|
25
|
-
ext/html/template/internal
|
|
26
|
-
ext/html/template/
|
|
27
|
-
ext/html/template/
|
|
28
|
-
ext/html/template/
|
|
29
|
-
ext/html/template/
|
|
30
|
-
ext/html/template/
|
|
31
|
-
ext/html/template/
|
|
32
|
-
ext/html/template/
|
|
33
|
-
ext/html/template/
|
|
34
|
-
ext/html/template/
|
|
35
|
-
ext/html/template/
|
|
36
|
-
ext/html/template/
|
|
37
|
-
ext/html/template/
|
|
38
|
-
ext/html/template/
|
|
39
|
-
ext/html/template/
|
|
40
|
-
ext/html/template/
|
|
41
|
-
ext/html/template/
|
|
42
|
-
ext/html/template/
|
|
43
|
-
ext/html/template/
|
|
44
|
-
ext/html/template/
|
|
45
|
-
ext/html/template/
|
|
46
|
-
ext/html/template/
|
|
47
|
-
ext/html/template/
|
|
48
|
-
ext/html/template/
|
|
49
|
-
ext/html/template/
|
|
50
|
-
ext/html/template/
|
|
51
|
-
ext/html/template/
|
|
52
|
-
ext/html/template/
|
|
53
|
-
ext/html/template/
|
|
10
|
+
ext/html/template/Pro.xs
|
|
11
|
+
ext/html/template/builtin_findfile.inc
|
|
12
|
+
ext/html/template/calc.h
|
|
13
|
+
ext/html/template/calc.inc
|
|
14
|
+
ext/html/template/callback_stubs.inc
|
|
15
|
+
ext/html/template/expr.c
|
|
16
|
+
ext/html/template/expr.y
|
|
17
|
+
ext/html/template/expr_iface.c
|
|
18
|
+
ext/html/template/exprpstr.h
|
|
19
|
+
ext/html/template/exprpstr.inc
|
|
20
|
+
ext/html/template/exprtool.h
|
|
21
|
+
ext/html/template/exprtool.inc
|
|
22
|
+
ext/html/template/exprtype.h
|
|
23
|
+
ext/html/template/exprval.h
|
|
24
|
+
ext/html/template/extconf.rb
|
|
25
|
+
ext/html/template/internal.c
|
|
26
|
+
ext/html/template/loadfile.h
|
|
27
|
+
ext/html/template/loadfile.inc
|
|
28
|
+
ext/html/template/pabidecl.h
|
|
29
|
+
ext/html/template/pabstract.h
|
|
30
|
+
ext/html/template/parse_expr.h
|
|
31
|
+
ext/html/template/pbuffer.c
|
|
32
|
+
ext/html/template/pbuffer.h
|
|
33
|
+
ext/html/template/pmiscdef.h
|
|
34
|
+
ext/html/template/pparam.h
|
|
35
|
+
ext/html/template/ppport.h
|
|
36
|
+
ext/html/template/procore.c
|
|
37
|
+
ext/html/template/procore.h
|
|
38
|
+
ext/html/template/proparam.c
|
|
39
|
+
ext/html/template/proparam.h
|
|
40
|
+
ext/html/template/proscope.h
|
|
41
|
+
ext/html/template/proscope.inc
|
|
42
|
+
ext/html/template/prostate.h
|
|
43
|
+
ext/html/template/prostate.inc
|
|
44
|
+
ext/html/template/provalue.h
|
|
45
|
+
ext/html/template/pstring.h
|
|
46
|
+
ext/html/template/pstrutils.h
|
|
47
|
+
ext/html/template/pstrutils.inc
|
|
48
|
+
ext/html/template/tagstack.h
|
|
49
|
+
ext/html/template/tagstack.inc
|
|
50
|
+
ext/html/template/tmpllog.c
|
|
51
|
+
ext/html/template/tmpllog.h
|
|
52
|
+
ext/html/template/tmplpro.h
|
|
53
|
+
ext/html/template/tmplpro_version.c
|
|
54
54
|
lib/html/template/pro.rb
|
|
55
55
|
script/console
|
|
56
56
|
script/destroy
|
|
@@ -207,7 +207,6 @@ test/test_coderefs.rb
|
|
|
207
207
|
test/test_complex.rb
|
|
208
208
|
test/test_helper.rb
|
|
209
209
|
test/test_html_template.rb
|
|
210
|
-
test/test_html_template_internal_extn.rb
|
|
211
210
|
test/test_html_template_pro.rb
|
|
212
211
|
test/test_path_like_variable_scope.rb
|
|
213
212
|
test/test_random.rb
|
data/README.rdoc
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
=
|
|
1
|
+
= html-template-pro
|
|
2
2
|
|
|
3
3
|
* http://github.com/tom-lpsd/ruby-html-template-pro
|
|
4
4
|
|
|
5
5
|
== DESCRIPTION:
|
|
6
6
|
|
|
7
|
-
A Ruby port of HTML::Template::Pro
|
|
8
|
-
in Perl and XS
|
|
7
|
+
A Ruby port of `HTML::Template::Pro'. `HTML::Template::Pro' is
|
|
8
|
+
template engine originally written in Perl and XS. It's so fast
|
|
9
|
+
because of its C based implementation. Its syntax is very simple.
|
|
10
|
+
This results clearly separation of application logic and its view.
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* Fast. (Main part is written in C.)
|
|
13
|
-
* Simple. (It avoids mixing up complex logic in View.)
|
|
12
|
+
Template syntax complies with original perl module's syntax.
|
|
13
|
+
Please see, HTML::Template::SYNTAX[http://search.cpan.org/~viy/HTML-Template-Pro-0.92/lib/HTML/Template/SYNTAX.pod#SYNOPSIS].
|
|
14
14
|
|
|
15
15
|
== SYNOPSIS:
|
|
16
16
|
|
|
@@ -38,15 +38,40 @@ in Perl and XS).
|
|
|
38
38
|
</body>
|
|
39
39
|
</html>
|
|
40
40
|
|
|
41
|
-
|
|
42
41
|
== REQUIREMENTS:
|
|
43
42
|
|
|
44
|
-
* C99
|
|
43
|
+
* C99 compiler.
|
|
44
|
+
* ruby > 1.9.
|
|
45
45
|
|
|
46
46
|
== INSTALL:
|
|
47
47
|
|
|
48
48
|
* sudo gem install html-template-pro
|
|
49
49
|
|
|
50
|
-
==
|
|
50
|
+
== SEE ALSO:
|
|
51
|
+
|
|
52
|
+
* Original perl module
|
|
53
|
+
HTML::Template::Pro[http://search.cpan.org/~viy/HTML-Template-Pro-0.92/]
|
|
54
|
+
|
|
55
|
+
== WEBSITE:
|
|
56
|
+
|
|
57
|
+
* http://tmplpro.rubyforge.org/
|
|
58
|
+
|
|
59
|
+
== AUTHOR:
|
|
60
|
+
|
|
61
|
+
Tom Tsuruhara <tom.lpsd@gmail.com>
|
|
62
|
+
|
|
63
|
+
Original perl module
|
|
64
|
+
HTML::Template::Pro[http://search.cpan.org/~viy/HTML-Template-Pro-0.92/]
|
|
65
|
+
(and most of this package's C code) is written by I. Vlasenko
|
|
66
|
+
<viy@altlinux.org>. Thanks to him for his great work.
|
|
67
|
+
|
|
68
|
+
== COPYRIGHT AND LICENSE:
|
|
69
|
+
|
|
70
|
+
Copyright (C) 2009 by Tom Tsuruhara.
|
|
71
|
+
Most of C codes (except internal.c) are
|
|
72
|
+
Copyright (C) 2005-2009 by I. Yu. Vlasenko.
|
|
51
73
|
|
|
52
|
-
|
|
74
|
+
This library is free software; you can redistribute it and/or modify
|
|
75
|
+
it under the same terms of the GNU Lesser General Public License as
|
|
76
|
+
published by the Free Software Foundation; either version 2 of the
|
|
77
|
+
License, or (at your option) any later version.
|
data/Rakefile
CHANGED
|
@@ -5,13 +5,18 @@ require 'fileutils'
|
|
|
5
5
|
|
|
6
6
|
Hoe.plugin :newgem
|
|
7
7
|
Hoe.plugin :website
|
|
8
|
+
Hoe.add_include_dirs 'ext/html/template'
|
|
8
9
|
|
|
9
10
|
$hoe = Hoe.spec 'html-template-pro' do
|
|
10
11
|
self.developer 'Tsuruhara Tom', 'tom.lpsd@gmail.com'
|
|
11
12
|
self.rubyforge_name = 'tmplpro'
|
|
12
|
-
self.version = "0.0.
|
|
13
|
+
self.version = "0.0.3"
|
|
13
14
|
self.summary = 'A Ruby port of HTML::Template::Pro'
|
|
14
15
|
self.extra_rdoc_files = ['README.rdoc']
|
|
16
|
+
|
|
17
|
+
clean_globs.push('ext/html/template/*.o')
|
|
18
|
+
|
|
19
|
+
spec_extras[:required_ruby_version] = Gem::Requirement.new '> 1.9.0'
|
|
15
20
|
end
|
|
16
21
|
|
|
17
22
|
require 'newgem/tasks'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -241,7 +241,7 @@ typedef short int yytype_int16;
|
|
|
241
241
|
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
|
|
242
242
|
|
|
243
243
|
#ifndef YY_
|
|
244
|
-
# if YYENABLE_NLS
|
|
244
|
+
# if defined YYENABLE_NLS && YYENABLE_NLS
|
|
245
245
|
# if ENABLE_NLS
|
|
246
246
|
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
|
|
247
247
|
# define YY_(msgid) dgettext ("bison-runtime", msgid)
|
|
@@ -762,7 +762,7 @@ while (YYID (0))
|
|
|
762
762
|
we won't break user code: when these are the locations we know. */
|
|
763
763
|
|
|
764
764
|
#ifndef YY_LOCATION_PRINT
|
|
765
|
-
# if YYLTYPE_IS_TRIVIAL
|
|
765
|
+
# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
|
|
766
766
|
# define YY_LOCATION_PRINT(File, Loc) \
|
|
767
767
|
fprintf (File, "%d.%d-%d.%d", \
|
|
768
768
|
(Loc).first_line, (Loc).first_column, \
|
|
@@ -188,7 +188,7 @@ numEXP: NUM { $$ = $1; }
|
|
|
188
188
|
;
|
|
189
189
|
|
|
190
190
|
arglist: EXTFUNC '(' numEXP {
|
|
191
|
-
$1.arglist=state->param->InitExprArglistFuncPtr(state->param->
|
|
191
|
+
$1.arglist=state->param->InitExprArglistFuncPtr(state->param->ext_calluserfunc_state);
|
|
192
192
|
pusharg_expr_userfunc(exprobj,state->param,$1,$3);
|
|
193
193
|
$$ = $1;
|
|
194
194
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -413,7 +413,7 @@ static void setup_internal(VALUE self)
|
|
|
413
413
|
rb_ivar_set(self, rb_intern("@internal_expr_results"), rb_ary_new());
|
|
414
414
|
}
|
|
415
415
|
|
|
416
|
-
static VALUE exec_tmpl(VALUE self, VALUE output)
|
|
416
|
+
static VALUE exec_tmpl(VALUE module, VALUE self, VALUE output)
|
|
417
417
|
{
|
|
418
418
|
writer_functype writer;
|
|
419
419
|
struct tmplpro_param* proparam;
|
|
@@ -444,6 +444,6 @@ void Init_internal(void)
|
|
|
444
444
|
mHtml = rb_define_module("HTML");
|
|
445
445
|
mHtmlTemplate = rb_define_module_under(mHtml, "Template");
|
|
446
446
|
mHtmlTemplateInternal = rb_define_module_under(mHtmlTemplate, "Internal");
|
|
447
|
-
rb_define_module_function(mHtmlTemplateInternal, "exec_tmpl", &exec_tmpl,
|
|
447
|
+
rb_define_module_function(mHtmlTemplateInternal, "exec_tmpl", &exec_tmpl, 2);
|
|
448
448
|
cHtmlTemplateInternalState = rb_define_class_under(mHtmlTemplateInternal, "State", rb_cObject);
|
|
449
449
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/html/template/pro.rb
CHANGED
|
@@ -1,35 +1,45 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
1
2
|
require 'html/template/internal'
|
|
2
3
|
|
|
3
|
-
module HTML
|
|
4
|
-
module Template
|
|
4
|
+
module HTML # :nodoc:
|
|
5
|
+
module Template # :nodoc:
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
module Internal # :nodoc:
|
|
8
|
+
|
|
9
|
+
class State # :nodoc:
|
|
10
|
+
# supress documentation
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
module_function
|
|
14
|
+
|
|
15
|
+
def register_functions_impl(registory, func_spec, &block) # :nodoc:
|
|
16
|
+
if block && func_spec.kind_of?(Symbol)
|
|
17
|
+
registory[func_spec] = block
|
|
18
|
+
elsif func_spec.kind_of? Hash
|
|
19
|
+
unless func_spec.values.all?{|e| e.kind_of? Proc}
|
|
20
|
+
raise ArgumentError, "functions must be kind_of Proc"
|
|
21
|
+
end
|
|
22
|
+
registory.update(func_spec)
|
|
23
|
+
else
|
|
24
|
+
raise ArgumentError, "first argument must be symbol or hash contains functions"
|
|
12
25
|
end
|
|
13
|
-
registory.update(func_spec)
|
|
14
|
-
else
|
|
15
|
-
raise ArgumentError, "first argument must be symbol or hash contains functions"
|
|
16
26
|
end
|
|
17
27
|
end
|
|
18
28
|
|
|
19
29
|
class Pro
|
|
20
30
|
|
|
21
|
-
VERSION = "0.0.
|
|
22
|
-
|
|
23
|
-
include HTML::Template::Internal
|
|
24
|
-
|
|
25
|
-
INPUTS = [:filename, :filehandle, :arrayref, :scalarref, :source]
|
|
31
|
+
VERSION = "0.0.3"
|
|
26
32
|
|
|
33
|
+
# :stopdoc:
|
|
27
34
|
ASK_NAME_DEFAULT = 0
|
|
28
35
|
ASK_NAME_AS_IS = 1
|
|
29
36
|
ASK_NAME_LOWERCASE = 2
|
|
30
37
|
ASK_NAME_UPPERCASE = 4
|
|
31
38
|
ASK_NAME_MASK = ASK_NAME_AS_IS | ASK_NAME_LOWERCASE | ASK_NAME_UPPERCASE
|
|
32
39
|
|
|
40
|
+
INPUTS = [:filename, :filehandle, :arrayref, :scalarref, :source]
|
|
41
|
+
# :startdoc:
|
|
42
|
+
|
|
33
43
|
@@func = {
|
|
34
44
|
# note that length,defined,sin,cos,log,tan,... are built-in
|
|
35
45
|
:sprintf => lambda { |*args| sprintf(*args) },
|
|
@@ -47,6 +57,142 @@ module HTML
|
|
|
47
57
|
:srand => lambda { |seed| srand seed },
|
|
48
58
|
}
|
|
49
59
|
|
|
60
|
+
# Create a `Template' object. `Template' source is specified by several way.
|
|
61
|
+
# Exactly one kind of source must be specified.
|
|
62
|
+
#
|
|
63
|
+
# * specify filename
|
|
64
|
+
#
|
|
65
|
+
# template = HTML::Template::Pro.new(:filename => 'foo.tmpl')
|
|
66
|
+
#
|
|
67
|
+
# * specify source as string
|
|
68
|
+
#
|
|
69
|
+
# template = HTLM::Template::Pro.new(:source => '<html><body><TMPL_VAR NAME="hello">!!</body></html>')
|
|
70
|
+
#
|
|
71
|
+
# * specify source by array of string
|
|
72
|
+
#
|
|
73
|
+
# template = HTLM::Template::Pro.new(:source => ['<html>', '<body><TMPL_VAR NAME="hello">!!</body>', '</html>'])
|
|
74
|
+
#
|
|
75
|
+
# * specify IO object
|
|
76
|
+
#
|
|
77
|
+
# template = HTLM::Template::Pro.new(:source => $stdin)
|
|
78
|
+
#
|
|
79
|
+
# === Other options
|
|
80
|
+
#
|
|
81
|
+
# ==== path
|
|
82
|
+
#
|
|
83
|
+
# Array of file path which include template files.
|
|
84
|
+
#
|
|
85
|
+
# Example:
|
|
86
|
+
#
|
|
87
|
+
# # find out tmpl/foo.tmpl
|
|
88
|
+
# template = HTLM::Template::Pro.new(:filename => 'foo.tmpl', :path => ['tmpl'])
|
|
89
|
+
#
|
|
90
|
+
# ==== search_path_on_include
|
|
91
|
+
#
|
|
92
|
+
# Boolean that indicates whether we search directory specified
|
|
93
|
+
# by `path' param when we meet the TMPL_INCLUDE tag.
|
|
94
|
+
#
|
|
95
|
+
# Example:
|
|
96
|
+
#
|
|
97
|
+
# # tmpl_includes/foo.tmpl is used.
|
|
98
|
+
# template = HTLM::Template::Pro.new(:source => '<TMPL_INCLUDE NAME="foo.tmpl">',
|
|
99
|
+
# :path => ['tmpl_includes'],
|
|
100
|
+
# :search_path_on_include => true)
|
|
101
|
+
#
|
|
102
|
+
# ==== associate
|
|
103
|
+
#
|
|
104
|
+
# this option allows you to inherit the parameter values from
|
|
105
|
+
# other objects. The only requirement for the other object is
|
|
106
|
+
# that it have a "param()" method that works like HTML::Template::Pro#param.
|
|
107
|
+
#
|
|
108
|
+
# ==== case_sensitive
|
|
109
|
+
#
|
|
110
|
+
# if this options is true, template variable is treated as case sensitive.
|
|
111
|
+
#
|
|
112
|
+
# Example:
|
|
113
|
+
#
|
|
114
|
+
# template = HTML::Template::Pro.new(:source => '<TMPL_VAR NAME="FoO">',
|
|
115
|
+
# :case_sensitive => true)
|
|
116
|
+
# template.param(:foo => 100)
|
|
117
|
+
# puts template.output # output empty string ( foo is not 'FoO' )
|
|
118
|
+
#
|
|
119
|
+
# ==== loop_context_vars
|
|
120
|
+
#
|
|
121
|
+
# when this parameter is set to true (it is false by default)
|
|
122
|
+
# five loop context variables are made available inside a loop:
|
|
123
|
+
# __first__, __last__, __inner__, __odd__, __counter__. They
|
|
124
|
+
# can be used with <TMPL_IF>, <TMPL_UNLESS> and <TMPL_ELSE> to
|
|
125
|
+
# control how a loop is output.
|
|
126
|
+
#
|
|
127
|
+
# Example:
|
|
128
|
+
# In your templates,
|
|
129
|
+
#
|
|
130
|
+
# <TMPL_LOOP NAME="loop">
|
|
131
|
+
# <TMPL_IF NAME="__first__">First!</TMPL_IF>
|
|
132
|
+
# <TMPL_VAR NAME="__counter__">
|
|
133
|
+
# <TMPL_IF NAME="__last__">Last!</TMPL_IF>
|
|
134
|
+
# </TMPL_LOOP>
|
|
135
|
+
#
|
|
136
|
+
# ==== no_includes
|
|
137
|
+
#
|
|
138
|
+
# set this option to true to disallow the <TMPL_INCLUDE> tag in the
|
|
139
|
+
# template file. This can be used to make opening untrusted
|
|
140
|
+
# templates *slightly* less dangerous. Defaults to false.
|
|
141
|
+
#
|
|
142
|
+
# ==== max_includes
|
|
143
|
+
#
|
|
144
|
+
# set this variable to determine the maximum depth that includes
|
|
145
|
+
# can reach. Set to 10 by default. Including files to a depth
|
|
146
|
+
# greater than this value causes an error message to be
|
|
147
|
+
# displayed. Set to 0 to disable this protection.
|
|
148
|
+
#
|
|
149
|
+
# ==== global_vars
|
|
150
|
+
#
|
|
151
|
+
# normally variables declared outside a loop are not available
|
|
152
|
+
# inside a loop. This option makes <TMPL_VAR>s like global
|
|
153
|
+
# variables - they have unlimited scope. This option also
|
|
154
|
+
# affects <TMPL_IF> and <TMPL_UNLESS>.
|
|
155
|
+
#
|
|
156
|
+
# ==== path_like_variable_scope
|
|
157
|
+
#
|
|
158
|
+
# this option switches on a Shigeki Morimoto extension to
|
|
159
|
+
# HTML::Template::Pro that allows access to variables that are
|
|
160
|
+
# outside the current loop scope using path-like expressions.
|
|
161
|
+
#
|
|
162
|
+
# Example:
|
|
163
|
+
#
|
|
164
|
+
# <TMPL_LOOP NAME=class>
|
|
165
|
+
# <TMPL_LOOP NAME=person>
|
|
166
|
+
# <TMPL_VAR NAME="../teacher_name"> <!-- access to class.teacher_name -->
|
|
167
|
+
# <TMPL_VAR NAME="name">
|
|
168
|
+
# <TMPL_VAR NAME="/top_level_value"> <!-- access to top level value -->
|
|
169
|
+
# <TMPL_VAR NAME="age">
|
|
170
|
+
# <TMPL_LOOP NAME="../../school"> <!-- enter loop before accessing its vars -->
|
|
171
|
+
# <TMPL_VAR NAME="school_name"> <!-- access to [../../]school.school_name -->
|
|
172
|
+
# </TMPL_LOOP>
|
|
173
|
+
# </TMPL_LOOP>
|
|
174
|
+
# </TMPL_LOOP>
|
|
175
|
+
#
|
|
176
|
+
# ==== filter
|
|
177
|
+
#
|
|
178
|
+
# By using this option, you can filter the source of template
|
|
179
|
+
# before HTML::Template::Pro prcesses it.
|
|
180
|
+
#
|
|
181
|
+
# Example:
|
|
182
|
+
#
|
|
183
|
+
# myfilter = ->(source){ source.gsub(/Foo/, 'Bar') }
|
|
184
|
+
# template = HTML::Template::Pro.new(:source => '<TMPL_VAR NAME="Foo">!!',
|
|
185
|
+
# :filter => myfilter)
|
|
186
|
+
# template.param(:Bar => 'hello')
|
|
187
|
+
# puts template.output # displays 'hello!!'
|
|
188
|
+
#
|
|
189
|
+
# ==== default_escape
|
|
190
|
+
#
|
|
191
|
+
# Set this parameter to "HTML", "URL" or "JS" and
|
|
192
|
+
# HTML::Template::Pro will apply the specified escaping to all
|
|
193
|
+
# variables unless they declare a different escape in the
|
|
194
|
+
# template.
|
|
195
|
+
#
|
|
50
196
|
def initialize(args={})
|
|
51
197
|
@options = default_options.merge(args)
|
|
52
198
|
if args.keys.count(&INPUTS.method(:include?)) != 1
|
|
@@ -66,6 +212,48 @@ module HTML
|
|
|
66
212
|
@filtered_template = {}
|
|
67
213
|
end
|
|
68
214
|
|
|
215
|
+
# #param can be called in a number of ways.
|
|
216
|
+
#
|
|
217
|
+
# 1. call with no arguments.
|
|
218
|
+
#
|
|
219
|
+
# returns a list of parameters set after new.
|
|
220
|
+
#
|
|
221
|
+
# Example:
|
|
222
|
+
# template = HTML::Template::Pro.new(:filename => 'foo.tmpl')
|
|
223
|
+
# template.param(:foo => 10, :bar => 20)
|
|
224
|
+
# params = template.param # returns [:foo, :bar]
|
|
225
|
+
#
|
|
226
|
+
# 2. pass one parameter name.
|
|
227
|
+
#
|
|
228
|
+
# returns the value of a parameter.
|
|
229
|
+
#
|
|
230
|
+
# Example:
|
|
231
|
+
# template = HTML::Template::Pro.new(:filename => 'foo.tmpl')
|
|
232
|
+
# template.param(:foo => 10, :bar => 20)
|
|
233
|
+
# val = template.param(:foo) # now `val' equals 10.
|
|
234
|
+
#
|
|
235
|
+
# 3. pass hash.
|
|
236
|
+
#
|
|
237
|
+
# assign values to parameters.
|
|
238
|
+
#
|
|
239
|
+
# Example:
|
|
240
|
+
#
|
|
241
|
+
# template = HTML::Template::Pro.new(:source => <<'TMPL')
|
|
242
|
+
# <TMPL_VAR NAME="foo">
|
|
243
|
+
# <TMPL_VAR NAME="bar">
|
|
244
|
+
# TMPL
|
|
245
|
+
# template.param(:foo => 10, :bar => 20)
|
|
246
|
+
# puts template.output # displays "10\n20\n"
|
|
247
|
+
#
|
|
248
|
+
# # you can specify the value by passing block.
|
|
249
|
+
# # in this way, you must assign exactly one parameter.
|
|
250
|
+
# template.param(:foo) { Time.now }
|
|
251
|
+
# puts template.output # prints the time #output is executed.
|
|
252
|
+
#
|
|
253
|
+
# # Or you can use proc or lambda.
|
|
254
|
+
# template.param(:foo => lambda { Time.now },
|
|
255
|
+
# :bar => lambda { rand(100) })
|
|
256
|
+
#
|
|
69
257
|
def param(args=nil, &block)
|
|
70
258
|
return @params.keys if args.nil?
|
|
71
259
|
if !(args.kind_of? Hash)
|
|
@@ -79,10 +267,26 @@ module HTML
|
|
|
79
267
|
merge_params(args)
|
|
80
268
|
end
|
|
81
269
|
|
|
270
|
+
# Clear the internal param hash. All the parameters set before
|
|
271
|
+
# this call is reset.
|
|
82
272
|
def clear_params
|
|
83
273
|
@params.clear
|
|
84
274
|
end
|
|
85
275
|
|
|
276
|
+
# returns the final result of the template. If you want to print
|
|
277
|
+
# out the result, you can do:
|
|
278
|
+
# puts template.output
|
|
279
|
+
#
|
|
280
|
+
# When `output' is called each occurrence of <TMPL_VAR
|
|
281
|
+
# NAME=name> is replaced with the value assigned to "name" via
|
|
282
|
+
# "param()". If a named parameter is unset it is simply replaced
|
|
283
|
+
# with ’’. <TMPL_LOOPS> are evaluated once per parameter set,
|
|
284
|
+
# accumulating output on each pass.
|
|
285
|
+
#
|
|
286
|
+
# You may optionally supply a IO object to print:
|
|
287
|
+
# File.open('result.html', 'w') do |file|
|
|
288
|
+
# template.output(:print_to => file)
|
|
289
|
+
# end
|
|
86
290
|
def output(options={})
|
|
87
291
|
|
|
88
292
|
@options[:associate].reverse.each do |assoc|
|
|
@@ -92,22 +296,65 @@ module HTML
|
|
|
92
296
|
end
|
|
93
297
|
|
|
94
298
|
if (options.include? :print_to)
|
|
95
|
-
exec_tmpl(options[:print_to])
|
|
299
|
+
HTML::Template::Internal.exec_tmpl(self, options[:print_to])
|
|
96
300
|
else
|
|
97
301
|
output_string = String.new
|
|
98
|
-
exec_tmpl(output_string)
|
|
302
|
+
HTML::Template::Internal.exec_tmpl(self, output_string)
|
|
99
303
|
return output_string
|
|
100
304
|
end
|
|
101
305
|
end
|
|
102
306
|
|
|
307
|
+
# <b>for perl compatibility</b>
|
|
308
|
+
#
|
|
309
|
+
# shortcut to HTML::Template::Pro.new(:filehandle => file)
|
|
103
310
|
def self.new_filehandle(file)
|
|
104
311
|
self.new(:filehandle => file)
|
|
105
312
|
end
|
|
106
313
|
|
|
314
|
+
# <b>for perl compatibility</b>
|
|
315
|
+
#
|
|
316
|
+
# shortcut to HTML::Template::Pro.new(:filename => filename)
|
|
317
|
+
def self.new_file(filename)
|
|
318
|
+
self.new(:filename => file)
|
|
319
|
+
end
|
|
320
|
+
|
|
321
|
+
# <b>for perl compatibility</b>
|
|
322
|
+
#
|
|
323
|
+
# shortcut to HTML::Template::Pro.new(:arrayref => lines)
|
|
324
|
+
def self.new_array_ref(lines)
|
|
325
|
+
self.new(:arrayref => lines)
|
|
326
|
+
end
|
|
327
|
+
|
|
328
|
+
# <b>for perl compatibility</b>
|
|
329
|
+
#
|
|
330
|
+
# shortcut to HTML::Template::Pro.new(:scalarref => source_string)
|
|
331
|
+
def self.new_scalar_ref(source)
|
|
332
|
+
self.new(:scalarref => source)
|
|
333
|
+
end
|
|
334
|
+
|
|
335
|
+
# register the function globally. See HTML::Template::Pro#register_function.
|
|
336
|
+
# Functions registered by this class method is shared by all instances.
|
|
107
337
|
def self.register_function(func_spec, &block)
|
|
108
338
|
HTML::Template::Internal.register_functions_impl(@@func, func_spec, &block)
|
|
109
339
|
end
|
|
110
340
|
|
|
341
|
+
# define a new function that can be used in <tt><TMPL_VAR
|
|
342
|
+
# EXPR=""></tt> tag. function is specified by block or lambda.
|
|
343
|
+
#
|
|
344
|
+
# Example:
|
|
345
|
+
# template = HTML::Template::Pro.new(:source => '<TMPL_VAR EXPR="double(10)">')
|
|
346
|
+
# template.register_function(:double) {|num| num * 2 }
|
|
347
|
+
# # or template.register_function(:double => lambda {|num| num * 2 })
|
|
348
|
+
# puts template.output # displays `20'
|
|
349
|
+
#
|
|
350
|
+
# You can also register the functions by passing lambdas to new.
|
|
351
|
+
#
|
|
352
|
+
# Example:
|
|
353
|
+
# template = HTML::Template::Pro.new(:filename => 'foo.tmpl',
|
|
354
|
+
# :functions => {
|
|
355
|
+
# :square => lambda {|x| x * x },
|
|
356
|
+
# })
|
|
357
|
+
#
|
|
111
358
|
def register_function(func_spec, &block)
|
|
112
359
|
HTML::Template::Internal.register_functions_impl(@options[:expr_func], func_spec, &block)
|
|
113
360
|
end
|
data/tasks/extconf/tmplpro.rake
CHANGED
data/website/index.txt
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
h1. html-template-pro
|
|
2
2
|
|
|
3
|
-
|
|
4
3
|
h2. What
|
|
5
4
|
|
|
6
5
|
A Ruby port of HTML::Template::Pro (template engine originally written
|
|
@@ -12,16 +11,41 @@ h2. Installing
|
|
|
12
11
|
|
|
13
12
|
h2. The basics
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
<pre syntex="ruby">
|
|
15
|
+
# foo.rb
|
|
16
|
+
require 'html/template/pro'
|
|
17
|
+
|
|
18
|
+
template = HTML::Template::Pro.new(:filename => 'foo.tmpl')
|
|
19
|
+
template.param(:param1 => 100)
|
|
20
|
+
puts template.output
|
|
21
|
+
|
|
22
|
+
# foo.tmpl
|
|
23
|
+
<html>
|
|
24
|
+
<head></head>
|
|
25
|
+
<body>
|
|
26
|
+
<h1><TMPL_VAR NAME="param1"></h1>
|
|
27
|
+
</body>
|
|
28
|
+
</html>
|
|
29
|
+
|
|
30
|
+
# results
|
|
31
|
+
$ ruby foo.rb
|
|
32
|
+
<html>
|
|
33
|
+
<head></head>
|
|
34
|
+
<body>
|
|
35
|
+
<h1>100</h1>
|
|
36
|
+
</body>
|
|
37
|
+
</html>
|
|
38
|
+
</pre>
|
|
39
|
+
|
|
40
|
+
Template syntax compies with original Perl module's. See also,
|
|
41
|
+
"HTML::Template::SYNTAX":http://search.cpan.org/~viy/HTML-Template-Pro-0.92/lib/HTML/Template/SYNTAX.pod#SYNOPSIS
|
|
42
|
+
|
|
43
|
+
h2. Project
|
|
18
44
|
|
|
19
45
|
<% if rubyforge_project_id %>
|
|
20
46
|
|
|
21
47
|
* rubyforge: "http://rubyforge.org/scm/?group_id=<%= rubyforge_project_id %>":http://rubyforge.org/scm/?group_id=<%= rubyforge_project_id %>
|
|
22
48
|
|
|
23
|
-
<pre>git clone git://rubyforge.org/tmplpro.git</pre>
|
|
24
|
-
|
|
25
49
|
<% else %>
|
|
26
50
|
|
|
27
51
|
* rubyforge: MISSING IN ACTION
|
|
@@ -35,6 +59,8 @@ Or you can hack website/index.txt and make it all go away!!
|
|
|
35
59
|
|
|
36
60
|
<% end %>
|
|
37
61
|
|
|
62
|
+
* rdoc documentations: "http://tmplpro.rubyforge.org/rdoc/":http://tmplpro.rubyforge.org/rdoc/
|
|
63
|
+
|
|
38
64
|
* github: "http://github.com/tom-lpsd/ruby-html-template-pro/tree/master":http://github.com/tom-lpsd/ruby-html-template-pro/tree/master
|
|
39
65
|
|
|
40
66
|
<pre>git clone git://github.com/tom-lpsd/ruby-html-template-pro.git</pre>
|
|
@@ -42,16 +68,18 @@ Or you can hack website/index.txt and make it all go away!!
|
|
|
42
68
|
|
|
43
69
|
h3. Build and test instructions
|
|
44
70
|
|
|
45
|
-
<pre>cd
|
|
71
|
+
<pre>cd ruby-html-template-pro
|
|
46
72
|
rake test
|
|
47
73
|
rake install_gem</pre>
|
|
48
74
|
|
|
49
75
|
|
|
50
76
|
h2. License
|
|
51
77
|
|
|
52
|
-
|
|
78
|
+
This library is free software; you can redistribute it and/or modify
|
|
79
|
+
it under the same terms of the GNU Lesser General Public License as
|
|
80
|
+
published by the Free Software Foundation; either version 2 of the
|
|
81
|
+
License, or (at your option) any later version.
|
|
53
82
|
|
|
54
83
|
h2. Contact
|
|
55
84
|
|
|
56
85
|
Comments are welcome. Send an email to "Tom Tsuruhara":mailto:tom.lpsd@gmail.com
|
|
57
|
-
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: html-template-pro
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tsuruhara Tom
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date: 2009-10-
|
|
12
|
+
date: 2009-10-03 00:00:00 +09:00
|
|
13
13
|
default_executable:
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
@@ -23,14 +23,19 @@ dependencies:
|
|
|
23
23
|
version: 2.3.3
|
|
24
24
|
version:
|
|
25
25
|
description: |-
|
|
26
|
-
A Ruby port of HTML::Template::Pro
|
|
27
|
-
in Perl and XS
|
|
26
|
+
A Ruby port of `HTML::Template::Pro'. `HTML::Template::Pro' is
|
|
27
|
+
template engine originally written in Perl and XS. It's so fast
|
|
28
|
+
because of its C based implementation. Its syntax is very simple.
|
|
29
|
+
This results clearly separation of application logic and its view.
|
|
30
|
+
|
|
31
|
+
Template syntax complies with original perl module's syntax.
|
|
32
|
+
Please see, HTML::Template::SYNTAX[http://search.cpan.org/~viy/HTML-Template-Pro-0.92/lib/HTML/Template/SYNTAX.pod#SYNOPSIS].
|
|
28
33
|
email:
|
|
29
34
|
- tom.lpsd@gmail.com
|
|
30
35
|
executables: []
|
|
31
36
|
|
|
32
37
|
extensions:
|
|
33
|
-
- ext/html/template/
|
|
38
|
+
- ext/html/template/extconf.rb
|
|
34
39
|
extra_rdoc_files:
|
|
35
40
|
- History.txt
|
|
36
41
|
- Manifest.txt
|
|
@@ -46,50 +51,50 @@ files:
|
|
|
46
51
|
- Rakefile
|
|
47
52
|
- benchmark.rb
|
|
48
53
|
- config/website.yml
|
|
49
|
-
- ext/html/template/
|
|
50
|
-
- ext/html/template/
|
|
51
|
-
- ext/html/template/
|
|
52
|
-
- ext/html/template/
|
|
53
|
-
- ext/html/template/
|
|
54
|
-
- ext/html/template/
|
|
55
|
-
- ext/html/template/
|
|
56
|
-
- ext/html/template/
|
|
57
|
-
- ext/html/template/
|
|
58
|
-
- ext/html/template/
|
|
59
|
-
- ext/html/template/
|
|
60
|
-
- ext/html/template/
|
|
61
|
-
- ext/html/template/
|
|
62
|
-
- ext/html/template/
|
|
63
|
-
- ext/html/template/
|
|
64
|
-
- ext/html/template/internal
|
|
65
|
-
- ext/html/template/
|
|
66
|
-
- ext/html/template/
|
|
67
|
-
- ext/html/template/
|
|
68
|
-
- ext/html/template/
|
|
69
|
-
- ext/html/template/
|
|
70
|
-
- ext/html/template/
|
|
71
|
-
- ext/html/template/
|
|
72
|
-
- ext/html/template/
|
|
73
|
-
- ext/html/template/
|
|
74
|
-
- ext/html/template/
|
|
75
|
-
- ext/html/template/
|
|
76
|
-
- ext/html/template/
|
|
77
|
-
- ext/html/template/
|
|
78
|
-
- ext/html/template/
|
|
79
|
-
- ext/html/template/
|
|
80
|
-
- ext/html/template/
|
|
81
|
-
- ext/html/template/
|
|
82
|
-
- ext/html/template/
|
|
83
|
-
- ext/html/template/
|
|
84
|
-
- ext/html/template/
|
|
85
|
-
- ext/html/template/
|
|
86
|
-
- ext/html/template/
|
|
87
|
-
- ext/html/template/
|
|
88
|
-
- ext/html/template/
|
|
89
|
-
- ext/html/template/
|
|
90
|
-
- ext/html/template/
|
|
91
|
-
- ext/html/template/
|
|
92
|
-
- ext/html/template/
|
|
54
|
+
- ext/html/template/Pro.xs
|
|
55
|
+
- ext/html/template/builtin_findfile.inc
|
|
56
|
+
- ext/html/template/calc.h
|
|
57
|
+
- ext/html/template/calc.inc
|
|
58
|
+
- ext/html/template/callback_stubs.inc
|
|
59
|
+
- ext/html/template/expr.c
|
|
60
|
+
- ext/html/template/expr.y
|
|
61
|
+
- ext/html/template/expr_iface.c
|
|
62
|
+
- ext/html/template/exprpstr.h
|
|
63
|
+
- ext/html/template/exprpstr.inc
|
|
64
|
+
- ext/html/template/exprtool.h
|
|
65
|
+
- ext/html/template/exprtool.inc
|
|
66
|
+
- ext/html/template/exprtype.h
|
|
67
|
+
- ext/html/template/exprval.h
|
|
68
|
+
- ext/html/template/extconf.rb
|
|
69
|
+
- ext/html/template/internal.c
|
|
70
|
+
- ext/html/template/loadfile.h
|
|
71
|
+
- ext/html/template/loadfile.inc
|
|
72
|
+
- ext/html/template/pabidecl.h
|
|
73
|
+
- ext/html/template/pabstract.h
|
|
74
|
+
- ext/html/template/parse_expr.h
|
|
75
|
+
- ext/html/template/pbuffer.c
|
|
76
|
+
- ext/html/template/pbuffer.h
|
|
77
|
+
- ext/html/template/pmiscdef.h
|
|
78
|
+
- ext/html/template/pparam.h
|
|
79
|
+
- ext/html/template/ppport.h
|
|
80
|
+
- ext/html/template/procore.c
|
|
81
|
+
- ext/html/template/procore.h
|
|
82
|
+
- ext/html/template/proparam.c
|
|
83
|
+
- ext/html/template/proparam.h
|
|
84
|
+
- ext/html/template/proscope.h
|
|
85
|
+
- ext/html/template/proscope.inc
|
|
86
|
+
- ext/html/template/prostate.h
|
|
87
|
+
- ext/html/template/prostate.inc
|
|
88
|
+
- ext/html/template/provalue.h
|
|
89
|
+
- ext/html/template/pstring.h
|
|
90
|
+
- ext/html/template/pstrutils.h
|
|
91
|
+
- ext/html/template/pstrutils.inc
|
|
92
|
+
- ext/html/template/tagstack.h
|
|
93
|
+
- ext/html/template/tagstack.inc
|
|
94
|
+
- ext/html/template/tmpllog.c
|
|
95
|
+
- ext/html/template/tmpllog.h
|
|
96
|
+
- ext/html/template/tmplpro.h
|
|
97
|
+
- ext/html/template/tmplpro_version.c
|
|
93
98
|
- lib/html/template/pro.rb
|
|
94
99
|
- script/console
|
|
95
100
|
- script/destroy
|
|
@@ -246,7 +251,6 @@ files:
|
|
|
246
251
|
- test/test_complex.rb
|
|
247
252
|
- test/test_helper.rb
|
|
248
253
|
- test/test_html_template.rb
|
|
249
|
-
- test/test_html_template_internal_extn.rb
|
|
250
254
|
- test/test_html_template_pro.rb
|
|
251
255
|
- test/test_path_like_variable_scope.rb
|
|
252
256
|
- test/test_random.rb
|
|
@@ -271,9 +275,9 @@ require_paths:
|
|
|
271
275
|
- ext/html
|
|
272
276
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
273
277
|
requirements:
|
|
274
|
-
- - "
|
|
278
|
+
- - ">"
|
|
275
279
|
- !ruby/object:Gem::Version
|
|
276
|
-
version:
|
|
280
|
+
version: 1.9.0
|
|
277
281
|
version:
|
|
278
282
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
279
283
|
requirements:
|
|
@@ -294,7 +298,6 @@ test_files:
|
|
|
294
298
|
- test/test_complex.rb
|
|
295
299
|
- test/test_helper.rb
|
|
296
300
|
- test/test_html_template.rb
|
|
297
|
-
- test/test_html_template_internal_extn.rb
|
|
298
301
|
- test/test_html_template_pro.rb
|
|
299
302
|
- test/test_path_like_variable_scope.rb
|
|
300
303
|
- test/test_random.rb
|