kwartz 3.1.2 → 3.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.
Files changed (140) hide show
  1. data/CHANGES +444 -0
  2. data/README.txt +4 -1
  3. data/bin/kwartz +2 -2
  4. data/doc-api/classes/Kwartz.html +16 -7
  5. data/doc-api/classes/Kwartz/Assertion.html +6 -6
  6. data/doc-api/classes/Kwartz/AssertionError.html +6 -6
  7. data/doc-api/classes/Kwartz/AttrInfo.html +71 -61
  8. data/doc-api/classes/Kwartz/BaseError.html +12 -12
  9. data/doc-api/classes/Kwartz/BaseTranslator.html +104 -74
  10. data/doc-api/classes/Kwartz/CharacterType.html +24 -24
  11. data/doc-api/classes/Kwartz/CommandOptionError.html +7 -7
  12. data/doc-api/classes/Kwartz/CommandOptions.html +50 -50
  13. data/doc-api/classes/Kwartz/Config.html +5 -0
  14. data/doc-api/classes/Kwartz/ConvertError.html +12 -12
  15. data/doc-api/classes/Kwartz/Converter.html +31 -33
  16. data/doc-api/classes/Kwartz/CssStyleParser.html +207 -168
  17. data/doc-api/classes/Kwartz/Defun.html +32 -31
  18. data/doc-api/classes/Kwartz/{HandlerArgument.html → Directive.html} +27 -53
  19. data/doc-api/classes/Kwartz/ElementInfo.html +68 -53
  20. data/doc-api/classes/Kwartz/EperlExpressionParser.html +185 -0
  21. data/doc-api/classes/Kwartz/EperlHandler.html +65 -58
  22. data/doc-api/classes/Kwartz/EperlTranslator.html +14 -7
  23. data/doc-api/classes/Kwartz/ErubisTranslator.html +14 -7
  24. data/doc-api/classes/Kwartz/ErubyTranslator.html +14 -7
  25. data/doc-api/classes/Kwartz/ExpandStatement.html +20 -20
  26. data/doc-api/classes/Kwartz/Expander.html +358 -0
  27. data/doc-api/classes/Kwartz/Handler.html +287 -157
  28. data/doc-api/classes/Kwartz/{StatementHelper.html → HandlerHelper.html} +307 -112
  29. data/doc-api/classes/Kwartz/Helper/ActionViewHelper.html +23 -23
  30. data/doc-api/classes/Kwartz/Helper/RailsTemplate.html +96 -96
  31. data/doc-api/classes/Kwartz/JstlExpressionParser.html +181 -0
  32. data/doc-api/classes/Kwartz/JstlHandler.html +134 -126
  33. data/doc-api/classes/Kwartz/JstlTranslator.html +21 -14
  34. data/doc-api/classes/Kwartz/KwartzError.html +6 -6
  35. data/doc-api/classes/Kwartz/Main.html +4 -4
  36. data/doc-api/classes/Kwartz/NativeExpression.html +19 -19
  37. data/doc-api/classes/Kwartz/NativeStatement.html +24 -24
  38. data/doc-api/classes/Kwartz/Node.html +7 -7
  39. data/doc-api/classes/Kwartz/PIErubisTranslator.html +21 -14
  40. data/doc-api/classes/Kwartz/ParseError.html +6 -6
  41. data/doc-api/classes/Kwartz/PerlExpressionParser.html +185 -0
  42. data/doc-api/classes/Kwartz/PerlHandler.html +353 -0
  43. data/doc-api/classes/Kwartz/PerlTranslator.html +226 -0
  44. data/doc-api/classes/Kwartz/PhpExpressionParser.html +185 -0
  45. data/doc-api/classes/Kwartz/PhpHandler.html +63 -56
  46. data/doc-api/classes/Kwartz/PhpTranslator.html +21 -14
  47. data/doc-api/classes/Kwartz/PresentationLogicParser.html +126 -123
  48. data/doc-api/classes/Kwartz/PrintStatement.html +18 -18
  49. data/doc-api/classes/Kwartz/RailsHandler.html +84 -85
  50. data/doc-api/classes/Kwartz/RailsTranslator.html +13 -6
  51. data/doc-api/classes/Kwartz/RubyExpressionParser.html +180 -0
  52. data/doc-api/classes/Kwartz/RubyHandler.html +73 -69
  53. data/doc-api/classes/Kwartz/RubyStyleParser.html +86 -86
  54. data/doc-api/classes/Kwartz/RubyTranslator.html +28 -21
  55. data/doc-api/classes/Kwartz/Ruleset.html +622 -1
  56. data/doc-api/classes/Kwartz/StrutsTranslator.html +14 -14
  57. data/doc-api/classes/Kwartz/TagInfo.html +52 -27
  58. data/doc-api/classes/Kwartz/TextConverter.html +75 -37
  59. data/doc-api/classes/Kwartz/Translator.html +54 -53
  60. data/doc-api/classes/Kwartz/Util.html +25 -25
  61. data/doc-api/created.rid +1 -1
  62. data/doc-api/files/__/README_txt.html +7 -2
  63. data/doc-api/files/kwartz/assert_rb.html +2 -2
  64. data/doc-api/files/kwartz/binding/eperl_rb.html +2 -2
  65. data/doc-api/files/kwartz/binding/erubis_rb.html +2 -2
  66. data/doc-api/files/kwartz/binding/eruby_rb.html +2 -2
  67. data/doc-api/files/kwartz/binding/jstl_rb.html +2 -2
  68. data/doc-api/files/kwartz/binding/perl_rb.html +115 -0
  69. data/doc-api/files/kwartz/binding/php_rb.html +2 -2
  70. data/doc-api/files/kwartz/binding/pierubis_rb.html +2 -2
  71. data/doc-api/files/kwartz/binding/rails_rb.html +2 -2
  72. data/doc-api/files/kwartz/binding/ruby_rb.html +2 -2
  73. data/doc-api/files/kwartz/binding/struts_rb.html +2 -2
  74. data/doc-api/files/kwartz/config_rb.html +2 -2
  75. data/doc-api/files/kwartz/converter_rb.html +2 -2
  76. data/doc-api/files/kwartz/defun_rb.html +2 -2
  77. data/doc-api/files/kwartz/error_rb.html +2 -2
  78. data/doc-api/files/kwartz/helper/rails_rb.html +2 -2
  79. data/doc-api/files/kwartz/main_rb.html +3 -2
  80. data/doc-api/files/kwartz/node_rb.html +2 -2
  81. data/doc-api/files/kwartz/parser_rb.html +2 -2
  82. data/doc-api/files/kwartz/translator_rb.html +2 -2
  83. data/doc-api/files/kwartz/util/assert-text-equal_rb.html +2 -2
  84. data/doc-api/files/kwartz/util/testcase-helper_rb.html +2 -2
  85. data/doc-api/files/kwartz/util_rb.html +2 -2
  86. data/doc-api/files/kwartz_rb.html +2 -2
  87. data/doc-api/fr_class_index.html +10 -5
  88. data/doc-api/fr_file_index.html +1 -0
  89. data/doc-api/fr_method_index.html +268 -239
  90. data/doc/docstyle.css +9 -3
  91. data/doc/img/fig05.png +0 -0
  92. data/doc/introduction-to-kwartz.html +3040 -0
  93. data/doc/pattern-catalog.html +5 -3
  94. data/doc/reference.html +680 -26
  95. data/doc/users-guide.html +222 -67
  96. data/kwartz.gemspec +4 -4
  97. data/lib/kwartz.rb +3 -3
  98. data/lib/kwartz/assert.rb +2 -2
  99. data/lib/kwartz/binding/eperl.rb +71 -31
  100. data/lib/kwartz/binding/erubis.rb +3 -2
  101. data/lib/kwartz/binding/eruby.rb +3 -2
  102. data/lib/kwartz/binding/jstl.rb +66 -29
  103. data/lib/kwartz/binding/perl.rb +230 -0
  104. data/lib/kwartz/binding/php.rb +69 -29
  105. data/lib/kwartz/binding/pierubis.rb +3 -2
  106. data/lib/kwartz/binding/rails.rb +18 -18
  107. data/lib/kwartz/binding/ruby.rb +74 -42
  108. data/lib/kwartz/binding/struts.rb +22 -21
  109. data/lib/kwartz/config.rb +4 -4
  110. data/lib/kwartz/converter.rb +465 -345
  111. data/lib/kwartz/defun.rb +2 -2
  112. data/lib/kwartz/error.rb +2 -2
  113. data/lib/kwartz/helper/rails.rb +2 -2
  114. data/lib/kwartz/main.rb +5 -4
  115. data/lib/kwartz/node.rb +92 -144
  116. data/lib/kwartz/parser.rb +112 -103
  117. data/lib/kwartz/translator.rb +14 -6
  118. data/lib/kwartz/util.rb +2 -2
  119. data/lib/kwartz/util/assert-text-equal.rb +2 -2
  120. data/lib/kwartz/util/testcase-helper.rb +1 -1
  121. data/test/test-compile.rb +2 -2
  122. data/test/test-compile.yaml +81 -0
  123. data/test/test-converter.rb +4 -8
  124. data/test/test-converter.yaml +152 -3
  125. data/test/test-directives.rb +2 -2
  126. data/test/test-directives.yaml +222 -0
  127. data/test/test-main.rb +6 -4
  128. data/test/test-main.yaml +66 -1
  129. data/test/test-parser.rb +12 -3
  130. data/test/test-parser.yaml +64 -51
  131. data/test/test-rails.rb +2 -2
  132. data/test/test-ruleset.rb +2 -2
  133. data/test/test-ruleset.yaml +465 -4
  134. data/test/test.log +6 -0
  135. data/test/test.rb +2 -2
  136. metadata +116 -106
  137. data/ChangeLog +0 -156
  138. data/doc-api/classes/Kwartz/DocumentRuleset.html +0 -369
  139. data/doc-api/classes/Kwartz/ElementExpander.html +0 -325
  140. data/doc-api/classes/Kwartz/ElementRuleset.html +0 -612
@@ -0,0 +1,181 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: Kwartz::JstlExpressionParser</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">Kwartz::JstlExpressionParser</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/kwartz/binding/jstl_rb.html">
59
+ kwartz/binding/jstl.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ </table>
66
+ </div>
67
+ <!-- banner header -->
68
+
69
+ <div id="bodyContent">
70
+
71
+
72
+
73
+ <div id="contextContent">
74
+
75
+
76
+
77
+ </div>
78
+
79
+ <div id="method-list">
80
+ <h3 class="section-bar">Methods</h3>
81
+
82
+ <div class="name-list">
83
+ <a href="#M000027">parse_expr_str</a>&nbsp;&nbsp;
84
+ <a href="#M000028">parse_expr_str!</a>&nbsp;&nbsp;
85
+ </div>
86
+ </div>
87
+
88
+ </div>
89
+
90
+
91
+ <!-- if includes -->
92
+
93
+ <div id="section">
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+ <!-- if method_list -->
103
+ <div id="methods">
104
+ <h3 class="section-bar">Public Instance methods</h3>
105
+
106
+ <div id="method-M000027" class="method-detail">
107
+ <a name="M000027"></a>
108
+
109
+ <div class="method-heading">
110
+ <a href="#M000027" class="method-signature">
111
+ <span class="method-name">parse_expr_str</span><span class="method-args">(expr_str, linenum)</span>
112
+ </a>
113
+ </div>
114
+
115
+ <div class="method-description">
116
+ <p><a class="source-toggle" href="#"
117
+ onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
118
+ <div class="method-source-code" id="M000027-source">
119
+ <pre>
120
+ <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 20</span>
121
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_expr_str</span>(<span class="ruby-identifier">expr_str</span>, <span class="ruby-identifier">linenum</span>)
122
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">expr_str</span>
123
+ <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/\A(\w+)\z/</span> <span class="ruby-comment cmt"># variable</span>
124
+ <span class="ruby-identifier">expr</span> = <span class="ruby-identifier">expr_str</span>
125
+ <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/\A(\w+)\.(\w+)\z/</span> <span class="ruby-comment cmt"># object.property</span>
126
+ <span class="ruby-identifier">expr</span> = <span class="ruby-identifier">expr_str</span>
127
+ <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/\A(\w+)\[('.*?'|&quot;.*?&quot;|:\w+)\]\z/</span> <span class="ruby-comment cmt"># hash</span>
128
+ <span class="ruby-identifier">key</span> = <span class="ruby-identifier">$2</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?:</span> <span class="ruby-operator">?</span> <span class="ruby-node">&quot;'#{$2[1..-1]}'&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">$2</span>
129
+ <span class="ruby-identifier">expr</span> = <span class="ruby-node">&quot;#{$1}[#{key}]&quot;</span>
130
+ <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/\A(\w+)\[(\w+)\]\z/</span> <span class="ruby-comment cmt"># array or hash</span>
131
+ <span class="ruby-identifier">expr</span> = <span class="ruby-node">&quot;#{$1}[#{$2}]&quot;</span>
132
+ <span class="ruby-keyword kw">else</span>
133
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">convert_error</span>(<span class="ruby-node">&quot;'#{expr_str}': invalid expression.&quot;</span>, <span class="ruby-identifier">linenum</span>)
134
+ <span class="ruby-keyword kw">end</span>
135
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">expr</span>
136
+ <span class="ruby-keyword kw">end</span>
137
+ </pre>
138
+ </div>
139
+ </div>
140
+ </div>
141
+
142
+ <div id="method-M000028" class="method-detail">
143
+ <a name="M000028"></a>
144
+
145
+ <div class="method-heading">
146
+ <a href="#M000028" class="method-signature">
147
+ <span class="method-name">parse_expr_str!</span><span class="method-args">(expr_str)</span>
148
+ </a>
149
+ </div>
150
+
151
+ <div class="method-description">
152
+ <p><a class="source-toggle" href="#"
153
+ onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
154
+ <div class="method-source-code" id="M000028-source">
155
+ <pre>
156
+ <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 38</span>
157
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_expr_str!</span>(<span class="ruby-identifier">expr_str</span>)
158
+ <span class="ruby-keyword kw">begin</span>
159
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parse_expr_str</span>(<span class="ruby-identifier">expr_str</span>, <span class="ruby-value">0</span>)
160
+ <span class="ruby-keyword kw">rescue</span>
161
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">expr_str</span>
162
+ <span class="ruby-keyword kw">end</span>
163
+ <span class="ruby-keyword kw">end</span>
164
+ </pre>
165
+ </div>
166
+ </div>
167
+ </div>
168
+
169
+
170
+ </div>
171
+
172
+
173
+ </div>
174
+
175
+
176
+ <div id="validator-badges">
177
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
178
+ </div>
179
+
180
+ </body>
181
+ </html>
@@ -94,20 +94,20 @@ directive handler for JSTL
94
94
  <h3 class="section-bar">Methods</h3>
95
95
 
96
96
  <div class="name-list">
97
- <a href="#M000098">_evaluate_options</a>&nbsp;&nbsp;
98
- <a href="#M000096">_handle_jstl_params</a>&nbsp;&nbsp;
99
- <a href="#M000097">_handle_jstl_tag</a>&nbsp;&nbsp;
100
- <a href="#M000088">directive_format</a>&nbsp;&nbsp;
101
- <a href="#M000086">directive_pattern</a>&nbsp;&nbsp;
102
- <a href="#M000089">handle</a>&nbsp;&nbsp;
103
- <a href="#M000094">handle_jstl_forEach</a>&nbsp;&nbsp;
104
- <a href="#M000095">handle_jstl_forTokens</a>&nbsp;&nbsp;
105
- <a href="#M000091">handle_jstl_import</a>&nbsp;&nbsp;
106
- <a href="#M000090">handle_jstl_redirect</a>&nbsp;&nbsp;
107
- <a href="#M000093">handle_jstl_remove</a>&nbsp;&nbsp;
108
- <a href="#M000092">handle_jstl_url</a>&nbsp;&nbsp;
109
- <a href="#M000087">mapping_pattern</a>&nbsp;&nbsp;
110
- <a href="#M000085">new</a>&nbsp;&nbsp;
97
+ <a href="#M000111">_evaluate_options</a>&nbsp;&nbsp;
98
+ <a href="#M000109">_handle_jstl_params</a>&nbsp;&nbsp;
99
+ <a href="#M000110">_handle_jstl_tag</a>&nbsp;&nbsp;
100
+ <a href="#M000101">directive_format</a>&nbsp;&nbsp;
101
+ <a href="#M000099">directive_pattern</a>&nbsp;&nbsp;
102
+ <a href="#M000102">handle</a>&nbsp;&nbsp;
103
+ <a href="#M000107">handle_jstl_forEach</a>&nbsp;&nbsp;
104
+ <a href="#M000108">handle_jstl_forTokens</a>&nbsp;&nbsp;
105
+ <a href="#M000104">handle_jstl_import</a>&nbsp;&nbsp;
106
+ <a href="#M000103">handle_jstl_redirect</a>&nbsp;&nbsp;
107
+ <a href="#M000106">handle_jstl_remove</a>&nbsp;&nbsp;
108
+ <a href="#M000105">handle_jstl_url</a>&nbsp;&nbsp;
109
+ <a href="#M000100">mapping_pattern</a>&nbsp;&nbsp;
110
+ <a href="#M000098">new</a>&nbsp;&nbsp;
111
111
  </div>
112
112
  </div>
113
113
 
@@ -115,6 +115,13 @@ directive handler for JSTL
115
115
 
116
116
 
117
117
  <!-- if includes -->
118
+ <div id="includes">
119
+ <h3 class="section-bar">Included Modules</h3>
120
+
121
+ <div id="includes-list">
122
+ <span class="include-name"><a href="JstlExpressionParser.html">JstlExpressionParser</a></span>
123
+ </div>
124
+ </div>
118
125
 
119
126
  <div id="section">
120
127
 
@@ -152,21 +159,21 @@ directive handler for JSTL
152
159
  <div id="methods">
153
160
  <h3 class="section-bar">Public Class methods</h3>
154
161
 
155
- <div id="method-M000085" class="method-detail">
156
- <a name="M000085"></a>
162
+ <div id="method-M000098" class="method-detail">
163
+ <a name="M000098"></a>
157
164
 
158
165
  <div class="method-heading">
159
- <a href="#M000085" class="method-signature">
166
+ <a href="#M000098" class="method-signature">
160
167
  <span class="method-name">new</span><span class="method-args">(elem_rulesets=[], properties={})</span>
161
168
  </a>
162
169
  </div>
163
170
 
164
171
  <div class="method-description">
165
172
  <p><a class="source-toggle" href="#"
166
- onclick="toggleCode('M000085-source');return false;">[Source]</a></p>
167
- <div class="method-source-code" id="M000085-source">
173
+ onclick="toggleCode('M000098-source');return false;">[Source]</a></p>
174
+ <div class="method-source-code" id="M000098-source">
168
175
  <pre>
169
- <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 23</span>
176
+ <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 58</span>
170
177
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">elem_rulesets</span>=[], <span class="ruby-identifier">properties</span>={})
171
178
  <span class="ruby-keyword kw">super</span>
172
179
  <span class="ruby-ivar">@jstl_ver</span> = <span class="ruby-identifier">properties</span>[<span class="ruby-identifier">:jstl</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">Config</span><span class="ruby-operator">::</span><span class="ruby-constant">PROPERTY_JSTL</span>
@@ -178,21 +185,21 @@ directive handler for JSTL
178
185
 
179
186
  <h3 class="section-bar">Public Instance methods</h3>
180
187
 
181
- <div id="method-M000088" class="method-detail">
182
- <a name="M000088"></a>
188
+ <div id="method-M000101" class="method-detail">
189
+ <a name="M000101"></a>
183
190
 
184
191
  <div class="method-heading">
185
- <a href="#M000088" class="method-signature">
192
+ <a href="#M000101" class="method-signature">
186
193
  <span class="method-name">directive_format</span><span class="method-args">()</span>
187
194
  </a>
188
195
  </div>
189
196
 
190
197
  <div class="method-description">
191
198
  <p><a class="source-toggle" href="#"
192
- onclick="toggleCode('M000088-source');return false;">[Source]</a></p>
193
- <div class="method-source-code" id="M000088-source">
199
+ onclick="toggleCode('M000101-source');return false;">[Source]</a></p>
200
+ <div class="method-source-code" id="M000101-source">
194
201
  <pre>
195
- <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 45</span>
202
+ <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 80</span>
196
203
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">directive_format</span>
197
204
  <span class="ruby-keyword kw">return</span> <span class="ruby-constant">JSTL_DIRECTIVE_FORMAT</span>
198
205
  <span class="ruby-keyword kw">end</span>
@@ -201,21 +208,21 @@ directive handler for JSTL
201
208
  </div>
202
209
  </div>
203
210
 
204
- <div id="method-M000086" class="method-detail">
205
- <a name="M000086"></a>
211
+ <div id="method-M000099" class="method-detail">
212
+ <a name="M000099"></a>
206
213
 
207
214
  <div class="method-heading">
208
- <a href="#M000086" class="method-signature">
215
+ <a href="#M000099" class="method-signature">
209
216
  <span class="method-name">directive_pattern</span><span class="method-args">()</span>
210
217
  </a>
211
218
  </div>
212
219
 
213
220
  <div class="method-description">
214
221
  <p><a class="source-toggle" href="#"
215
- onclick="toggleCode('M000086-source');return false;">[Source]</a></p>
216
- <div class="method-source-code" id="M000086-source">
222
+ onclick="toggleCode('M000099-source');return false;">[Source]</a></p>
223
+ <div class="method-source-code" id="M000099-source">
217
224
  <pre>
218
- <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 31</span>
225
+ <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 66</span>
219
226
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">directive_pattern</span>
220
227
  <span class="ruby-keyword kw">return</span> <span class="ruby-constant">JSTL_DIRECTIVE_PATTERN</span>
221
228
  <span class="ruby-keyword kw">end</span>
@@ -224,37 +231,37 @@ directive handler for JSTL
224
231
  </div>
225
232
  </div>
226
233
 
227
- <div id="method-M000089" class="method-detail">
228
- <a name="M000089"></a>
234
+ <div id="method-M000102" class="method-detail">
235
+ <a name="M000102"></a>
229
236
 
230
237
  <div class="method-heading">
231
- <a href="#M000089" class="method-signature">
232
- <span class="method-name">handle</span><span class="method-args">(stmt_list, handler_arg)</span>
238
+ <a href="#M000102" class="method-signature">
239
+ <span class="method-name">handle</span><span class="method-args">(directive, elem_info, stmt_list)</span>
233
240
  </a>
234
241
  </div>
235
242
 
236
243
  <div class="method-description">
237
244
  <p><a class="source-toggle" href="#"
238
- onclick="toggleCode('M000089-source');return false;">[Source]</a></p>
239
- <div class="method-source-code" id="M000089-source">
245
+ onclick="toggleCode('M000102-source');return false;">[Source]</a></p>
246
+ <div class="method-source-code" id="M000102-source">
240
247
  <pre>
241
- <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 50</span>
242
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle</span>(<span class="ruby-identifier">stmt_list</span>, <span class="ruby-identifier">handler_arg</span>)
248
+ <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 85</span>
249
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle</span>(<span class="ruby-identifier">directive</span>, <span class="ruby-identifier">elem_info</span>, <span class="ruby-identifier">stmt_list</span>)
243
250
  <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">super</span>
244
251
  <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">ret</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ret</span>
245
252
 
246
- <span class="ruby-identifier">arg</span> = <span class="ruby-identifier">handler_arg</span>
247
- <span class="ruby-identifier">d_name</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">directive_name</span>
248
- <span class="ruby-identifier">d_arg</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">directive_arg</span>
249
- <span class="ruby-identifier">d_str</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">directive_str</span>
253
+ <span class="ruby-identifier">d_name</span> = <span class="ruby-identifier">directive</span>.<span class="ruby-identifier">name</span>
254
+ <span class="ruby-identifier">d_arg</span> = <span class="ruby-identifier">directive</span>.<span class="ruby-identifier">arg</span>
255
+ <span class="ruby-identifier">d_str</span> = <span class="ruby-identifier">directive</span>.<span class="ruby-identifier">str</span>
256
+ <span class="ruby-identifier">e</span> = <span class="ruby-identifier">elem_info</span>
250
257
 
251
258
  <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">d_name</span>
252
259
 
253
260
  <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:for</span>, <span class="ruby-identifier">:For</span>, <span class="ruby-identifier">:FOR</span>, <span class="ruby-identifier">:list</span>, <span class="ruby-identifier">:List</span>, <span class="ruby-identifier">:LIST</span>
254
261
  <span class="ruby-identifier">is_foreach</span> = <span class="ruby-identifier">d_name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:for</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">d_name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:For</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">d_name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:FOR</span>
255
- <span class="ruby-identifier">error_if_empty_tag</span>(<span class="ruby-identifier">arg</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">is_foreach</span>
262
+ <span class="ruby-identifier">error_if_empty_tag</span>(<span class="ruby-identifier">elem_info</span>, <span class="ruby-identifier">d_str</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">is_foreach</span>
256
263
  <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">d_arg</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\A(\w+)\s*:\s*(.*)\z/</span>
257
- <span class="ruby-identifier">raise</span> <span class="ruby-identifier">convert_error</span>(<span class="ruby-node">&quot;'#{d_str}': invalid argument.&quot;</span>, <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">stag_info</span>.<span class="ruby-identifier">linenum</span>)
264
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">convert_error</span>(<span class="ruby-node">&quot;'#{d_str}': invalid argument.&quot;</span>, <span class="ruby-identifier">elem_info</span>.<span class="ruby-identifier">stag_info</span>.<span class="ruby-identifier">linenum</span>)
258
265
  <span class="ruby-keyword kw">end</span>
259
266
  <span class="ruby-identifier">loopvar</span> = <span class="ruby-identifier">$1</span> ; <span class="ruby-identifier">looplist</span> = <span class="ruby-identifier">$2</span>
260
267
  <span class="ruby-identifier">counter</span> = <span class="ruby-identifier">d_name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:for</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">d_name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:list</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-node">&quot;#{loopvar}_ctr&quot;</span>
@@ -279,40 +286,40 @@ directive handler for JSTL
279
286
  <span class="ruby-keyword kw">end</span>
280
287
  <span class="ruby-identifier">end_code</span> = <span class="ruby-value str">&quot;&lt;/c:forEach&gt;&quot;</span>
281
288
  <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">is_foreach</span>
282
- <span class="ruby-identifier">wrap_element_with_native_stmt</span>(<span class="ruby-identifier">stmt_list</span>, <span class="ruby-identifier">arg</span>, <span class="ruby-identifier">code</span>, <span class="ruby-identifier">end_code</span>, <span class="ruby-identifier">:set</span>)
289
+ <span class="ruby-identifier">wrap_element_with_native_stmt</span>(<span class="ruby-identifier">elem_info</span>, <span class="ruby-identifier">stmt_list</span>, <span class="ruby-identifier">code</span>, <span class="ruby-identifier">end_code</span>, <span class="ruby-identifier">:set</span>)
283
290
  <span class="ruby-keyword kw">else</span>
284
- <span class="ruby-identifier">wrap_content_with_native_stmt</span>(<span class="ruby-identifier">stmt_list</span>, <span class="ruby-identifier">arg</span>, <span class="ruby-identifier">code</span>, <span class="ruby-identifier">end_code</span>, <span class="ruby-identifier">:set</span>)
291
+ <span class="ruby-identifier">wrap_content_with_native_stmt</span>(<span class="ruby-identifier">elem_info</span>, <span class="ruby-identifier">stmt_list</span>, <span class="ruby-identifier">code</span>, <span class="ruby-identifier">end_code</span>, <span class="ruby-identifier">:set</span>)
285
292
  <span class="ruby-keyword kw">end</span>
286
293
 
287
294
  <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:while</span>, <span class="ruby-identifier">:loop</span>
288
295
  <span class="ruby-identifier">msg</span> = <span class="ruby-node">&quot;'#{d_str}': jstl doesn't support '#{d_arg}' directive.&quot;</span>
289
- <span class="ruby-identifier">raise</span> <span class="ruby-identifier">convert_error</span>(<span class="ruby-identifier">msg</span>, <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">stag_info</span>.<span class="ruby-identifier">linenum</span>)
296
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">convert_error</span>(<span class="ruby-identifier">msg</span>, <span class="ruby-identifier">elem_info</span>.<span class="ruby-identifier">stag_info</span>.<span class="ruby-identifier">linenum</span>)
290
297
 
291
298
  <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:set</span>
292
299
  <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">d_arg</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\A(\S+)\s*=\s*(.*)\z/</span>
293
- <span class="ruby-identifier">raise</span> <span class="ruby-identifier">convert_error</span>(<span class="ruby-node">&quot;'#{d_str}': invalid argument.&quot;</span>, <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">stag_info</span>.<span class="ruby-identifier">linenum</span>)
300
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">convert_error</span>(<span class="ruby-node">&quot;'#{d_str}': invalid argument.&quot;</span>, <span class="ruby-identifier">elem_info</span>.<span class="ruby-identifier">stag_info</span>.<span class="ruby-identifier">linenum</span>)
294
301
  <span class="ruby-keyword kw">end</span>
295
302
  <span class="ruby-identifier">lhs</span> = <span class="ruby-identifier">$1</span>; <span class="ruby-identifier">rhs</span> = <span class="ruby-identifier">$2</span>
296
303
  <span class="ruby-identifier">code</span> = <span class="ruby-node">&quot;&lt;c:set var=\&quot;#{lhs}\&quot; value=\&quot;${#{rhs}}\&quot;/&gt;&quot;</span>
297
- <span class="ruby-identifier">wrap_element_with_native_stmt</span>(<span class="ruby-identifier">stmt_list</span>, <span class="ruby-identifier">arg</span>, <span class="ruby-identifier">code</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">:set</span>)
304
+ <span class="ruby-identifier">wrap_element_with_native_stmt</span>(<span class="ruby-identifier">elem_info</span>, <span class="ruby-identifier">stmt_list</span>, <span class="ruby-identifier">code</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">:set</span>)
298
305
  <span class="ruby-comment cmt">#code = &quot;&lt;c:set var=\&quot;#{lhs}\&quot; value=\&quot;${#{rhs}}\&quot;/&gt;&quot;</span>
299
306
  <span class="ruby-comment cmt">#stmt_list &lt;&lt; NativeStatement.new(code, :set)</span>
300
- <span class="ruby-comment cmt">#stmt_list &lt;&lt; stag_stmt(arg)</span>
307
+ <span class="ruby-comment cmt">#stmt_list &lt;&lt; stag_stmt(elem_info)</span>
301
308
  <span class="ruby-comment cmt">#stmt_list.concat(cont_stmts)</span>
302
- <span class="ruby-comment cmt">#stmt_list &lt;&lt; etag_stmt(arg)</span>
309
+ <span class="ruby-comment cmt">#stmt_list &lt;&lt; etag_stmt(elem_info)</span>
303
310
 
304
311
  <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:if</span>
305
312
  <span class="ruby-identifier">start_code</span> = <span class="ruby-node">&quot;&lt;c:choose&gt;&lt;c:when test=\&quot;${#{d_arg}}\&quot;&gt;&quot;</span>
306
313
  <span class="ruby-identifier">end_code</span> = <span class="ruby-value str">&quot;&lt;/c:when&gt;&lt;/c:choose&gt;&quot;</span>
307
- <span class="ruby-identifier">wrap_element_with_native_stmt</span>(<span class="ruby-identifier">stmt_list</span>, <span class="ruby-identifier">arg</span>, <span class="ruby-identifier">start_code</span>, <span class="ruby-identifier">end_code</span>, <span class="ruby-identifier">:if</span>)
314
+ <span class="ruby-identifier">wrap_element_with_native_stmt</span>(<span class="ruby-identifier">elem_info</span>, <span class="ruby-identifier">stmt_list</span>, <span class="ruby-identifier">start_code</span>, <span class="ruby-identifier">end_code</span>, <span class="ruby-identifier">:if</span>)
308
315
  <span class="ruby-comment cmt">#stmt_list &lt;&lt; NativeStatement.new(start_code, :if)</span>
309
- <span class="ruby-comment cmt">#stmt_list &lt;&lt; stag_stmt(arg)</span>
316
+ <span class="ruby-comment cmt">#stmt_list &lt;&lt; stag_stmt(elem_info)</span>
310
317
  <span class="ruby-comment cmt">#stmt_list.concat(cont_stmts)</span>
311
- <span class="ruby-comment cmt">#stmt_list &lt;&lt; etag_stmt(arg)</span>
318
+ <span class="ruby-comment cmt">#stmt_list &lt;&lt; etag_stmt(elem_info)</span>
312
319
  <span class="ruby-comment cmt">#stmt_list &lt;&lt; NativeStatement.new(end, :if)</span>
313
320
 
314
321
  <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:elseif</span>, <span class="ruby-identifier">:else</span>
315
- <span class="ruby-identifier">error_when_last_stmt_is_not_if</span>(<span class="ruby-identifier">stmt_list</span>, <span class="ruby-identifier">arg</span>)
322
+ <span class="ruby-identifier">error_when_last_stmt_is_not_if</span>(<span class="ruby-identifier">elem_info</span>, <span class="ruby-identifier">d_str</span>, <span class="ruby-identifier">stmt_list</span>)
316
323
  <span class="ruby-identifier">stmt_list</span>.<span class="ruby-identifier">pop</span> <span class="ruby-comment cmt"># delete '&lt;/c:when&gt;&lt;/c:choose&gt;'</span>
317
324
  <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">d_name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:else</span>
318
325
  <span class="ruby-identifier">kind</span> = <span class="ruby-identifier">:else</span>
@@ -323,7 +330,7 @@ directive handler for JSTL
323
330
  <span class="ruby-identifier">start_code</span> = <span class="ruby-node">&quot;&lt;/c:when&gt;&lt;c:when test=\&quot;${#{d_arg}}\&quot;&gt;&quot;</span>
324
331
  <span class="ruby-identifier">end_code</span> = <span class="ruby-value str">&quot;&lt;/c:when&gt;&lt;/c:choose&gt;&quot;</span>
325
332
  <span class="ruby-keyword kw">end</span>
326
- <span class="ruby-identifier">wrap_element_with_native_stmt</span>(<span class="ruby-identifier">stmt_list</span>, <span class="ruby-identifier">arg</span>, <span class="ruby-identifier">start_code</span>, <span class="ruby-identifier">end_code</span>, <span class="ruby-identifier">kind</span>)
333
+ <span class="ruby-identifier">wrap_element_with_native_stmt</span>(<span class="ruby-identifier">elem_info</span>, <span class="ruby-identifier">stmt_list</span>, <span class="ruby-identifier">start_code</span>, <span class="ruby-identifier">end_code</span>, <span class="ruby-identifier">kind</span>)
327
334
  <span class="ruby-comment cmt">#stmt_list &lt;&lt; NativeStatement.new(start_code, kind)</span>
328
335
  <span class="ruby-comment cmt">#stmt_list &lt;&lt; stag_stmt</span>
329
336
  <span class="ruby-comment cmt">#stmt_list.concat(cont_stmts)</span>
@@ -331,31 +338,32 @@ directive handler for JSTL
331
338
  <span class="ruby-comment cmt">#stmt_list &lt;&lt; NativeStatement.new(end_code, kind)</span>
332
339
 
333
340
  <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:default</span>, <span class="ruby-identifier">:Default</span>, <span class="ruby-identifier">:DEFAULT</span>
334
- <span class="ruby-identifier">error_if_empty_tag</span>(<span class="ruby-identifier">arg</span>)
335
- <span class="ruby-identifier">stmt_list</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">stag_stmt</span>(<span class="ruby-identifier">arg</span>)
341
+ <span class="ruby-identifier">error_if_empty_tag</span>(<span class="ruby-identifier">elem_info</span>, <span class="ruby-identifier">d_str</span>)
342
+ <span class="ruby-identifier">stmt_list</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">stag_stmt</span>(<span class="ruby-identifier">elem_info</span>)
336
343
  <span class="ruby-identifier">flag_escape</span> = <span class="ruby-identifier">d_name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:default</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> (<span class="ruby-identifier">d_name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:Default</span>)
337
- <span class="ruby-identifier">argstr</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">cont_stmts</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
338
- <span class="ruby-identifier">code</span> = <span class="ruby-node">&quot;&lt;c:out value=\&quot;${#{d_arg}}\&quot;&quot;</span>
344
+ <span class="ruby-identifier">argstr</span> = <span class="ruby-identifier">elem_info</span>.<span class="ruby-identifier">cont_stmts</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
345
+ <span class="ruby-identifier">expr_str</span> = <span class="ruby-identifier">directive</span>.<span class="ruby-identifier">dattr</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'id'</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">parse_expr_str</span>(<span class="ruby-identifier">d_arg</span>, <span class="ruby-identifier">e</span>.<span class="ruby-identifier">stag_info</span>.<span class="ruby-identifier">linenum</span>) <span class="ruby-operator">:</span> <span class="ruby-identifier">d_arg</span>
346
+ <span class="ruby-identifier">code</span> = <span class="ruby-node">&quot;&lt;c:out value=\&quot;${#{expr_str}}\&quot;&quot;</span>
339
347
  <span class="ruby-identifier">code</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; escapeXml=\&quot;#{flag_escape}\&quot;&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">flag_escape</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
340
348
  <span class="ruby-identifier">code</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; default=\&quot;#{argstr}\&quot;/&gt;&quot;</span>
341
349
  <span class="ruby-identifier">stmt_list</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">NativeStatement</span>.<span class="ruby-identifier">new_without_newline</span>(<span class="ruby-identifier">code</span>)
342
- <span class="ruby-identifier">stmt_list</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">etag_stmt</span>(<span class="ruby-identifier">arg</span>)
350
+ <span class="ruby-identifier">stmt_list</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">etag_stmt</span>(<span class="ruby-identifier">elem_info</span>)
343
351
 
344
352
  <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:catch</span>
345
353
  <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">d_arg</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">d_arg</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">d_arg</span> <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/\A\w+\z/</span>
346
- <span class="ruby-identifier">raise</span> <span class="ruby-identifier">convert_error</span>(<span class="ruby-node">&quot;'#{d_str}': invalid varname.&quot;</span>, <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">stag_info</span>.<span class="ruby-identifier">linenum</span>)
354
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">convert_error</span>(<span class="ruby-node">&quot;'#{d_str}': invalid varname.&quot;</span>, <span class="ruby-identifier">elem_info</span>.<span class="ruby-identifier">stag_info</span>.<span class="ruby-identifier">linenum</span>)
347
355
  <span class="ruby-keyword kw">end</span>
348
356
  <span class="ruby-identifier">code</span> = <span class="ruby-value str">&quot;&lt;c:catch&quot;</span>
349
357
  <span class="ruby-identifier">code</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; var=\&quot;#{d_arg}\&quot;&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">d_arg</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">d_arg</span>.<span class="ruby-identifier">empty?</span>
350
358
  <span class="ruby-identifier">code</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&gt;&quot;</span>
351
359
  <span class="ruby-identifier">stmt_list</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">NativeStatement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">code</span>)
352
- <span class="ruby-identifier">stmt_list</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">arg</span>.<span class="ruby-identifier">cont_stmts</span>)
360
+ <span class="ruby-identifier">stmt_list</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">elem_info</span>.<span class="ruby-identifier">cont_stmts</span>)
353
361
  <span class="ruby-identifier">stmt_list</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">NativeStatement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;&lt;/c:catch&gt;&quot;</span>)
354
362
 
355
363
  <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:forEach</span>, <span class="ruby-identifier">:forTokens</span>
356
364
  <span class="ruby-identifier">options</span> = <span class="ruby-identifier">eval</span> <span class="ruby-node">&quot;{ #{d_arg} }&quot;</span>
357
365
  <span class="ruby-identifier">stag</span>, <span class="ruby-identifier">etag</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">__send__</span> <span class="ruby-node">&quot;handle_jstl_#{d_name}&quot;</span>, <span class="ruby-identifier">options</span>
358
- <span class="ruby-identifier">wrap_element_with_native_stmt</span>(<span class="ruby-identifier">stmt_list</span>, <span class="ruby-identifier">arg</span>, <span class="ruby-identifier">stag</span>, <span class="ruby-identifier">etag</span>, <span class="ruby-keyword kw">nil</span>)
366
+ <span class="ruby-identifier">wrap_element_with_native_stmt</span>(<span class="ruby-identifier">elem_info</span>, <span class="ruby-identifier">stmt_list</span>, <span class="ruby-identifier">stag</span>, <span class="ruby-identifier">etag</span>, <span class="ruby-keyword kw">nil</span>)
359
367
  <span class="ruby-comment cmt">#stmt_list &lt;&lt; NativeStatement.new(stag)</span>
360
368
  <span class="ruby-comment cmt">#stmt_list &lt;&lt; stag_stmt</span>
361
369
  <span class="ruby-comment cmt">#stmt_list.concat(cont_stmts)</span>
@@ -381,21 +389,21 @@ directive handler for JSTL
381
389
  </div>
382
390
  </div>
383
391
 
384
- <div id="method-M000087" class="method-detail">
385
- <a name="M000087"></a>
392
+ <div id="method-M000100" class="method-detail">
393
+ <a name="M000100"></a>
386
394
 
387
395
  <div class="method-heading">
388
- <a href="#M000087" class="method-signature">
396
+ <a href="#M000100" class="method-signature">
389
397
  <span class="method-name">mapping_pattern</span><span class="method-args">()</span>
390
398
  </a>
391
399
  </div>
392
400
 
393
401
  <div class="method-description">
394
402
  <p><a class="source-toggle" href="#"
395
- onclick="toggleCode('M000087-source');return false;">[Source]</a></p>
396
- <div class="method-source-code" id="M000087-source">
403
+ onclick="toggleCode('M000100-source');return false;">[Source]</a></p>
404
+ <div class="method-source-code" id="M000100-source">
397
405
  <pre>
398
- <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 38</span>
406
+ <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 73</span>
399
407
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mapping_pattern</span>
400
408
  <span class="ruby-keyword kw">return</span> <span class="ruby-constant">JSTL_MAPPING_PATTERN</span>
401
409
  <span class="ruby-keyword kw">end</span>
@@ -406,21 +414,21 @@ directive handler for JSTL
406
414
 
407
415
  <h3 class="section-bar">Protected Instance methods</h3>
408
416
 
409
- <div id="method-M000098" class="method-detail">
410
- <a name="M000098"></a>
417
+ <div id="method-M000111" class="method-detail">
418
+ <a name="M000111"></a>
411
419
 
412
420
  <div class="method-heading">
413
- <a href="#M000098" class="method-signature">
421
+ <a href="#M000111" class="method-signature">
414
422
  <span class="method-name">_evaluate_options</span><span class="method-args">(options={})</span>
415
423
  </a>
416
424
  </div>
417
425
 
418
426
  <div class="method-description">
419
427
  <p><a class="source-toggle" href="#"
420
- onclick="toggleCode('M000098-source');return false;">[Source]</a></p>
421
- <div class="method-source-code" id="M000098-source">
428
+ onclick="toggleCode('M000111-source');return false;">[Source]</a></p>
429
+ <div class="method-source-code" id="M000111-source">
422
430
  <pre>
423
- <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 276</span>
431
+ <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 312</span>
424
432
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">_evaluate_options</span>(<span class="ruby-identifier">options</span>={})
425
433
  <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">options</span>
426
434
  <span class="ruby-keyword kw">end</span>
@@ -429,21 +437,21 @@ directive handler for JSTL
429
437
  </div>
430
438
  </div>
431
439
 
432
- <div id="method-M000096" class="method-detail">
433
- <a name="M000096"></a>
440
+ <div id="method-M000109" class="method-detail">
441
+ <a name="M000109"></a>
434
442
 
435
443
  <div class="method-heading">
436
- <a href="#M000096" class="method-signature">
444
+ <a href="#M000109" class="method-signature">
437
445
  <span class="method-name">_handle_jstl_params</span><span class="method-args">(tagname, param_list, options)</span>
438
446
  </a>
439
447
  </div>
440
448
 
441
449
  <div class="method-description">
442
450
  <p><a class="source-toggle" href="#"
443
- onclick="toggleCode('M000096-source');return false;">[Source]</a></p>
444
- <div class="method-source-code" id="M000096-source">
451
+ onclick="toggleCode('M000109-source');return false;">[Source]</a></p>
452
+ <div class="method-source-code" id="M000109-source">
445
453
  <pre>
446
- <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 224</span>
454
+ <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 260</span>
447
455
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">_handle_jstl_params</span>(<span class="ruby-identifier">tagname</span>, <span class="ruby-identifier">param_list</span>, <span class="ruby-identifier">options</span>)
448
456
  <span class="ruby-identifier">stag</span>, <span class="ruby-identifier">etag</span> = <span class="ruby-identifier">_handle_jstl_tag</span>(<span class="ruby-identifier">tagname</span>, <span class="ruby-identifier">param_list</span>, <span class="ruby-identifier">options</span>, <span class="ruby-keyword kw">true</span>)
449
457
  <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
@@ -470,21 +478,21 @@ directive handler for JSTL
470
478
  </div>
471
479
  </div>
472
480
 
473
- <div id="method-M000097" class="method-detail">
474
- <a name="M000097"></a>
481
+ <div id="method-M000110" class="method-detail">
482
+ <a name="M000110"></a>
475
483
 
476
484
  <div class="method-heading">
477
- <a href="#M000097" class="method-signature">
485
+ <a href="#M000110" class="method-signature">
478
486
  <span class="method-name">_handle_jstl_tag</span><span class="method-args">(tagname, param_list, options, ignore_unknown_option=false)</span>
479
487
  </a>
480
488
  </div>
481
489
 
482
490
  <div class="method-description">
483
491
  <p><a class="source-toggle" href="#"
484
- onclick="toggleCode('M000097-source');return false;">[Source]</a></p>
485
- <div class="method-source-code" id="M000097-source">
492
+ onclick="toggleCode('M000110-source');return false;">[Source]</a></p>
493
+ <div class="method-source-code" id="M000110-source">
486
494
  <pre>
487
- <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 247</span>
495
+ <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 283</span>
488
496
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">_handle_jstl_tag</span>(<span class="ruby-identifier">tagname</span>, <span class="ruby-identifier">param_list</span>, <span class="ruby-identifier">options</span>, <span class="ruby-identifier">ignore_unknown_option</span>=<span class="ruby-keyword kw">false</span>)
489
497
  <span class="ruby-identifier">options</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
490
498
  <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
@@ -517,21 +525,21 @@ directive handler for JSTL
517
525
  </div>
518
526
  </div>
519
527
 
520
- <div id="method-M000094" class="method-detail">
521
- <a name="M000094"></a>
528
+ <div id="method-M000107" class="method-detail">
529
+ <a name="M000107"></a>
522
530
 
523
531
  <div class="method-heading">
524
- <a href="#M000094" class="method-signature">
532
+ <a href="#M000107" class="method-signature">
525
533
  <span class="method-name">handle_jstl_forEach</span><span class="method-args">(options)</span>
526
534
  </a>
527
535
  </div>
528
536
 
529
537
  <div class="method-description">
530
538
  <p><a class="source-toggle" href="#"
531
- onclick="toggleCode('M000094-source');return false;">[Source]</a></p>
532
- <div class="method-source-code" id="M000094-source">
539
+ onclick="toggleCode('M000107-source');return false;">[Source]</a></p>
540
+ <div class="method-source-code" id="M000107-source">
533
541
  <pre>
534
- <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 212</span>
542
+ <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 248</span>
535
543
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_jstl_forEach</span>(<span class="ruby-identifier">options</span>)
536
544
  <span class="ruby-identifier">param_list</span> = <span class="ruby-node">%w[var items varStatus begin end step]</span>
537
545
  <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">_handle_jstl_tag</span>(<span class="ruby-value str">'forEach'</span>, <span class="ruby-identifier">param_list</span>, <span class="ruby-identifier">options</span>)
@@ -541,21 +549,21 @@ directive handler for JSTL
541
549
  </div>
542
550
  </div>
543
551
 
544
- <div id="method-M000095" class="method-detail">
545
- <a name="M000095"></a>
552
+ <div id="method-M000108" class="method-detail">
553
+ <a name="M000108"></a>
546
554
 
547
555
  <div class="method-heading">
548
- <a href="#M000095" class="method-signature">
556
+ <a href="#M000108" class="method-signature">
549
557
  <span class="method-name">handle_jstl_forTokens</span><span class="method-args">(options)</span>
550
558
  </a>
551
559
  </div>
552
560
 
553
561
  <div class="method-description">
554
562
  <p><a class="source-toggle" href="#"
555
- onclick="toggleCode('M000095-source');return false;">[Source]</a></p>
556
- <div class="method-source-code" id="M000095-source">
563
+ onclick="toggleCode('M000108-source');return false;">[Source]</a></p>
564
+ <div class="method-source-code" id="M000108-source">
557
565
  <pre>
558
- <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 218</span>
566
+ <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 254</span>
559
567
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_jstl_forTokens</span>(<span class="ruby-identifier">options</span>)
560
568
  <span class="ruby-identifier">param_list</span> = <span class="ruby-node">%w[items delims var varStatus begin end step]</span>
561
569
  <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">_handle_jstl_tag</span>(<span class="ruby-value str">'forTokens'</span>, <span class="ruby-identifier">param_list</span>, <span class="ruby-identifier">options</span>)
@@ -565,21 +573,21 @@ directive handler for JSTL
565
573
  </div>
566
574
  </div>
567
575
 
568
- <div id="method-M000091" class="method-detail">
569
- <a name="M000091"></a>
576
+ <div id="method-M000104" class="method-detail">
577
+ <a name="M000104"></a>
570
578
 
571
579
  <div class="method-heading">
572
- <a href="#M000091" class="method-signature">
580
+ <a href="#M000104" class="method-signature">
573
581
  <span class="method-name">handle_jstl_import</span><span class="method-args">(options)</span>
574
582
  </a>
575
583
  </div>
576
584
 
577
585
  <div class="method-description">
578
586
  <p><a class="source-toggle" href="#"
579
- onclick="toggleCode('M000091-source');return false;">[Source]</a></p>
580
- <div class="method-source-code" id="M000091-source">
587
+ onclick="toggleCode('M000104-source');return false;">[Source]</a></p>
588
+ <div class="method-source-code" id="M000104-source">
581
589
  <pre>
582
- <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 197</span>
590
+ <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 233</span>
583
591
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_jstl_import</span>(<span class="ruby-identifier">options</span>)
584
592
  <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">_handle_jstl_params</span>(<span class="ruby-value str">'import'</span>, <span class="ruby-node">%w[url context charEncoding var scope]</span>, <span class="ruby-identifier">options</span>)
585
593
  <span class="ruby-keyword kw">end</span>
@@ -588,21 +596,21 @@ directive handler for JSTL
588
596
  </div>
589
597
  </div>
590
598
 
591
- <div id="method-M000090" class="method-detail">
592
- <a name="M000090"></a>
599
+ <div id="method-M000103" class="method-detail">
600
+ <a name="M000103"></a>
593
601
 
594
602
  <div class="method-heading">
595
- <a href="#M000090" class="method-signature">
603
+ <a href="#M000103" class="method-signature">
596
604
  <span class="method-name">handle_jstl_redirect</span><span class="method-args">(options)</span>
597
605
  </a>
598
606
  </div>
599
607
 
600
608
  <div class="method-description">
601
609
  <p><a class="source-toggle" href="#"
602
- onclick="toggleCode('M000090-source');return false;">[Source]</a></p>
603
- <div class="method-source-code" id="M000090-source">
610
+ onclick="toggleCode('M000103-source');return false;">[Source]</a></p>
611
+ <div class="method-source-code" id="M000103-source">
604
612
  <pre>
605
- <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 192</span>
613
+ <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 228</span>
606
614
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_jstl_redirect</span>(<span class="ruby-identifier">options</span>)
607
615
  <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">_handle_jstl_params</span>(<span class="ruby-value str">'redirect'</span>, <span class="ruby-node">%w[url context]</span>, <span class="ruby-identifier">options</span>)
608
616
  <span class="ruby-keyword kw">end</span>
@@ -611,21 +619,21 @@ directive handler for JSTL
611
619
  </div>
612
620
  </div>
613
621
 
614
- <div id="method-M000093" class="method-detail">
615
- <a name="M000093"></a>
622
+ <div id="method-M000106" class="method-detail">
623
+ <a name="M000106"></a>
616
624
 
617
625
  <div class="method-heading">
618
- <a href="#M000093" class="method-signature">
626
+ <a href="#M000106" class="method-signature">
619
627
  <span class="method-name">handle_jstl_remove</span><span class="method-args">(options)</span>
620
628
  </a>
621
629
  </div>
622
630
 
623
631
  <div class="method-description">
624
632
  <p><a class="source-toggle" href="#"
625
- onclick="toggleCode('M000093-source');return false;">[Source]</a></p>
626
- <div class="method-source-code" id="M000093-source">
633
+ onclick="toggleCode('M000106-source');return false;">[Source]</a></p>
634
+ <div class="method-source-code" id="M000106-source">
627
635
  <pre>
628
- <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 207</span>
636
+ <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 243</span>
629
637
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_jstl_remove</span>(<span class="ruby-identifier">options</span>)
630
638
  <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">_handle_jstl_params</span>(<span class="ruby-value str">'remove'</span>, <span class="ruby-node">%w[var scope]</span>, <span class="ruby-identifier">options</span>)
631
639
  <span class="ruby-keyword kw">end</span>
@@ -634,21 +642,21 @@ directive handler for JSTL
634
642
  </div>
635
643
  </div>
636
644
 
637
- <div id="method-M000092" class="method-detail">
638
- <a name="M000092"></a>
645
+ <div id="method-M000105" class="method-detail">
646
+ <a name="M000105"></a>
639
647
 
640
648
  <div class="method-heading">
641
- <a href="#M000092" class="method-signature">
649
+ <a href="#M000105" class="method-signature">
642
650
  <span class="method-name">handle_jstl_url</span><span class="method-args">(options)</span>
643
651
  </a>
644
652
  </div>
645
653
 
646
654
  <div class="method-description">
647
655
  <p><a class="source-toggle" href="#"
648
- onclick="toggleCode('M000092-source');return false;">[Source]</a></p>
649
- <div class="method-source-code" id="M000092-source">
656
+ onclick="toggleCode('M000105-source');return false;">[Source]</a></p>
657
+ <div class="method-source-code" id="M000105-source">
650
658
  <pre>
651
- <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 202</span>
659
+ <span class="ruby-comment cmt"># File kwartz/binding/jstl.rb, line 238</span>
652
660
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_jstl_url</span>(<span class="ruby-identifier">options</span>)
653
661
  <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">_handle_jstl_params</span>(<span class="ruby-value str">'url'</span>, <span class="ruby-node">%w[value context var scope]</span>, <span class="ruby-identifier">options</span>)
654
662
  <span class="ruby-keyword kw">end</span>