tenjin 0.6.2 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.txt +163 -0
- data/MIT-LICENSE +16 -17
- data/README.txt +5 -5
- data/benchmark/Makefile +9 -0
- data/benchmark/bench.rb +3 -2
- data/bin/rbtenjin +6 -3
- data/doc/docstyle.css +25 -4
- data/doc/users-guide.html +2088 -1563
- data/lib/tenjin.rb +784 -158
- data/public_html/_layout.rbhtml +33 -0
- data/public_html/css/style.css +77 -0
- data/public_html/env.rbhtml +15 -0
- data/public_html/favicon.ico +0 -0
- data/public_html/hello.rbhtml +14 -0
- data/public_html/index.rbhtml +39 -0
- data/public_html/rbtenjin.cgi +188 -0
- data/tenjin.gemspec +9 -6
- data/test/data/examples/preprocessing/main.rb +1 -1
- data/test/data/examples/preprocessing/select.rbhtml +1 -1
- data/test/data/faq/{ex11-bench.rb → ex10-bench.rb} +3 -3
- data/test/data/faq/ex10-content.rbhtml +8 -11
- data/test/data/faq/{ex11-layout1.rbhtml → ex10-layout1.rbhtml} +0 -0
- data/test/data/faq/{ex11-layout2.rbhtml → ex10-layout2.rbhtml} +0 -0
- data/test/data/faq/{ex11.rb → ex10.rb} +1 -1
- data/test/data/faq/{ex11.rbhtml → ex10.rbhtml} +0 -0
- data/test/data/faq/{ex11.source → ex10.source} +2 -2
- data/test/data/faq/{ex11_arraybuffer.result → ex10_arraybuffer.result} +1 -1
- data/test/data/faq/{ex5.rbhtml → ex2.rbhtml} +0 -0
- data/test/data/faq/{ex5_template_args.source → ex2_template_args.source} +1 -1
- data/test/data/faq/{ex7-expr-pattern.rb → ex4-expr-pattern.rb} +1 -1
- data/test/data/faq/{ex7-expr-pattern.rbhtml → ex4-expr-pattern.rbhtml} +0 -0
- data/test/data/faq/{ex7_expr_pattern.result → ex4_expr_pattern.result} +1 -1
- data/test/data/faq/{ex6-content.rhtml → ex5-content.rhtml} +0 -0
- data/test/data/faq/{ex6-layout.rhtml → ex5-layout.rhtml} +0 -0
- data/test/data/faq/{ex6.rb → ex5.rb} +2 -2
- data/test/data/faq/{ex6_eruby.result → ex5_eruby.result} +1 -1
- data/test/data/faq/{ex2-content.rbhtml → ex6-content.rbhtml} +0 -0
- data/test/data/faq/{ex2-layout.rbhtml → ex6-layout.rbhtml} +0 -0
- data/test/data/faq/{ex2_removenl.result → ex6_removenl.result} +1 -1
- data/test/data/faq/ex7-m18n.rb +48 -0
- data/test/data/faq/{ex8-m18n.rbhtml → ex7-m18n.rbhtml} +0 -0
- data/test/data/faq/{ex8_m18n.result → ex7_m18n.result} +1 -1
- data/test/data/faq/ex8-baselayout.rbhtml +8 -0
- data/test/data/faq/ex8-content.rbhtml +6 -0
- data/test/data/faq/{ex9-mylayout.rbhtml → ex8-mylayout.rbhtml} +0 -0
- data/test/data/faq/{ex9_changelayout.result → ex8_changelayout.result} +1 -1
- data/test/data/faq/ex9-baselayout.rbhtml +24 -5
- data/test/data/faq/ex9-content.rbhtml +12 -6
- data/test/data/faq/{ex10-customlayout.rbhtml → ex9-customlayout.rbhtml} +1 -1
- data/test/data/faq/{ex10_inherit.result → ex9_inherit.result} +1 -1
- data/test/data/faq/helpers1.rb +17 -0
- data/test/data/faq/helpers1.rbhtml +4 -0
- data/test/data/faq/helpers1.result +11 -0
- data/test/data/faq/helpers2.rb +21 -0
- data/test/data/faq/helpers2.rbhtml +4 -0
- data/test/data/faq/helpers2.result +11 -0
- data/test/data/faq/weekday1.rb +6 -0
- data/test/data/faq/weekday1.rbhtml +9 -0
- data/test/data/faq/weekday1.result +23 -0
- data/test/data/faq/weekday2.rb +8 -0
- data/test/data/faq/weekday2.rbhtml +10 -0
- data/test/data/faq/weekday2.result +24 -0
- data/test/data/faq/weekday3.rb +22 -0
- data/test/data/faq/weekday3.rbhtml +3 -0
- data/test/data/faq/weekday3.result +28 -0
- data/test/data/users_guide/test_010/main.rb +14 -0
- data/test/data/users_guide/test_010/result.output +13 -0
- data/test/data/users_guide/test_010/views/page.rbhtml +11 -0
- data/test/data/users_guide/test_011/main.rb +14 -0
- data/test/data/users_guide/test_011/result.output +2 -0
- data/test/data/users_guide/test_011/views/page.rbhtml +11 -0
- data/test/data/users_guide/test_020/main.rb +14 -0
- data/test/data/users_guide/test_020/result.output +13 -0
- data/test/data/users_guide/test_020/views/page.rbhtml +11 -0
- data/test/data/users_guide/test_021/main.rb +12 -0
- data/test/data/users_guide/test_021/result.output +12 -0
- data/test/data/users_guide/test_021/views/page.rbhtml +11 -0
- data/test/data/users_guide/test_030/main.rb +14 -0
- data/test/data/users_guide/test_030/result.output +23 -0
- data/test/data/users_guide/test_030/views/_layout.rbhtml +10 -0
- data/test/data/users_guide/test_030/views/page.rbhtml +11 -0
- data/test/data/users_guide/test_040/main.rb +14 -0
- data/test/data/users_guide/test_040/result.output +23 -0
- data/test/data/users_guide/test_040/views/_layout.rbhtml +10 -0
- data/test/data/users_guide/test_040/views/page.rbhtml +12 -0
- data/test/data/users_guide/test_050/main.rb +14 -0
- data/test/data/users_guide/test_050/result.output +14 -0
- data/test/data/users_guide/test_050/views/_layout.rbhtml +10 -0
- data/test/data/users_guide/test_050/views/page.rbhtml +13 -0
- data/test/data/users_guide/test_051/main.rb +14 -0
- data/test/data/users_guide/test_051/result.output +12 -0
- data/test/data/users_guide/test_051/views/_layout.rbhtml +11 -0
- data/test/data/users_guide/test_051/views/page.rbhtml +13 -0
- data/test/data/users_guide/test_060/main.rb +14 -0
- data/test/data/users_guide/test_060/result.output +29 -0
- data/test/data/users_guide/test_060/views/_footer.rbhtml +3 -0
- data/test/data/users_guide/test_060/views/_header.rbhtml +3 -0
- data/test/data/users_guide/test_060/views/_layout.rbhtml +13 -0
- data/test/data/users_guide/test_060/views/page.rbhtml +13 -0
- data/test/data/users_guide/test_070/main.rb +14 -0
- data/test/data/users_guide/test_070/result.output +29 -0
- data/test/data/users_guide/test_070/views/_footer.rbhtml +3 -0
- data/test/data/users_guide/test_070/views/_header.rbhtml +3 -0
- data/test/data/users_guide/test_070/views/_layout.rbhtml +13 -0
- data/test/data/users_guide/test_070/views/page.rbhtml +13 -0
- data/test/data/users_guide/test_capturing/main.rb +24 -0
- data/test/data/users_guide/test_capturing/result.output +28 -0
- data/test/data/users_guide/test_capturing/views/_layout.rbhtml +21 -0
- data/test/data/users_guide/test_capturing/views/blog-post.rbhtml +13 -0
- data/test/data/users_guide/test_context/context.rb +5 -0
- data/test/data/users_guide/test_context/context.yaml +4 -0
- data/test/data/users_guide/test_context/example.rbhtml +5 -0
- data/test/data/users_guide/test_context/result1.output +6 -0
- data/test/data/users_guide/test_context/result2.output +6 -0
- data/test/data/users_guide/test_context/result3.output +6 -0
- data/test/data/users_guide/test_context/result4.output +6 -0
- data/test/data/users_guide/test_convert/example.rbhtml +5 -0
- data/test/data/users_guide/test_convert/result1.output +7 -0
- data/test/data/users_guide/test_convert/result2.output +6 -0
- data/test/data/users_guide/test_escape/main.rb +4 -0
- data/test/data/users_guide/test_escape/result.output +5 -0
- data/test/data/users_guide/test_escape/views/page.rbhtml +4 -0
- data/test/data/users_guide/test_execute/example.rbhtml +6 -0
- data/test/data/users_guide/test_execute/result.output +6 -0
- data/test/data/users_guide/test_fragmentcache/cache.d/items/1 +5 -0
- data/test/data/users_guide/test_fragmentcache/main.rb +21 -0
- data/test/data/users_guide/test_fragmentcache/result.output +8 -0
- data/test/data/users_guide/test_fragmentcache/result2.output +6 -0
- data/test/data/users_guide/test_fragmentcache/views/items.rbhtml +10 -0
- data/test/data/users_guide/test_logging/ex-logger.rb +11 -0
- data/test/data/users_guide/test_logging/example.rbhtml +0 -0
- data/test/data/users_guide/test_logging/result1.output +3 -0
- data/test/data/users_guide/test_logging/result2.output +2 -0
- data/test/data/users_guide/test_m17n/m17n.rb +44 -0
- data/test/data/users_guide/test_m17n/m17n.rbhtml +5 -0
- data/test/data/users_guide/test_m17n/result.output +9 -0
- data/test/data/users_guide/test_m17n/result_en.output +4 -0
- data/test/data/users_guide/test_m17n/result_fr.output +4 -0
- data/test/data/users_guide/test_nested/main.rb +8 -0
- data/test/data/users_guide/test_nested/result.output +15 -0
- data/test/data/users_guide/test_nested/views/_blog_layout.rbhtml +5 -0
- data/test/data/users_guide/{layout8_html.rbhtml → test_nested/views/_site_layout.rbhtml} +0 -0
- data/test/data/users_guide/test_nested/views/blog_post.rbhtml +4 -0
- data/test/data/users_guide/test_preprocessing/pp-example1.rb +14 -0
- data/test/data/users_guide/test_preprocessing/result1a.output +11 -0
- data/test/data/users_guide/test_preprocessing/result1b.output +5 -0
- data/test/data/users_guide/test_preprocessing/result1c.output +6 -0
- data/test/data/users_guide/test_preprocessing/result2a.output +10 -0
- data/test/data/users_guide/test_preprocessing/result2b.output +10 -0
- data/test/data/users_guide/test_preprocessing/result3a.output +2 -0
- data/test/data/users_guide/test_preprocessing/result3b.output +2 -0
- data/test/data/users_guide/test_preprocessing/views/pp-example1.rbhtml +4 -0
- data/test/data/users_guide/{example12.rbhtml → test_preprocessing/views/pp-example2.rbhtml} +4 -4
- data/test/data/users_guide/test_preprocessing/views/pp-example3.rbhtml +7 -0
- data/test/data/users_guide/test_retrieve/example.rbhtml +10 -0
- data/test/data/users_guide/test_retrieve/result1.output +11 -0
- data/test/data/users_guide/test_retrieve/result2.output +11 -0
- data/test/data/users_guide/test_retrieve/result3.output +11 -0
- data/test/data/users_guide/test_retrieve/result4.output +8 -0
- data/test/data/users_guide/test_retrieve/result5.output +5 -0
- data/test/data/users_guide/test_safe/result.output +6 -0
- data/test/data/users_guide/test_safe/safe-test.rb +21 -0
- data/test/data/users_guide/test_safehelper/main.rb +16 -0
- data/test/data/users_guide/test_safehelper/result.output +8 -0
- data/test/data/users_guide/{example3.rbhtml → test_syntax_check/example.rbhtml} +0 -0
- data/test/data/users_guide/test_syntax_check/result.output +2 -0
- data/test/data/users_guide/test_trace/layout.rbhtml +7 -0
- data/test/data/users_guide/test_trace/main.rbhtml +5 -0
- data/test/data/users_guide/test_trace/result.output +16 -0
- data/test/data/users_guide/test_trace/trace-example.rb +4 -0
- data/test/oktest.rb +755 -0
- data/test/test_all.rb +24 -14
- data/test/test_engine.rb +628 -63
- data/test/test_engine.yaml +40 -3
- data/test/test_examples.rb +14 -12
- data/test/test_faq.rb +17 -12
- data/test/test_htmlhelper.rb +104 -33
- data/test/test_main.rb +32 -21
- data/test/test_main.yaml +2 -2
- data/test/test_safe.rb +206 -0
- data/test/test_store.rb +220 -0
- data/test/test_tcache.rb +94 -0
- data/test/test_template.rb +65 -23
- data/test/test_template.yaml +7 -7
- data/test/test_users_guide.rb +75 -29
- data/test/testcase-helper.rb +20 -18
- data/test/testunit-assertions.rb +71 -0
- metadata +185 -159
- data/doc-api/classes/Tenjin.html +0 -141
- data/doc-api/classes/Tenjin/ArrayBufferTemplate.html +0 -270
- data/doc-api/classes/Tenjin/BaseContext.html +0 -329
- data/doc-api/classes/Tenjin/Context.html +0 -126
- data/doc-api/classes/Tenjin/ContextHelper.html +0 -461
- data/doc-api/classes/Tenjin/Engine.html +0 -616
- data/doc-api/classes/Tenjin/ErubisTemplate.html +0 -166
- data/doc-api/classes/Tenjin/HtmlHelper.html +0 -359
- data/doc-api/classes/Tenjin/Preprocessor.html +0 -242
- data/doc-api/classes/Tenjin/Template.html +0 -916
- data/doc-api/created.rid +0 -1
- data/doc-api/files/README_txt.html +0 -188
- data/doc-api/files/lib/tenjin_rb.html +0 -136
- data/doc-api/fr_class_index.html +0 -36
- data/doc-api/fr_file_index.html +0 -28
- data/doc-api/fr_method_index.html +0 -91
- data/doc-api/index.html +0 -24
- data/doc-api/rdoc-style.css +0 -208
- data/doc/examples.html +0 -312
- data/doc/faq.html +0 -909
- data/examples/preprocessing/select.rbhtml.cache +0 -17
- data/test/Rookbook.yaml +0 -14
- data/test/assert-text-equal.rb +0 -45
- data/test/data/faq/ex10-baselayout.rbhtml +0 -27
- data/test/data/faq/ex11-content.rbhtml +0 -9
- data/test/data/faq/ex8-m18n.rb +0 -77
- data/test/data/users_guide/content6.rbhtml +0 -3
- data/test/data/users_guide/content7.rbhtml +0 -5
- data/test/data/users_guide/content8.rbhtml +0 -2
- data/test/data/users_guide/contextdata.rb +0 -7
- data/test/data/users_guide/datafile.rb +0 -5
- data/test/data/users_guide/datafile.yaml +0 -10
- data/test/data/users_guide/ex.rbhtml +0 -6
- data/test/data/users_guide/ex.result +0 -7
- data/test/data/users_guide/ex.script +0 -5
- data/test/data/users_guide/ex_script.result +0 -7
- data/test/data/users_guide/ex_source.result +0 -8
- data/test/data/users_guide/example1.rbhtml +0 -12
- data/test/data/users_guide/example1.result +0 -17
- data/test/data/users_guide/example10.rbhtml +0 -4
- data/test/data/users_guide/example10_template_args.result +0 -6
- data/test/data/users_guide/example11.rbhtml +0 -5
- data/test/data/users_guide/example11_template_args_result +0 -2
- data/test/data/users_guide/example12_preprocessed.result +0 -10
- data/test/data/users_guide/example12_preprocessed_source.result +0 -10
- data/test/data/users_guide/example13.rbhtml +0 -6
- data/test/data/users_guide/example13_preprocessed.result +0 -2
- data/test/data/users_guide/example13_preprocessed_source.result +0 -2
- data/test/data/users_guide/example14.rb +0 -32
- data/test/data/users_guide/example14.rbhtml +0 -6
- data/test/data/users_guide/example14_tmplclass.result +0 -15
- data/test/data/users_guide/example15.rb +0 -10
- data/test/data/users_guide/example15_escapefunc.result +0 -14
- data/test/data/users_guide/example16.rbhtml +0 -4
- data/test/data/users_guide/example16a.rb +0 -10
- data/test/data/users_guide/example16a.result +0 -4
- data/test/data/users_guide/example16b.rb +0 -13
- data/test/data/users_guide/example16b.result +0 -4
- data/test/data/users_guide/example16c.rb +0 -12
- data/test/data/users_guide/example16c.result +0 -4
- data/test/data/users_guide/example16d.rb +0 -27
- data/test/data/users_guide/example16d.result +0 -4
- data/test/data/users_guide/example1_S.result +0 -14
- data/test/data/users_guide/example1_SXNC.result +0 -10
- data/test/data/users_guide/example1_source.result +0 -14
- data/test/data/users_guide/example2.rbhtml +0 -3
- data/test/data/users_guide/example2_sb.result2 +0 -9
- data/test/data/users_guide/example3_syntaxcheck.result +0 -2
- data/test/data/users_guide/example4.rbhtml +0 -13
- data/test/data/users_guide/example4_datafile_rb.result +0 -13
- data/test/data/users_guide/example4_yaml.result +0 -13
- data/test/data/users_guide/example5.rbhtml +0 -9
- data/test/data/users_guide/example5_datastr_rb.result +0 -9
- data/test/data/users_guide/example5_datastr_yaml.result +0 -9
- data/test/data/users_guide/example6.rbhtml +0 -19
- data/test/data/users_guide/example6_layout.result +0 -29
- data/test/data/users_guide/example6_nested.result +0 -28
- data/test/data/users_guide/example7_layout2.result +0 -13
- data/test/data/users_guide/example8_layout3.result +0 -8
- data/test/data/users_guide/example9.rbhtml +0 -18
- data/test/data/users_guide/example9_capture.result +0 -26
- data/test/data/users_guide/footer.html +0 -5
- data/test/data/users_guide/footer.rbhtml +0 -4
- data/test/data/users_guide/layout6.rbhtml +0 -17
- data/test/data/users_guide/layout7.rbhtml +0 -9
- data/test/data/users_guide/layout8_xhtml.rbhtml +0 -6
- data/test/data/users_guide/layout9.rbhtml +0 -25
- data/test/data/users_guide/sidemenu.rbhtml +0 -5
- data/test/data/users_guide/user_app.cgi +0 -39
- data/test/data/users_guide/user_app.result +0 -30
- data/test/data/users_guide/user_create.rbhtml +0 -6
- data/test/data/users_guide/user_edit.rbhtml +0 -7
- data/test/data/users_guide/user_form.rbhtml +0 -10
- data/test/data/users_guide/user_layout.rbhtml +0 -16
@@ -1,17 +0,0 @@
|
|
1
|
-
_buf << %Q`<form>
|
2
|
-
<label>Select your language:</label>
|
3
|
-
<select name="lang">\n`
|
4
|
-
table = { @params[:lang] => ' selected="selected"' }
|
5
|
-
_buf << %Q` <option value="en" #{table["en"]}>Engilish</option>
|
6
|
-
<option value="fr" #{table["fr"]}>French</option>
|
7
|
-
<option value="de" #{table["de"]}>German</option>
|
8
|
-
<option value="es" #{table["es"]}>Spanish</option>
|
9
|
-
<option value="ch" #{table["ch"]}>Chinese</option>
|
10
|
-
<option value="ja" #{table["ja"]}>Japanese</option>
|
11
|
-
</select>
|
12
|
-
<input type="submit" value="OK" />
|
13
|
-
</form>
|
14
|
-
<p>
|
15
|
-
<a href="/app/index">Back</a> |
|
16
|
-
<a href="/app/show/#{@params[:id]}">Show #{escape((@params[:name]).to_s)}</a>
|
17
|
-
</p>\n`
|
data/test/Rookbook.yaml
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
|
2
|
-
recipes:
|
3
|
-
|
4
|
-
- product: :clean
|
5
|
-
method*: |
|
6
|
-
rm_rf '**/*.rbc', 'test.log'
|
7
|
-
|
8
|
-
- product: :ruby_test
|
9
|
-
method*: |
|
10
|
-
sys 'ruby test_all.rb 2>&1 | tee test.log'
|
11
|
-
|
12
|
-
- product: :rubinius_test
|
13
|
-
method*: |
|
14
|
-
sys 'rubinius test_all.rb 2>&1 | tee test.log'
|
data/test/assert-text-equal.rb
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
###
|
2
|
-
### $Rev: 30 $
|
3
|
-
### 0.6.2
|
4
|
-
### copyright(c) 2007-2008 kuwata-lab.com all rights reserved.
|
5
|
-
###
|
6
|
-
|
7
|
-
require 'test/unit'
|
8
|
-
require 'tempfile'
|
9
|
-
|
10
|
-
|
11
|
-
module Test
|
12
|
-
module Unit
|
13
|
-
class TestCase
|
14
|
-
|
15
|
-
def assert_text_equal(expected, actual, message=nil, diffopt='-u', flag_cut=true)
|
16
|
-
if expected == actual
|
17
|
-
assert(true)
|
18
|
-
return
|
19
|
-
end
|
20
|
-
if expected && actual && (expected[-1] != ?\n || actual[-1] != ?\n)
|
21
|
-
expected += "\n"
|
22
|
-
actual += "\n"
|
23
|
-
end
|
24
|
-
begin
|
25
|
-
expfile = Tempfile.new(".expected.")
|
26
|
-
expfile.write(expected); expfile.flush()
|
27
|
-
actfile = Tempfile.new(".actual.")
|
28
|
-
actfile.write(actual); actfile.flush()
|
29
|
-
diff = `diff #{diffopt} #{expfile.path} #{actfile.path}`
|
30
|
-
ensure
|
31
|
-
expfile.close(true) if expfile
|
32
|
-
actfile.close(true) if actfile
|
33
|
-
end
|
34
|
-
# cut 1st & 2nd lines
|
35
|
-
message = (flag_cut ? diff.gsub(/\A.*\n.*\n/, '') : diff) unless message
|
36
|
-
#raise Test::Unit::AssertionFailedError.new(message)
|
37
|
-
assert_block(message) { false } # or assert(false, message)
|
38
|
-
end
|
39
|
-
|
40
|
-
alias assert_equal_with_diff assert_text_equal # for compatibility
|
41
|
-
alias assert_text_equals assert_text_equal # for typo
|
42
|
-
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
<html>
|
2
|
-
<body>
|
3
|
-
|
4
|
-
<?rb ## if variable '@header_part' is defined then print it, ?>
|
5
|
-
<?rb ## else print default header part. ?>
|
6
|
-
<div id="header">
|
7
|
-
<?rb unless captured_as(:header_part) ?>
|
8
|
-
<img src="img/logo.png" alt="logo" ?>
|
9
|
-
<?rb end ?>
|
10
|
-
</div>
|
11
|
-
|
12
|
-
<?rb ## main content part ?>
|
13
|
-
<div id="content">
|
14
|
-
<?rb _buf << @content_part ?>
|
15
|
-
</div>
|
16
|
-
|
17
|
-
<?rb ## if variable '@footer_part' is defined then print it, ?>
|
18
|
-
<?rb ## else print default footer part. ?>
|
19
|
-
<div id="footer">
|
20
|
-
<?rb unless captured_as(:footer_part) ?>
|
21
|
-
<hr />
|
22
|
-
<em>webmaster@example.com</em>
|
23
|
-
<?rb end ?>
|
24
|
-
</div>
|
25
|
-
|
26
|
-
</body>
|
27
|
-
</html>
|
data/test/data/faq/ex8-m18n.rb
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
require 'tenjin'
|
2
|
-
|
3
|
-
##
|
4
|
-
## message catalog to translate message
|
5
|
-
##
|
6
|
-
MESSAGE_CATALOG = {
|
7
|
-
'en' => { 'Hello' => 'Hello',
|
8
|
-
'Good bye'=> 'Good bye', },
|
9
|
-
'fr' => { 'Hello' => 'Bonjour',
|
10
|
-
'Good bye'=> 'Au revoir', },
|
11
|
-
}
|
12
|
-
|
13
|
-
|
14
|
-
##
|
15
|
-
## add translation method to Context class
|
16
|
-
##
|
17
|
-
class Tenjin::Context
|
18
|
-
|
19
|
-
def _(message_key)
|
20
|
-
message_dict = MESSAGE_CATALOG[@_lang]
|
21
|
-
return message_key unless message_dict
|
22
|
-
return message_dict[message_key] || message_key
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
|
28
|
-
##
|
29
|
-
## engine class which supports M17N
|
30
|
-
##
|
31
|
-
class M17NEngine < Tenjin::Engine
|
32
|
-
|
33
|
-
attr_accessor :lang
|
34
|
-
|
35
|
-
## constructor takes ':lang' options
|
36
|
-
def initialize(properties={})
|
37
|
-
super(properties)
|
38
|
-
@lang = properties[:lang] || 'en' # set language
|
39
|
-
end
|
40
|
-
|
41
|
-
## change cache filename to 'file.html.lang.cache'
|
42
|
-
def cachename(filename)
|
43
|
-
return "#{filename}.#{@lang}.cache"
|
44
|
-
end
|
45
|
-
|
46
|
-
## set language to context object
|
47
|
-
def hook_context(context)
|
48
|
-
context = super(context)
|
49
|
-
context['_lang'] = @lang
|
50
|
-
return context
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
54
|
-
|
55
|
-
|
56
|
-
##
|
57
|
-
## test program
|
58
|
-
##
|
59
|
-
if $0 == __FILE__
|
60
|
-
|
61
|
-
template_name = 'ex8-m18n.rbhtml'
|
62
|
-
context = { :username => 'World' }
|
63
|
-
|
64
|
-
## engine for english
|
65
|
-
engine = M17NEngine.new(:preprocess=>true)
|
66
|
-
output = engine.render(template_name, context) # same template
|
67
|
-
puts "--- lang: %s ---" % engine.lang
|
68
|
-
puts output
|
69
|
-
puts
|
70
|
-
|
71
|
-
## engine for French
|
72
|
-
engine = M17NEngine.new(:preprocess=>true, :lang=>'fr')
|
73
|
-
output = engine.render(template_name, context) # same template
|
74
|
-
puts "--- lang: %s ---" % engine.lang
|
75
|
-
puts output
|
76
|
-
|
77
|
-
end
|
@@ -1,10 +0,0 @@
|
|
1
|
-
$ rbtenjin -P example12.rbhtml
|
2
|
-
<?rb chk = { @params['state'] => ' selected="selected"' } ?>
|
3
|
-
<select name="state">
|
4
|
-
<option value="">-</option>
|
5
|
-
<option value="CA"#{chk["CA"]}>California</option>
|
6
|
-
<option value="FL"#{chk["FL"]}>Florida</option>
|
7
|
-
<option value="HI"#{chk["HI"]}>Hawaii</option>
|
8
|
-
<option value="NY"#{chk["NY"]}>New York</option>
|
9
|
-
<option value="TX"#{chk["TX"]}>Texas</option>
|
10
|
-
</select>
|
@@ -1,10 +0,0 @@
|
|
1
|
-
$ rbtenjin --preprocess -sb example12.rbhtml
|
2
|
-
chk = { @params['state'] => ' selected="selected"' }
|
3
|
-
_buf << %Q`<select name="state">
|
4
|
-
<option value="">-</option>
|
5
|
-
<option value="CA"#{chk["CA"]}>California</option>
|
6
|
-
<option value="FL"#{chk["FL"]}>Florida</option>
|
7
|
-
<option value="HI"#{chk["HI"]}>Hawaii</option>
|
8
|
-
<option value="NY"#{chk["NY"]}>New York</option>
|
9
|
-
<option value="TX"#{chk["TX"]}>Texas</option>
|
10
|
-
</select>\n`
|
@@ -1,6 +0,0 @@
|
|
1
|
-
<?RB require 'cgi' ?>
|
2
|
-
<?RB ## ex. link_to('Show', '/show/1') => <a href="/show/1">Show</a> ?>
|
3
|
-
<?RB def link_to(label, url) ?>
|
4
|
-
<?RB return "<a href=\"#{CGI.unescape(url)}\">#{label}</a>" ?>
|
5
|
-
<?RB end ?>
|
6
|
-
#{{link_to 'Show '+_P('@params["name"]'), '/items/show/'+_p('@params["id"]')}}
|
@@ -1,32 +0,0 @@
|
|
1
|
-
## template file
|
2
|
-
filename = 'example14.rbhtml'
|
3
|
-
|
4
|
-
## convert into ruby code
|
5
|
-
require 'tenjin'
|
6
|
-
template = Tenjin::Template.new(filename)
|
7
|
-
## or
|
8
|
-
# template = Tenjin::Template.new()
|
9
|
-
# script = template.convert_file(filename)
|
10
|
-
## or
|
11
|
-
# template = Tenjin::Template.new()
|
12
|
-
# input = File.read(filename)
|
13
|
-
# script = template.convert(input, filename) # filename is optional
|
14
|
-
|
15
|
-
## show converted ruby code
|
16
|
-
puts "---- ruby code ----"
|
17
|
-
puts template.script
|
18
|
-
|
19
|
-
## evaluate ruby code
|
20
|
-
hash = {:title=>'rbTenjin Example', :items=>['<AAA>','B&B','"CCC"']}
|
21
|
-
output = template.render(hash)
|
22
|
-
puts "---- output ----"
|
23
|
-
puts output
|
24
|
-
## or
|
25
|
-
#hash = {:title=>'rbTenjin Example', :items=>['<AAA>','B&B','"CCC"']}
|
26
|
-
#context = Tenjin::Context.new(hash)
|
27
|
-
#output = template.render(context)
|
28
|
-
## or
|
29
|
-
# context = Tenjin::Context.new
|
30
|
-
# context[:title] = 'rbTenjin Example'
|
31
|
-
# context[:items] = ['<AAA>','B&B','"CCC"']
|
32
|
-
# output = template.render(context)
|
@@ -1,15 +0,0 @@
|
|
1
|
-
$ ruby example14.rb
|
2
|
-
---- ruby code ----
|
3
|
-
_buf << %Q`<h1>#{@title}</h1>
|
4
|
-
<ul>\n`
|
5
|
-
for item in @items
|
6
|
-
_buf << %Q` <li>#{escape((item).to_s)}</li>\n`
|
7
|
-
end
|
8
|
-
_buf << %Q`</ul>\n`
|
9
|
-
---- output ----
|
10
|
-
<h1>rbTenjin Example</h1>
|
11
|
-
<ul>
|
12
|
-
<li><AAA></li>
|
13
|
-
<li>B&B</li>
|
14
|
-
<li>"CCC"</li>
|
15
|
-
</ul>
|
@@ -1,10 +0,0 @@
|
|
1
|
-
require 'tenjin'
|
2
|
-
filename = 'example14.rbhtml'
|
3
|
-
template = Tenjin::Template.new(filename, :escapefunc=>'CGI.escapeHTML')
|
4
|
-
print template.script, "\n"
|
5
|
-
|
6
|
-
require 'cgi'
|
7
|
-
title = 'rbTenjin Example'
|
8
|
-
items = ['<foo>', '&bar', '"baz"']
|
9
|
-
output = template.render(:title=>title, :items=>items)
|
10
|
-
print output
|