rmobio 1.1.14 → 1.1.15

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 (53) hide show
  1. data/lib/rmobio/doc/classes/Rmobio/Cas/Client.html +15 -15
  2. data/lib/rmobio/doc/classes/Rmobio/Cas/Client.src/M000059.html +33 -0
  3. data/lib/rmobio/doc/classes/Rmobio/Cas/Client.src/M000060.html +33 -0
  4. data/lib/rmobio/doc/classes/Rmobio/Cas/Client.src/M000061.html +27 -0
  5. data/lib/rmobio/doc/classes/Rmobio/Cas/MobioCasFilter.html +12 -12
  6. data/lib/rmobio/doc/classes/Rmobio/Cas/MobioCasFilter.src/M000064.html +21 -0
  7. data/lib/rmobio/doc/classes/Rmobio/Cas/MobioCasFilter.src/M000065.html +50 -0
  8. data/lib/rmobio/doc/classes/Rmobio/Cas/MobioValidationResponse.html +10 -10
  9. data/lib/rmobio/doc/classes/Rmobio/Cas/MobioValidationResponse.src/M000062.html +19 -0
  10. data/lib/rmobio/doc/classes/Rmobio/Cas/MobioValidationResponse.src/M000063.html +31 -0
  11. data/lib/rmobio/doc/classes/Rmobio/ConfigManager.html +5 -0
  12. data/lib/rmobio/doc/classes/Rmobio/ConfigManager.src/M000001.html +11 -8
  13. data/lib/rmobio/doc/classes/Rmobio/Rxml/BaseTransformer.html +45 -0
  14. data/lib/rmobio/doc/classes/Rmobio/Rxml/BaseTransformer.src/M000056.html +17 -0
  15. data/lib/rmobio/doc/classes/Rmobio/Rxml/BaseTransformer.src/M000057.html +17 -0
  16. data/lib/rmobio/doc/classes/Rmobio/Rxml/BaseTransformer.src/M000058.html +17 -0
  17. data/lib/rmobio/doc/classes/Rmobio/Rxml/XformsTransformer.html +174 -111
  18. data/lib/rmobio/doc/classes/Rmobio/Rxml/XformsTransformer.src/M000016.html +3 -3
  19. data/lib/rmobio/doc/classes/Rmobio/Rxml/XformsTransformer.src/M000017.html +5 -5
  20. data/lib/rmobio/doc/classes/Rmobio/Rxml/XformsTransformer.src/M000018.html +5 -5
  21. data/lib/rmobio/doc/classes/Rmobio/Rxml/XformsTransformer.src/M000019.html +6 -6
  22. data/lib/rmobio/doc/classes/Rmobio/Rxml/XformsTransformer.src/M000020.html +5 -11
  23. data/lib/rmobio/doc/classes/Rmobio/Rxml/XformsTransformer.src/M000021.html +6 -13
  24. data/lib/rmobio/doc/classes/Rmobio/Rxml/XformsTransformer.src/M000022.html +9 -18
  25. data/lib/rmobio/doc/classes/Rmobio/Rxml/XformsTransformer.src/M000023.html +12 -19
  26. data/lib/rmobio/doc/classes/Rmobio/Rxml/XformsTransformer.src/M000024.html +21 -4
  27. data/lib/rmobio/doc/classes/Rmobio/Rxml/XformsTransformer.src/M000025.html +20 -9
  28. data/lib/rmobio/doc/classes/Rmobio/Rxml/XformsTransformer.src/M000026.html +4 -4
  29. data/lib/rmobio/doc/classes/Rmobio/Rxml/XformsTransformer.src/M000027.html +9 -4
  30. data/lib/rmobio/doc/classes/Rmobio/Rxml/XformsTransformer.src/M000028.html +4 -38
  31. data/lib/rmobio/doc/classes/Rmobio/Rxml/XformsTransformer.src/M000029.html +4 -38
  32. data/lib/rmobio/doc/classes/Rmobio/Rxml/XformsTransformer.src/M000030.html +38 -4
  33. data/lib/rmobio/doc/classes/Rmobio/Utils.html +41 -41
  34. data/lib/rmobio/doc/classes/Rmobio/Utils.src/M000031.html +19 -0
  35. data/lib/rmobio/doc/classes/Rmobio/Utils.src/M000032.html +61 -0
  36. data/lib/rmobio/doc/classes/Rmobio/Utils.src/M000033.html +43 -0
  37. data/lib/rmobio/doc/classes/Rmobio/Utils.src/M000034.html +20 -0
  38. data/lib/rmobio/doc/classes/Rmobio/Utils.src/M000035.html +28 -0
  39. data/lib/rmobio/doc/classes/Rmobio/Utils.src/M000036.html +22 -0
  40. data/lib/rmobio/doc/classes/Rmobio/Utils.src/M000037.html +26 -0
  41. data/lib/rmobio/doc/classes/Rmobio.html +5 -0
  42. data/lib/rmobio/doc/created.rid +1 -1
  43. data/lib/rmobio/doc/files/cas_rb.html +1 -1
  44. data/lib/rmobio/doc/files/config_manager_rb.html +10 -10
  45. data/lib/rmobio/doc/files/rxml/base_transformer_rb.html +1 -1
  46. data/lib/rmobio/doc/files/rxml/xforms_transformer_rb.html +1 -1
  47. data/lib/rmobio/doc/files/utils_rb.html +1 -1
  48. data/lib/rmobio/doc/fr_class_index.html +1 -0
  49. data/lib/rmobio/doc/fr_file_index.html +1 -0
  50. data/lib/rmobio/doc/fr_method_index.html +21 -12
  51. data/lib/rmobio/rxml/base_transformer.rb +18 -6
  52. data/lib/rmobio/rxml/xforms_transformer.rb +59 -141
  53. metadata +19 -2
@@ -86,9 +86,9 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000192">add_service_to_login_url</a>&nbsp;&nbsp;
90
- <a href="#M000191">request_cas_response</a>&nbsp;&nbsp;
91
- <a href="#M000190">validate_service_ticket</a>&nbsp;&nbsp;
89
+ <a href="#M000061">add_service_to_login_url</a>&nbsp;&nbsp;
90
+ <a href="#M000060">request_cas_response</a>&nbsp;&nbsp;
91
+ <a href="#M000059">validate_service_ticket</a>&nbsp;&nbsp;
92
92
  </div>
93
93
  </div>
94
94
 
@@ -123,12 +123,12 @@
123
123
  <div id="methods">
124
124
  <h3 class="section-bar">Public Instance methods</h3>
125
125
 
126
- <div id="method-M000192" class="method-detail">
127
- <a name="M000192"></a>
126
+ <div id="method-M000061" class="method-detail">
127
+ <a name="M000061"></a>
128
128
 
129
129
  <div class="method-heading">
130
- <a href="Client.src/M000192.html" target="Code" class="method-signature"
131
- onclick="popupCode('Client.src/M000192.html');return false;">
130
+ <a href="Client.src/M000061.html" target="Code" class="method-signature"
131
+ onclick="popupCode('Client.src/M000061.html');return false;">
132
132
  <span class="method-name">add_service_to_login_url</span><span class="method-args">(service_url)</span>
133
133
  </a>
134
134
  </div>
@@ -140,12 +140,12 @@ Override to add the domain param
140
140
  </div>
141
141
  </div>
142
142
 
143
- <div id="method-M000191" class="method-detail">
144
- <a name="M000191"></a>
143
+ <div id="method-M000060" class="method-detail">
144
+ <a name="M000060"></a>
145
145
 
146
146
  <div class="method-heading">
147
- <a href="Client.src/M000191.html" target="Code" class="method-signature"
148
- onclick="popupCode('Client.src/M000191.html');return false;">
147
+ <a href="Client.src/M000060.html" target="Code" class="method-signature"
148
+ onclick="popupCode('Client.src/M000060.html');return false;">
149
149
  <span class="method-name">request_cas_response</span><span class="method-args">(uri, type)</span>
150
150
  </a>
151
151
  </div>
@@ -159,12 +159,12 @@ uninitialized in the base class
159
159
  </div>
160
160
  </div>
161
161
 
162
- <div id="method-M000190" class="method-detail">
163
- <a name="M000190"></a>
162
+ <div id="method-M000059" class="method-detail">
163
+ <a name="M000059"></a>
164
164
 
165
165
  <div class="method-heading">
166
- <a href="Client.src/M000190.html" target="Code" class="method-signature"
167
- onclick="popupCode('Client.src/M000190.html');return false;">
166
+ <a href="Client.src/M000059.html" target="Code" class="method-signature"
167
+ onclick="popupCode('Client.src/M000059.html');return false;">
168
168
  <span class="method-name">validate_service_ticket</span><span class="method-args">(st)</span>
169
169
  </a>
170
170
  </div>
@@ -0,0 +1,33 @@
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>
7
+ <head>
8
+ <title>validate_service_ticket (Rmobio::Cas::Client)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File cas.rb, line 71</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">validate_service_ticket</span>(<span class="ruby-identifier">st</span>)
15
+ <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>.<span class="ruby-identifier">debug</span> <span class="ruby-value str">'CAS: Starting to validate service ticket...'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">not</span> <span class="ruby-keyword kw">defined?</span> <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>
16
+ <span class="ruby-identifier">uri</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">validate_url</span>)
17
+ <span class="ruby-identifier">h</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span> <span class="ruby-value">? </span><span class="ruby-identifier">query_to_hash</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>) <span class="ruby-operator">:</span> {}
18
+ <span class="ruby-identifier">h</span>[<span class="ruby-value str">'service'</span>] = <span class="ruby-identifier">st</span>.<span class="ruby-identifier">service</span>
19
+ <span class="ruby-identifier">h</span>[<span class="ruby-value str">'ticket'</span>] = <span class="ruby-identifier">st</span>.<span class="ruby-identifier">ticket</span>
20
+ <span class="ruby-identifier">h</span>[<span class="ruby-value str">'renew'</span>] = <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">st</span>.<span class="ruby-identifier">renew</span>
21
+ <span class="ruby-identifier">h</span>[<span class="ruby-value str">'pgtUrl'</span>] = <span class="ruby-identifier">proxy_callback_url</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">proxy_callback_url</span>
22
+
23
+ <span class="ruby-comment cmt"># Add our domain parameter</span>
24
+ <span class="ruby-identifier">h</span>[<span class="ruby-value str">'domain'</span>] = <span class="ruby-constant">Rmobio</span><span class="ruby-operator">::</span><span class="ruby-constant">Utils</span>.<span class="ruby-identifier">get_domain</span>(<span class="ruby-identifier">st</span>.<span class="ruby-identifier">service</span>)
25
+ <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span> = <span class="ruby-identifier">hash_to_query</span>(<span class="ruby-identifier">h</span>)
26
+
27
+ <span class="ruby-comment cmt"># Override the validation response</span>
28
+ <span class="ruby-identifier">st</span>.<span class="ruby-identifier">response</span> = <span class="ruby-identifier">request_cas_response</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-constant">Rmobio</span><span class="ruby-operator">::</span><span class="ruby-constant">Cas</span><span class="ruby-operator">::</span><span class="ruby-constant">MobioValidationResponse</span>)
29
+ <span class="ruby-ivar">@xml_response</span> = <span class="ruby-identifier">st</span>.<span class="ruby-identifier">response</span>
30
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">st</span>
31
+ <span class="ruby-keyword kw">end</span></pre>
32
+ </body>
33
+ </html>
@@ -0,0 +1,33 @@
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>
7
+ <head>
8
+ <title>request_cas_response (Rmobio::Cas::Client)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File cas.rb, line 92</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">request_cas_response</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">type</span>)
15
+ <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span> <span class="ruby-node">&quot;Requesting CAS response form URI #{uri.inspect}&quot;</span>
16
+
17
+ <span class="ruby-identifier">uri</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">URI</span>
18
+ <span class="ruby-identifier">https</span> = <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTP</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">host</span>, <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">port</span>)
19
+ <span class="ruby-identifier">https</span>.<span class="ruby-identifier">use_ssl</span> = (<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'https'</span>)
20
+ <span class="ruby-identifier">raw_res</span> = <span class="ruby-identifier">https</span>.<span class="ruby-identifier">start</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">conn</span><span class="ruby-operator">|</span>
21
+ <span class="ruby-identifier">conn</span>.<span class="ruby-identifier">get</span>(<span class="ruby-node">&quot;#{uri.path}?#{uri.query}&quot;</span>)
22
+ <span class="ruby-keyword kw">end</span>
23
+
24
+ <span class="ruby-comment cmt"># TODO: check to make sure that response code is 200 and handle errors</span>
25
+ <span class="ruby-comment cmt"># otherwise</span>
26
+
27
+ <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>.<span class="ruby-identifier">debug</span> <span class="ruby-value str">&quot;CAS Responded with &quot;</span> <span class="ruby-operator">+</span>
28
+ <span class="ruby-node">&quot;#{raw_res.inspect}:\n#{raw_res.body}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">not</span> <span class="ruby-keyword kw">defined?</span> <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>
29
+
30
+ <span class="ruby-identifier">type</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">raw_res</span>.<span class="ruby-identifier">body</span>)
31
+ <span class="ruby-keyword kw">end</span></pre>
32
+ </body>
33
+ </html>
@@ -0,0 +1,27 @@
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>
7
+ <head>
8
+ <title>add_service_to_login_url (Rmobio::Cas::Client)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File cas.rb, line 112</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_service_to_login_url</span>(<span class="ruby-identifier">service_url</span>)
15
+ <span class="ruby-identifier">uri</span> = <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">service_url</span>)
16
+ <span class="ruby-identifier">domain</span> = <span class="ruby-constant">Rmobio</span><span class="ruby-operator">::</span><span class="ruby-constant">Utils</span>.<span class="ruby-identifier">get_domain</span>(<span class="ruby-identifier">service_url</span>)
17
+
18
+ <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">domain</span>.<span class="ruby-identifier">nil?</span>
19
+ <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>.<span class="ruby-identifier">debug</span> <span class="ruby-value str">'CAS: Adding domain parameter '</span> <span class="ruby-operator">+</span>
20
+ <span class="ruby-identifier">domain</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'...'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">not</span> <span class="ruby-keyword kw">defined?</span> <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>
21
+ <span class="ruby-identifier">param_token</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">&quot;?&quot;</span>).<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-value str">'?'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'&amp;'</span>
22
+ <span class="ruby-identifier">uri</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">param_token</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'domain='</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">domain</span>
23
+ <span class="ruby-keyword kw">end</span>
24
+ <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>
25
+ <span class="ruby-keyword kw">end</span></pre>
26
+ </body>
27
+ </html>
@@ -86,8 +86,8 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000195">configure</a>&nbsp;&nbsp;
90
- <a href="#M000196">filter</a>&nbsp;&nbsp;
89
+ <a href="#M000064">configure</a>&nbsp;&nbsp;
90
+ <a href="#M000065">filter</a>&nbsp;&nbsp;
91
91
  </div>
92
92
  </div>
93
93
 
@@ -109,30 +109,30 @@
109
109
  <div id="methods">
110
110
  <h3 class="section-bar">Public Class methods</h3>
111
111
 
112
- <div id="method-M000195" class="method-detail">
113
- <a name="M000195"></a>
112
+ <div id="method-M000064" class="method-detail">
113
+ <a name="M000064"></a>
114
114
 
115
115
  <div class="method-heading">
116
- <a href="MobioCasFilter.src/M000195.html" target="Code" class="method-signature"
117
- onclick="popupCode('MobioCasFilter.src/M000195.html');return false;">
116
+ <a href="MobioCasFilter.src/M000064.html" target="Code" class="method-signature"
117
+ onclick="popupCode('MobioCasFilter.src/M000064.html');return false;">
118
118
  <span class="method-name">configure</span><span class="method-args">(config)</span>
119
119
  </a>
120
120
  </div>
121
121
 
122
122
  <div class="method-description">
123
123
  <p>
124
- Override <a href="MobioCasFilter.html#M000195">configure</a> so we use our
124
+ Override <a href="MobioCasFilter.html#M000064">configure</a> so we use our
125
125
  cas client
126
126
  </p>
127
127
  </div>
128
128
  </div>
129
129
 
130
- <div id="method-M000196" class="method-detail">
131
- <a name="M000196"></a>
130
+ <div id="method-M000065" class="method-detail">
131
+ <a name="M000065"></a>
132
132
 
133
133
  <div class="method-heading">
134
- <a href="MobioCasFilter.src/M000196.html" target="Code" class="method-signature"
135
- onclick="popupCode('MobioCasFilter.src/M000196.html');return false;">
134
+ <a href="MobioCasFilter.src/M000065.html" target="Code" class="method-signature"
135
+ onclick="popupCode('MobioCasFilter.src/M000065.html');return false;">
136
136
  <span class="method-name">filter</span><span class="method-args">(controller)</span>
137
137
  </a>
138
138
  </div>
@@ -140,7 +140,7 @@ cas client
140
140
  <div class="method-description">
141
141
  <p>
142
142
  Here&#8216;s where we override the <a
143
- href="MobioCasFilter.html#M000196">filter</a>
143
+ href="MobioCasFilter.html#M000065">filter</a>
144
144
  </p>
145
145
  </div>
146
146
  </div>
@@ -0,0 +1,21 @@
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>
7
+ <head>
8
+ <title>configure (Rmobio::Cas::MobioCasFilter)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File cas.rb, line 129</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">configure</span>(<span class="ruby-identifier">config</span>)
15
+ <span class="ruby-ivar">@@config</span> = <span class="ruby-identifier">config</span>
16
+ <span class="ruby-ivar">@@config</span>[<span class="ruby-identifier">:logger</span>] = <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@@config</span>[<span class="ruby-identifier">:logger</span>]
17
+ <span class="ruby-ivar">@@client</span> = <span class="ruby-constant">Rmobio</span><span class="ruby-operator">::</span><span class="ruby-constant">Cas</span><span class="ruby-operator">::</span><span class="ruby-constant">Client</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">config</span>)
18
+ <span class="ruby-ivar">@@log</span> = <span class="ruby-identifier">client</span>.<span class="ruby-identifier">log</span>
19
+ <span class="ruby-keyword kw">end</span></pre>
20
+ </body>
21
+ </html>
@@ -0,0 +1,50 @@
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>
7
+ <head>
8
+ <title>filter (Rmobio::Cas::MobioCasFilter)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File cas.rb, line 137</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">filter</span>(<span class="ruby-identifier">controller</span>)
15
+ <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>.<span class="ruby-identifier">debug</span> <span class="ruby-value str">'CAS: Starting filter...'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">not</span> <span class="ruby-keyword kw">defined?</span> <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>
16
+
17
+ <span class="ruby-ivar">@handset_id</span> = <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">params</span>[<span class="ruby-identifier">:handsetid</span>]
18
+
19
+ <span class="ruby-comment cmt"># handsetid gets appended to request uri, we need to remove it for </span>
20
+ <span class="ruby-comment cmt"># service validation to work</span>
21
+ <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">params</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'handsetid'</span>)
22
+
23
+ <span class="ruby-comment cmt"># Call filter on the base class</span>
24
+ <span class="ruby-constant">CASClient</span><span class="ruby-operator">::</span><span class="ruby-constant">Frameworks</span><span class="ruby-operator">::</span><span class="ruby-constant">Rails</span><span class="ruby-operator">::</span><span class="ruby-constant">Filter</span>.<span class="ruby-identifier">filter</span>(<span class="ruby-identifier">controller</span>)
25
+
26
+ <span class="ruby-comment cmt"># Now let's put the handsetid back into the request in case we do a redirect</span>
27
+ <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">params</span>[<span class="ruby-identifier">:handsetid</span>] = <span class="ruby-ivar">@handset_id</span>
28
+
29
+ <span class="ruby-comment cmt"># Use the overloaded cas client to retrieve uuid. This should only</span>
30
+ <span class="ruby-comment cmt"># happen after service ticket validation.</span>
31
+ <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@@client</span>.<span class="ruby-identifier">xml_response</span>.<span class="ruby-identifier">nil?</span>
32
+ <span class="ruby-ivar">@uuid</span> = <span class="ruby-ivar">@@client</span>.<span class="ruby-identifier">xml_response</span>.<span class="ruby-identifier">uuid</span>
33
+ <span class="ruby-keyword kw">end</span>
34
+
35
+ <span class="ruby-comment cmt"># Setup the uuid and handset_id session variables</span>
36
+ <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@uuid</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@uuid</span> <span class="ruby-operator">==</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@handset_id</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@handset_id</span> <span class="ruby-operator">==</span> <span class="ruby-value str">''</span>
37
+ <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">session</span>[<span class="ruby-identifier">:uuid</span>] = <span class="ruby-ivar">@uuid</span>
38
+ <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">session</span>[<span class="ruby-identifier">:handset_id</span>] = <span class="ruby-ivar">@handset_id</span>
39
+ <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>.<span class="ruby-identifier">debug</span> <span class="ruby-value str">'CAS: Stored cas uuid: '</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@uuid</span> <span class="ruby-operator">+</span> <span class="ruby-value str">' and handset_id: '</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@handset_id</span> <span class="ruby-operator">+</span>
40
+ <span class="ruby-value str">' into the session.'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">not</span> <span class="ruby-keyword kw">defined?</span> <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>
41
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
42
+ <span class="ruby-keyword kw">else</span>
43
+ <span class="ruby-comment cmt"># Should only happen on initial redirect</span>
44
+ <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>.<span class="ruby-identifier">debug</span> <span class="ruby-value str">'CAS: MobioCasFilter cannot read the uuid/handset_id '</span> <span class="ruby-operator">+</span>
45
+ <span class="ruby-value str">'attributes for the user!'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">not</span> <span class="ruby-keyword kw">defined?</span> <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>
46
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
47
+ <span class="ruby-keyword kw">end</span>
48
+ <span class="ruby-keyword kw">end</span></pre>
49
+ </body>
50
+ </html>
@@ -86,8 +86,8 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000193">new</a>&nbsp;&nbsp;
90
- <a href="#M000194">parse_uuid</a>&nbsp;&nbsp;
89
+ <a href="#M000062">new</a>&nbsp;&nbsp;
90
+ <a href="#M000063">parse_uuid</a>&nbsp;&nbsp;
91
91
  </div>
92
92
  </div>
93
93
 
@@ -122,12 +122,12 @@
122
122
  <div id="methods">
123
123
  <h3 class="section-bar">Public Class methods</h3>
124
124
 
125
- <div id="method-M000193" class="method-detail">
126
- <a name="M000193"></a>
125
+ <div id="method-M000062" class="method-detail">
126
+ <a name="M000062"></a>
127
127
 
128
128
  <div class="method-heading">
129
- <a href="MobioValidationResponse.src/M000193.html" target="Code" class="method-signature"
130
- onclick="popupCode('MobioValidationResponse.src/M000193.html');return false;">
129
+ <a href="MobioValidationResponse.src/M000062.html" target="Code" class="method-signature"
130
+ onclick="popupCode('MobioValidationResponse.src/M000062.html');return false;">
131
131
  <span class="method-name">new</span><span class="method-args">(raw_text)</span>
132
132
  </a>
133
133
  </div>
@@ -141,12 +141,12 @@ Parse out our custom attributes
141
141
 
142
142
  <h3 class="section-bar">Public Instance methods</h3>
143
143
 
144
- <div id="method-M000194" class="method-detail">
145
- <a name="M000194"></a>
144
+ <div id="method-M000063" class="method-detail">
145
+ <a name="M000063"></a>
146
146
 
147
147
  <div class="method-heading">
148
- <a href="MobioValidationResponse.src/M000194.html" target="Code" class="method-signature"
149
- onclick="popupCode('MobioValidationResponse.src/M000194.html');return false;">
148
+ <a href="MobioValidationResponse.src/M000063.html" target="Code" class="method-signature"
149
+ onclick="popupCode('MobioValidationResponse.src/M000063.html');return false;">
150
150
  <span class="method-name">parse_uuid</span><span class="method-args">(raw_text)</span>
151
151
  </a>
152
152
  </div>
@@ -0,0 +1,19 @@
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>
7
+ <head>
8
+ <title>new (Rmobio::Cas::MobioValidationResponse)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File cas.rb, line 44</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">raw_text</span>)
15
+ <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">raw_text</span>)
16
+ <span class="ruby-identifier">parse_uuid</span>(<span class="ruby-identifier">raw_text</span>)
17
+ <span class="ruby-keyword kw">end</span></pre>
18
+ </body>
19
+ </html>
@@ -0,0 +1,31 @@
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>
7
+ <head>
8
+ <title>parse_uuid (Rmobio::Cas::MobioValidationResponse)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File cas.rb, line 49</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_uuid</span>(<span class="ruby-identifier">raw_text</span>)
15
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">BadResponseException</span>,
16
+ <span class="ruby-value str">&quot;CAS response is empty/blank.&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">raw_text</span>.<span class="ruby-identifier">blank?</span>
17
+
18
+ <span class="ruby-ivar">@xml</span> = <span class="ruby-identifier">check_and_parse_xml</span>(<span class="ruby-identifier">raw_text</span>)
19
+
20
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">is_success?</span>
21
+ <span class="ruby-ivar">@uuid</span> = <span class="ruby-ivar">@xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;cas:uuid&quot;</span>].<span class="ruby-identifier">text</span>.<span class="ruby-identifier">strip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">&quot;cas:uuid&quot;</span>]
22
+ <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>.<span class="ruby-identifier">info</span> <span class="ruby-value str">'CAS: Successfully authenticated user '</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@uuid</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span>
23
+ <span class="ruby-value str">'...'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">not</span> <span class="ruby-keyword kw">defined?</span> <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>
24
+ <span class="ruby-keyword kw">else</span>
25
+ <span class="ruby-comment cmt"># this should never happen, since the response should already have</span>
26
+ <span class="ruby-comment cmt"># been recognized as invalid</span>
27
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">BadResponseException</span>, <span class="ruby-node">&quot;BAD CAS RESPONSE:\n#{raw_text.inspect}\n\nXML DOC:\n#{@xml.inspect}&quot;</span>
28
+ <span class="ruby-keyword kw">end</span>
29
+ <span class="ruby-keyword kw">end</span></pre>
30
+ </body>
31
+ </html>
@@ -97,6 +97,11 @@
97
97
 
98
98
  <div class="name-list">
99
99
  <table summary="Constants">
100
+ <tr class="top-aligned-row context-row">
101
+ <td class="context-item-name">EXTERNAL_CONTEXT_PROP</td>
102
+ <td>=</td>
103
+ <td class="context-item-value">'_external_context' unless defined? EXTERNAL_CONTEXT_PROP</td>
104
+ </tr>
100
105
  <tr class="top-aligned-row context-row">
101
106
  <td class="context-item-name">MOBIO_CONFIG</td>
102
107
  <td>=</td>
@@ -10,18 +10,21 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File config_manager.rb, line 101</span>
13
+ <pre><span class="ruby-comment cmt"># File config_manager.rb, line 108</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_external_context</span>(<span class="ruby-identifier">url</span>=<span class="ruby-keyword kw">nil</span>)
15
- <span class="ruby-identifier">external_context_prop</span> = <span class="ruby-value str">&quot;_external_context&quot;</span>
16
15
 
17
16
  <span class="ruby-identifier">context</span> = <span class="ruby-identifier">request</span>.<span class="ruby-identifier">env</span>[<span class="ruby-value str">'HTTP_MOBIO_CONTEXT'</span>]
18
17
 
19
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span> <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">context</span> <span class="ruby-operator">==</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">url</span>
20
- <span class="ruby-identifier">external_context</span> = <span class="ruby-constant">MOBIO_CONFIG</span>[<span class="ruby-identifier">url</span>].<span class="ruby-identifier">gsub</span>(<span class="ruby-identifier">external_context_prop</span>, <span class="ruby-identifier">context</span>)
21
- <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>.<span class="ruby-identifier">debug</span> <span class="ruby-value str">'Utils: Setting the uri to: &quot;'</span> <span class="ruby-operator">+</span>
22
- <span class="ruby-identifier">external_context</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&quot; for the current request.'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">not</span> <span class="ruby-keyword kw">defined?</span> <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>
23
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">external_context</span>
24
- <span class="ruby-keyword kw">end</span>
18
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">url</span>
19
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">context</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">''</span>
20
+ <span class="ruby-identifier">external_context</span> = <span class="ruby-constant">MOBIO_CONFIG</span>[<span class="ruby-identifier">url</span>].<span class="ruby-identifier">gsub</span>(<span class="ruby-constant">EXTERNAL_CONTEXT_PROP</span>, <span class="ruby-identifier">context</span>)
21
+ <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>.<span class="ruby-identifier">debug</span> <span class="ruby-value str">'ConfigManager: Setting the uri to: &quot;'</span> <span class="ruby-operator">+</span>
22
+ <span class="ruby-identifier">external_context</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&quot; for the current request.'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">not</span> <span class="ruby-keyword kw">defined?</span> <span class="ruby-constant">RAILS_DEFAULT_LOGGER</span>
23
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">external_context</span>
24
+ <span class="ruby-keyword kw">else</span>
25
+ <span class="ruby-keyword kw">return</span> <span class="ruby-constant">MOBIO_CONFIG</span>[<span class="ruby-identifier">url</span>].<span class="ruby-identifier">gsub</span>(<span class="ruby-value str">'/'</span> <span class="ruby-operator">+</span> <span class="ruby-constant">EXTERNAL_CONTEXT_PROP</span>, <span class="ruby-value str">''</span>)
26
+ <span class="ruby-keyword kw">end</span>
27
+ <span class="ruby-keyword kw">end</span>
25
28
  <span class="ruby-keyword kw">end</span></pre>
26
29
  </body>
27
30
  </html>
@@ -132,9 +132,11 @@ The above code generates the following xhtml in Firefox:
132
132
  <h3 class="section-bar">Methods</h3>
133
133
 
134
134
  <div class="name-list">
135
+ <a href="#M000058">back_tag</a>&nbsp;&nbsp;
135
136
  <a href="#M000033">body</a>&nbsp;&nbsp;
136
137
  <a href="#M000040">button</a>&nbsp;&nbsp;
137
138
  <a href="#M000032">doctype</a>&nbsp;&nbsp;
139
+ <a href="#M000057">exit_tag</a>&nbsp;&nbsp;
138
140
  <a href="#M000038">form</a>&nbsp;&nbsp;
139
141
  <a href="#M000044">image</a>&nbsp;&nbsp;
140
142
  <a href="#M000036">input</a>&nbsp;&nbsp;
@@ -149,6 +151,7 @@ The above code generates the following xhtml in Firefox:
149
151
  <a href="#M000052">softkey</a>&nbsp;&nbsp;
150
152
  <a href="#M000037">submit_tag</a>&nbsp;&nbsp;
151
153
  <a href="#M000050">switch</a>&nbsp;&nbsp;
154
+ <a href="#M000056">syscall</a>&nbsp;&nbsp;
152
155
  <a href="#M000049">tab</a>&nbsp;&nbsp;
153
156
  <a href="#M000046">table</a>&nbsp;&nbsp;
154
157
  <a href="#M000048">table_cell</a>&nbsp;&nbsp;
@@ -240,6 +243,20 @@ Final document is view_buffer + model_buffer for some subclass transformer
240
243
 
241
244
  <h3 class="section-bar">Public Instance methods</h3>
242
245
 
246
+ <div id="method-M000058" class="method-detail">
247
+ <a name="M000058"></a>
248
+
249
+ <div class="method-heading">
250
+ <a href="BaseTransformer.src/M000058.html" target="Code" class="method-signature"
251
+ onclick="popupCode('BaseTransformer.src/M000058.html');return false;">
252
+ <span class="method-name">back_tag</span><span class="method-args">(doc)</span>
253
+ </a>
254
+ </div>
255
+
256
+ <div class="method-description">
257
+ </div>
258
+ </div>
259
+
243
260
  <div id="method-M000033" class="method-detail">
244
261
  <a name="M000033"></a>
245
262
 
@@ -307,6 +324,20 @@ Generate standdard xhtml document header
307
324
  </div>
308
325
  </div>
309
326
 
327
+ <div id="method-M000057" class="method-detail">
328
+ <a name="M000057"></a>
329
+
330
+ <div class="method-heading">
331
+ <a href="BaseTransformer.src/M000057.html" target="Code" class="method-signature"
332
+ onclick="popupCode('BaseTransformer.src/M000057.html');return false;">
333
+ <span class="method-name">exit_tag</span><span class="method-args">(doc)</span>
334
+ </a>
335
+ </div>
336
+
337
+ <div class="method-description">
338
+ </div>
339
+ </div>
340
+
310
341
  <div id="method-M000038" class="method-detail">
311
342
  <a name="M000038"></a>
312
343
 
@@ -661,6 +692,20 @@ Line break
661
692
  </div>
662
693
  </div>
663
694
 
695
+ <div id="method-M000056" class="method-detail">
696
+ <a name="M000056"></a>
697
+
698
+ <div class="method-heading">
699
+ <a href="BaseTransformer.src/M000056.html" target="Code" class="method-signature"
700
+ onclick="popupCode('BaseTransformer.src/M000056.html');return false;">
701
+ <span class="method-name">syscall</span><span class="method-args">(doc, name, address=nil, address_ref=nil, message=nil, message_ref=nil)</span>
702
+ </a>
703
+ </div>
704
+
705
+ <div class="method-description">
706
+ </div>
707
+ </div>
708
+
664
709
  <div id="method-M000049" class="method-detail">
665
710
  <a name="M000049"></a>
666
711
 
@@ -0,0 +1,17 @@
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>
7
+ <head>
8
+ <title>syscall (Rmobio::Rxml::BaseTransformer)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File rxml/base_transformer.rb, line 337</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">syscall</span>(<span class="ruby-identifier">doc</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">address</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">address_ref</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">message</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">message_ref</span>=<span class="ruby-keyword kw">nil</span>)
15
+ <span class="ruby-keyword kw">end</span></pre>
16
+ </body>
17
+ </html>
@@ -0,0 +1,17 @@
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>
7
+ <head>
8
+ <title>exit_tag (Rmobio::Rxml::BaseTransformer)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File rxml/base_transformer.rb, line 339</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">exit_tag</span>(<span class="ruby-identifier">doc</span>)
15
+ <span class="ruby-keyword kw">end</span></pre>
16
+ </body>
17
+ </html>