temple 0.1.3 → 0.1.4
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/.gitignore +3 -0
- data/README.md +17 -18
- data/Rakefile +17 -12
- data/lib/temple.rb +19 -14
- data/lib/temple/engine.rb +13 -18
- data/lib/temple/erb/engine.rb +13 -0
- data/lib/temple/erb/parser.rb +38 -0
- data/lib/temple/erb/template.rb +7 -0
- data/lib/temple/erb/trimming.rb +33 -0
- data/lib/temple/filter.rb +7 -0
- data/lib/temple/filters/debugger.rb +15 -0
- data/lib/temple/filters/dynamic_inliner.rb +11 -19
- data/lib/temple/filters/escape_html.rb +27 -0
- data/lib/temple/filters/multi_flattener.rb +5 -13
- data/lib/temple/filters/static_merger.rb +6 -14
- data/lib/temple/{core.rb → generators.rb} +78 -37
- data/lib/temple/html/fast.rb +79 -127
- data/lib/temple/html/pretty.rb +75 -0
- data/lib/temple/mixins.rb +66 -0
- data/lib/temple/template.rb +35 -0
- data/lib/temple/utils.rb +51 -15
- data/lib/temple/version.rb +3 -0
- data/temple.gemspec +8 -13
- data/test/filters/test_dynamic_inliner.rb +42 -58
- data/test/filters/test_escape_html.rb +32 -0
- data/test/filters/test_multi_flattener.rb +33 -0
- data/test/filters/test_static_merger.rb +21 -23
- data/test/helper.rb +11 -17
- data/test/html/test_fast.rb +153 -0
- data/test/test_erb.rb +68 -0
- data/test/test_generator.rb +69 -76
- data/test/test_utils.rb +28 -0
- metadata +45 -16
- data/lib/temple/engines/erb.rb +0 -93
- data/lib/temple/generator.rb +0 -76
- data/lib/temple/parsers/erb.rb +0 -83
- data/test/engines/hello.erb +0 -4
- data/test/engines/test_erb.rb +0 -495
- data/test/engines/test_erb_m17n.rb +0 -132
- data/test/test_temple.rb +0 -28
@@ -1,132 +0,0 @@
|
|
1
|
-
# -*- coding: UTF-8 -*-
|
2
|
-
require File.dirname(__FILE__) + '/../helper'
|
3
|
-
|
4
|
-
if "".respond_to?(:encoding)
|
5
|
-
class TestTempleEnginesERBM17N < Test::Unit::TestCase
|
6
|
-
def setup
|
7
|
-
Temple::Engines::ERB.rock!
|
8
|
-
end
|
9
|
-
|
10
|
-
def teardown
|
11
|
-
Temple::Engines::ERB.rock!
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_result_encoding
|
15
|
-
erb = ERB.new("hello")
|
16
|
-
assert_equal __ENCODING__, erb.result.encoding
|
17
|
-
|
18
|
-
erb = ERB.new("こんにちは".encode("EUC-JP"))
|
19
|
-
assert_equal Encoding::EUC_JP, erb.result.encoding
|
20
|
-
|
21
|
-
erb = ERB.new("\xC4\xE3\xBA\xC3".force_encoding("EUC-CN"))
|
22
|
-
assert_equal Encoding::EUC_CN, erb.result.encoding
|
23
|
-
|
24
|
-
erb = ERB.new("γεια σας".encode("ISO-8859-7"))
|
25
|
-
assert_equal Encoding::ISO_8859_7, erb.result.encoding
|
26
|
-
|
27
|
-
assert_raise(ArgumentError) {
|
28
|
-
ERB.new("こんにちは".force_encoding("ISO-2022-JP")) # dummy encoding
|
29
|
-
}
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_generate_magic_comment
|
33
|
-
erb = ERB.new("hello")
|
34
|
-
assert_match(/#coding:UTF-8/, erb.src)
|
35
|
-
|
36
|
-
erb = ERB.new("hello".force_encoding("EUC-JP"))
|
37
|
-
assert_match(/#coding:EUC-JP/, erb.src)
|
38
|
-
|
39
|
-
erb = ERB.new("hello".force_encoding("ISO-8859-9"))
|
40
|
-
assert_match(/#coding:ISO-8859-9/, erb.src)
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_literal_encoding
|
44
|
-
erb = ERB.new("literal encoding is <%= 'hello'.encoding %>")
|
45
|
-
assert_match(/literal encoding is UTF-8/, erb.result)
|
46
|
-
|
47
|
-
erb = ERB.new("literal encoding is <%= 'こんにちは'.encoding %>".encode("EUC-JP"))
|
48
|
-
assert_match(/literal encoding is EUC-JP/, erb.result)
|
49
|
-
|
50
|
-
erb = ERB.new("literal encoding is <%= '\xC4\xE3\xBA\xC3'.encoding %>".force_encoding("EUC-CN"))
|
51
|
-
assert_match(/literal encoding is GB2312/, erb.result)
|
52
|
-
end
|
53
|
-
|
54
|
-
def test___ENCODING__
|
55
|
-
erb = ERB.new("__ENCODING__ is <%= __ENCODING__ %>")
|
56
|
-
assert_match(/__ENCODING__ is UTF-8/, erb.result)
|
57
|
-
|
58
|
-
erb = ERB.new("__ENCODING__ is <%= __ENCODING__ %>".force_encoding("EUC-JP"))
|
59
|
-
assert_match(/__ENCODING__ is EUC-JP/, erb.result)
|
60
|
-
|
61
|
-
erb = ERB.new("__ENCODING__ is <%= __ENCODING__ %>".force_encoding("Big5"))
|
62
|
-
assert_match(/__ENCODING__ is Big5/, erb.result)
|
63
|
-
end
|
64
|
-
|
65
|
-
def test_recognize_magic_comment
|
66
|
-
erb = ERB.new(<<-EOS.encode("EUC-KR"))
|
67
|
-
<%# -*- coding: EUC-KR -*- %>
|
68
|
-
안녕하세요
|
69
|
-
EOS
|
70
|
-
assert_match(/#coding:EUC-KR/, erb.src)
|
71
|
-
assert_equal Encoding::EUC_KR, erb.result.encoding
|
72
|
-
|
73
|
-
erb = ERB.new(<<-EOS.encode("EUC-KR").force_encoding("ASCII-8BIT"))
|
74
|
-
<%#-*- coding: EUC-KR -*-%>
|
75
|
-
안녕하세요
|
76
|
-
EOS
|
77
|
-
assert_match(/#coding:EUC-KR/, erb.src)
|
78
|
-
assert_equal Encoding::EUC_KR, erb.result.encoding
|
79
|
-
|
80
|
-
erb = ERB.new(<<-EOS.encode("EUC-KR").force_encoding("ASCII-8BIT"))
|
81
|
-
<%# vim: tabsize=8 encoding=EUC-KR shiftwidth=2 expandtab %>
|
82
|
-
안녕하세요
|
83
|
-
EOS
|
84
|
-
assert_match(/#coding:EUC-KR/, erb.src)
|
85
|
-
assert_equal Encoding::EUC_KR, erb.result.encoding
|
86
|
-
|
87
|
-
erb = ERB.new(<<-EOS.encode("EUC-KR").force_encoding("ASCII-8BIT"))
|
88
|
-
<%#coding:EUC-KR %>
|
89
|
-
안녕하세요
|
90
|
-
EOS
|
91
|
-
assert_match(/#coding:EUC-KR/, erb.src)
|
92
|
-
assert_equal Encoding::EUC_KR, erb.result.encoding
|
93
|
-
|
94
|
-
erb = ERB.new(<<-EOS.encode("EUC-KR").force_encoding("EUC-JP"))
|
95
|
-
<%#coding:EUC-KR %>
|
96
|
-
안녕하세요
|
97
|
-
EOS
|
98
|
-
assert_match(/#coding:EUC-KR/, erb.src)
|
99
|
-
assert_equal Encoding::EUC_KR, erb.result.encoding
|
100
|
-
end
|
101
|
-
|
102
|
-
module M; end
|
103
|
-
def test_method_with_encoding
|
104
|
-
obj = Object.new
|
105
|
-
obj.extend(M)
|
106
|
-
|
107
|
-
erb = ERB.new(<<-EOS.encode("EUC-JP").force_encoding("ASCII-8BIT"))
|
108
|
-
<%#coding:EUC-JP %>
|
109
|
-
literal encoding is <%= 'こんにちは'.encoding %>
|
110
|
-
__ENCODING__ is <%= __ENCODING__ %>
|
111
|
-
EOS
|
112
|
-
erb.def_method(M, :m_from_magic_comment)
|
113
|
-
|
114
|
-
result = obj.m_from_magic_comment
|
115
|
-
assert_equal Encoding::EUC_JP, result.encoding
|
116
|
-
assert_match(/literal encoding is EUC-JP/, result)
|
117
|
-
assert_match(/__ENCODING__ is EUC-JP/, result)
|
118
|
-
|
119
|
-
erb = ERB.new(<<-EOS.encode("EUC-KR"))
|
120
|
-
literal encoding is <%= '안녕하세요'.encoding %>
|
121
|
-
__ENCODING__ is <%= __ENCODING__ %>
|
122
|
-
EOS
|
123
|
-
erb.def_method(M, :m_from_eval_encoding)
|
124
|
-
result = obj.m_from_eval_encoding
|
125
|
-
assert_equal Encoding::EUC_KR, result.encoding
|
126
|
-
assert_match(/literal encoding is EUC-KR/, result)
|
127
|
-
assert_match(/__ENCODING__ is EUC-KR/, result)
|
128
|
-
end
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
# vim:fileencoding=UTF-8
|
data/test/test_temple.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/helper'
|
2
|
-
|
3
|
-
class TestTempleGenerator < Test::Unit::TestCase
|
4
|
-
def spec
|
5
|
-
@spec ||= begin
|
6
|
-
require 'rubygems'
|
7
|
-
require 'rubygems/specification'
|
8
|
-
|
9
|
-
Gem::Specification.load(File.dirname(__FILE__) + '/../temple.gemspec')
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_correct_version
|
14
|
-
assert_equal(spec.version.to_s, Temple::VERSION)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_files_included(base = Temple)
|
18
|
-
return unless base.respond_to?(:constants)
|
19
|
-
|
20
|
-
base.constants.each do |const|
|
21
|
-
if path = base.autoload?(const)
|
22
|
-
assert(spec.files.include?("lib/#{path}.rb"), "gemspec did not include lib/#{path}.rb")
|
23
|
-
else
|
24
|
-
test_files_included(base.const_get(const))
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|