Capcode 0.8.6 → 0.8.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. data/README.rdoc +72 -1
  2. data/doc/rdoc/classes/Capcode.html +549 -444
  3. data/doc/rdoc/classes/Capcode/Helpers.html +293 -133
  4. data/doc/rdoc/classes/Capcode/Helpers/Authorization.html +60 -29
  5. data/doc/rdoc/created.rid +1 -1
  6. data/doc/rdoc/files/README_rdoc.html +94 -8
  7. data/doc/rdoc/files/lib/capcode/configuration_rb.html +101 -0
  8. data/doc/rdoc/files/lib/capcode/helpers/auth_rb.html +1 -32
  9. data/doc/rdoc/files/lib/capcode/render/erb_rb.html +1 -1
  10. data/doc/rdoc/files/lib/capcode/render/haml_rb.html +1 -1
  11. data/doc/rdoc/files/lib/capcode/render/markaby_rb.html +1 -1
  12. data/doc/rdoc/files/lib/capcode/render/sass_rb.html +1 -1
  13. data/doc/rdoc/files/lib/capcode/render/text_rb.html +1 -1
  14. data/doc/rdoc/files/lib/capcode_rb.html +8 -1
  15. data/doc/rdoc/fr_file_index.html +1 -0
  16. data/doc/rdoc/fr_method_index.html +19 -11
  17. data/examples/blog-couchdb.rb +4 -3
  18. data/examples/erb/cf.rhtml +1 -0
  19. data/examples/haml/cf.haml +4 -1
  20. data/examples/render-erb.rb +4 -1
  21. data/examples/render-haml_sass.rb +6 -2
  22. data/examples/render-image.rb +70 -0
  23. data/examples/render-static.rb +4 -1
  24. data/examples/render-static.ru +0 -2
  25. data/examples/render-use.rb +31 -0
  26. data/examples/static/coderay.css +131 -0
  27. data/examples/static/index.html +19 -0
  28. data/lib/capcode.rb +125 -76
  29. data/lib/capcode/configuration.rb +39 -0
  30. data/lib/capcode/helpers/auth.rb +22 -23
  31. data/lib/capcode/render/erb.rb +25 -18
  32. data/lib/capcode/render/haml.rb +28 -19
  33. data/lib/capcode/render/markaby.rb +2 -1
  34. data/lib/capcode/render/sass.rb +19 -13
  35. data/lib/capcode/render/text.rb +1 -1
  36. data/lib/capcode/version.rb +1 -1
  37. metadata +8 -2
@@ -72,6 +72,37 @@
72
72
 
73
73
  <div id="contextContent">
74
74
 
75
+ <div id="description">
76
+ <p>
77
+ Because this helper was trully inspired by this post : <a
78
+ href="http://www.gittr.com/index.php/archive/sinatra-basic-authentication-selectively-applied">www.gittr.com/index.php/archive/sinatra-basic-authentication-selectively-applied</a>/
79
+ and because the code in this post was extracted out of Wink, this file
80
+ follow the Wink license :
81
+ </p>
82
+ <p>
83
+ Permission is hereby granted, free of charge, to any person obtaining a
84
+ copy of this software and associated documentation files (the
85
+ &quot;Software&quot;), to deal in the Software without restriction,
86
+ including without limitation the rights to use, copy, modify, merge,
87
+ publish, distribute, sublicense, and/or sell copies of the Software, and to
88
+ permit persons to whom the Software is furnished to do so, subject to the
89
+ following conditions:
90
+ </p>
91
+ <p>
92
+ The above copyright notice and this permission notice shall be included in
93
+ all copies or substantial portions of the Software.
94
+ </p>
95
+ <p>
96
+ THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND,
97
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
98
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
99
+ NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
100
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
101
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
102
+ USE OR OTHER DEALINGS IN THE SOFTWARE.
103
+ </p>
104
+
105
+ </div>
75
106
 
76
107
 
77
108
  </div>
@@ -80,7 +111,7 @@
80
111
  <h3 class="section-bar">Methods</h3>
81
112
 
82
113
  <div class="name-list">
83
- <a href="#M000018">http_authentication</a>&nbsp;&nbsp;
114
+ <a href="#M000026">http_authentication</a>&nbsp;&nbsp;
84
115
  </div>
85
116
  </div>
86
117
 
@@ -102,11 +133,11 @@
102
133
  <div id="methods">
103
134
  <h3 class="section-bar">Public Instance methods</h3>
104
135
 
105
- <div id="method-M000018" class="method-detail">
106
- <a name="M000018"></a>
136
+ <div id="method-M000026" class="method-detail">
137
+ <a name="M000026"></a>
107
138
 
108
139
  <div class="method-heading">
109
- <a href="#M000018" class="method-signature">
140
+ <a href="#M000026" class="method-signature">
110
141
  <span class="method-name">http_authentication</span><span class="method-args">( opts = {}, &amp;b )</span>
111
142
  </a>
112
143
  </div>
@@ -142,32 +173,32 @@ The block must return a Hash of username =&gt; password like that :
142
173
  }
143
174
  </pre>
144
175
  <p><a class="source-toggle" href="#"
145
- onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
146
- <div class="method-source-code" id="M000018-source">
176
+ onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
177
+ <div class="method-source-code" id="M000026-source">
147
178
  <pre>
148
- <span class="ruby-comment cmt"># File lib/capcode/helpers/auth.rb, line 106</span>
149
- 106: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">http_authentication</span>( <span class="ruby-identifier">opts</span> = {}, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span> )
150
- 107: <span class="ruby-ivar">@auth</span> = <span class="ruby-keyword kw">nil</span>
151
- 108:
152
- 109: <span class="ruby-ivar">@auth_type</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:type</span>]<span class="ruby-operator">||</span><span class="ruby-identifier">:basic</span>
153
- 110: <span class="ruby-identifier">realm</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:realm</span>]<span class="ruby-operator">||</span><span class="ruby-value str">&quot;Capcode.app&quot;</span>
154
- 111: <span class="ruby-identifier">opaque</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:opaque</span>]<span class="ruby-operator">||</span><span class="ruby-value str">&quot;opaque&quot;</span>
155
- 112: <span class="ruby-ivar">@authorizations</span> = <span class="ruby-identifier">b</span>
156
- 113:
157
- 114: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">authorized?</span>
158
- 115:
159
- 116: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@auth_type</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:basic</span>
160
- 117: <span class="ruby-identifier">basic_unauthorized!</span>(<span class="ruby-identifier">realm</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">auth</span>.<span class="ruby-identifier">provided?</span>
161
- 118: <span class="ruby-identifier">bad_request!</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">auth</span>.<span class="ruby-identifier">basic?</span>
162
- 119: <span class="ruby-identifier">basic_unauthorized!</span>(<span class="ruby-identifier">realm</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">basic_authorize</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">auth</span>.<span class="ruby-identifier">credentials</span>)
163
- 120: <span class="ruby-keyword kw">else</span>
164
- 121: <span class="ruby-identifier">digest_unauthorized!</span>(<span class="ruby-identifier">realm</span>, <span class="ruby-identifier">opaque</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">auth</span>.<span class="ruby-identifier">provided?</span>
165
- 122: <span class="ruby-identifier">bad_request!</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">auth</span>.<span class="ruby-identifier">digest?</span>
166
- 123: <span class="ruby-identifier">digest_unauthorized!</span>(<span class="ruby-identifier">realm</span>, <span class="ruby-identifier">opaque</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">digest_authorize</span>
167
- 124: <span class="ruby-keyword kw">end</span>
168
- 125:
169
- 126: <span class="ruby-identifier">request</span>.<span class="ruby-identifier">env</span>[<span class="ruby-value str">'REMOTE_USER'</span>] = <span class="ruby-identifier">auth</span>.<span class="ruby-identifier">username</span>
170
- 127: <span class="ruby-keyword kw">end</span>
179
+ <span class="ruby-comment cmt"># File lib/capcode/helpers/auth.rb, line 105</span>
180
+ 105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">http_authentication</span>( <span class="ruby-identifier">opts</span> = {}, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span> )
181
+ 106: <span class="ruby-ivar">@auth</span> = <span class="ruby-keyword kw">nil</span>
182
+ 107:
183
+ 108: <span class="ruby-ivar">@auth_type</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:type</span>]<span class="ruby-operator">||</span><span class="ruby-identifier">:basic</span>
184
+ 109: <span class="ruby-identifier">realm</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:realm</span>]<span class="ruby-operator">||</span><span class="ruby-value str">&quot;Capcode.app&quot;</span>
185
+ 110: <span class="ruby-identifier">opaque</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:opaque</span>]<span class="ruby-operator">||</span><span class="ruby-value str">&quot;opaque&quot;</span>
186
+ 111: <span class="ruby-ivar">@authorizations</span> = <span class="ruby-identifier">b</span>
187
+ 112:
188
+ 113: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">authorized?</span>
189
+ 114:
190
+ 115: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@auth_type</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:basic</span>
191
+ 116: <span class="ruby-identifier">basic_unauthorized!</span>(<span class="ruby-identifier">realm</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">auth</span>.<span class="ruby-identifier">provided?</span>
192
+ 117: <span class="ruby-identifier">bad_request!</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">auth</span>.<span class="ruby-identifier">basic?</span>
193
+ 118: <span class="ruby-identifier">basic_unauthorized!</span>(<span class="ruby-identifier">realm</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">basic_authorize</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">auth</span>.<span class="ruby-identifier">credentials</span>)
194
+ 119: <span class="ruby-keyword kw">else</span>
195
+ 120: <span class="ruby-identifier">digest_unauthorized!</span>(<span class="ruby-identifier">realm</span>, <span class="ruby-identifier">opaque</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">auth</span>.<span class="ruby-identifier">provided?</span>
196
+ 121: <span class="ruby-identifier">bad_request!</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">auth</span>.<span class="ruby-identifier">digest?</span>
197
+ 122: <span class="ruby-identifier">digest_unauthorized!</span>(<span class="ruby-identifier">realm</span>, <span class="ruby-identifier">opaque</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">digest_authorize</span>
198
+ 123: <span class="ruby-keyword kw">end</span>
199
+ 124:
200
+ 125: <span class="ruby-identifier">request</span>.<span class="ruby-identifier">env</span>[<span class="ruby-value str">'REMOTE_USER'</span>] = <span class="ruby-identifier">auth</span>.<span class="ruby-identifier">username</span>
201
+ 126: <span class="ruby-keyword kw">end</span>
171
202
  </pre>
172
203
  </div>
173
204
  </div>
@@ -1 +1 @@
1
- Fri, 09 Oct 2009 23:23:19 +0200
1
+ Wed, 21 Oct 2009 16:44:30 +0200
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Fri Oct 09 23:23:13 +0200 2009</td>
59
+ <td>Wed Oct 21 15:27:11 +0200 2009</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -91,6 +91,26 @@ href="http://www.algorithmique.net/capcode">www.algorithmique.net/capcode</a>/
91
91
  <a href="../classes/Capcode.html">Capcode</a> is a web microframework
92
92
  </p>
93
93
  <h2>FEATURES/PROBLEMS:</h2>
94
+ <h3>0.8.7</h3>
95
+ <ul>
96
+ <li>Route&#8216;s captures are now passed to all methods in a coontroller
97
+
98
+ </li>
99
+ <li>Add :content_type option to renderers (see render-image.rb)
100
+
101
+ </li>
102
+ <li>Add <a href="../classes/Capcode.html#M000012">Capcode.set</a> for
103
+ configuration. So Capcode::Herpers#erb_path=, Capcode::Herpers#sass_path=
104
+ and Capcode::Herpers#haml_path= are deprecated, you must now use `set :erb,
105
+ &#8230;&#8217;, `set :sass, &#8230;&#8217; and `set :haml, &#8230;&#8217;
106
+ (see render-erb.rb and render-haml_sass.rb)
107
+
108
+ </li>
109
+ <li>Add <a href="../classes/Capcode.html#M000008">Capcode.use</a> to allow
110
+ usage of Rack middlewares (see render-use.rb)
111
+
112
+ </li>
113
+ </ul>
94
114
  <h3>0.8.6</h3>
95
115
  <ul>
96
116
  <li>HUGE bug correction
@@ -209,7 +229,7 @@ href="../classes/Capcode/Resource.html">Capcode::Resource</a> in your
209
229
  models
210
230
 
211
231
  </li>
212
- <li><a href="../classes/Capcode.html#M000010">Capcode.run</a> now accept a
232
+ <li><a href="../classes/Capcode.html#M000011">Capcode.run</a> now accept a
213
233
  block. The content of the block is executed just before the server start.
214
234
 
215
235
  </li>
@@ -251,12 +271,12 @@ href="http://github.com/judofyr/camping/blob/master/examples/blog.rb">github.com
251
271
  <h3>0.6.0</h3>
252
272
  <ul>
253
273
  <li>Add :root option to <a
254
- href="../classes/Capcode.html#M000010">Capcode.run</a>. This option allow
274
+ href="../classes/Capcode.html#M000011">Capcode.run</a>. This option allow
255
275
  you to specify the root directory for static files
256
276
 
257
277
  </li>
258
278
  <li>Add :working_directory option to <a
259
- href="../classes/Capcode.html#M000010">Capcode.run</a>. This option allow
279
+ href="../classes/Capcode.html#M000011">Capcode.run</a>. This option allow
260
280
  you to specify the working directory
261
281
 
262
282
  </li>
@@ -515,10 +535,76 @@ for complete examples.
515
535
  end
516
536
 
517
537
  end
538
+
539
+ Capcode.run( )
540
+ </pre>
541
+ <h3>HTTP Authentication</h3>
542
+ <pre>
543
+ # file: sample.rb
544
+ require 'rubygems'
545
+ require 'capcode'
546
+
547
+ module Capcode
548
+ class Public &lt; Route '/public'
549
+ def get
550
+ render &quot;This page is not protected&quot;
551
+ end
552
+ end
553
+
554
+ class Private &lt; Route '/private'
555
+ def get
556
+ http_authentication( :type =&gt; :digest, :realm =&gt; &quot;Private part&quot; ) {
557
+ { &quot;greg&quot; =&gt; &quot;p4ssw0rd&quot; }
558
+ }
559
+
560
+ render &quot;This page is private - Hello #{request.env['REMOTE_USER']}&quot;
561
+ end
562
+ end
563
+ end
564
+
565
+ Capcode.run( )
518
566
  </pre>
519
567
  <p>
520
- <a href="../classes/Capcode.html#M000010">Capcode.run</a>( )
568
+ Second example :
521
569
  </p>
570
+ <pre>
571
+ # file: sample.rb
572
+ require 'rubygems'
573
+ require 'capcode'
574
+
575
+ module Capcode
576
+
577
+ http_authentication( :type =&gt; :digest, :realm =&gt; &quot;Private part&quot;, :routes =&gt; ['/admin', '/private'] ) {
578
+ { &quot;greg&quot; =&gt; &quot;p4ssw0rd&quot; }
579
+ }
580
+
581
+ class Public &lt; Route '/public'
582
+ def get
583
+ render &quot;This page is not protected&quot;
584
+ end
585
+ end
586
+
587
+ class Private &lt; Route '/private'
588
+ def get
589
+ render &quot;This page is private - Hello #{request.env['REMOTE_USER']}&quot;
590
+ end
591
+ end
592
+
593
+ class PrivateAgain &lt; Route '/private/again'
594
+ def get
595
+ render &quot;This page is also private - Hello #{request.env['REMOTE_USER']}&quot;
596
+ end
597
+ end
598
+
599
+ class Admin &lt; Route '/admin'
600
+ def get
601
+ render &quot;This page is private - Hello #{request.env['REMOTE_USER']}&quot;
602
+ end
603
+ end
604
+ end
605
+
606
+ Capcode.run( )
607
+ </pre>
522
608
  <h2>DEPLOYMENT</h2>
523
609
  <h3>With Passenger</h3>
524
610
  <p>
@@ -531,7 +617,7 @@ First create the directory structure :
531
617
  </pre>
532
618
  <p>
533
619
  Then put your app in <tt>my_app/</tt> and comment or remove the line with
534
- <tt><a href="../classes/Capcode.html#M000010">Capcode.run</a></tt>
620
+ <tt><a href="../classes/Capcode.html#M000011">Capcode.run</a></tt>
535
621
  </p>
536
622
  <p>
537
623
  Create a rack configuration file (<tt>config.ru</tt>) in <tt>my_app/</tt>
@@ -541,9 +627,9 @@ Create a rack configuration file (<tt>config.ru</tt>) in <tt>my_app/</tt>
541
627
  run Capcode.application()
542
628
  </pre>
543
629
  <p>
544
- <tt><a href="../classes/Capcode.html#M000009">Capcode.application</a></tt>
630
+ <tt><a href="../classes/Capcode.html#M000010">Capcode.application</a></tt>
545
631
  take the same parameters as <tt><a
546
- href="../classes/Capcode.html#M000010">Capcode.run</a></tt> (and block
632
+ href="../classes/Capcode.html#M000011">Capcode.run</a></tt> (and block
547
633
  too). Be carefull, if you use static files (with the static renderer) you
548
634
  must set the <tt>:root</tt> option (<tt>:root =&gt;
549
635
  File.expand_path(File.dirname(<em>FILE</em>))</tt> is probably good)
@@ -0,0 +1,101 @@
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>File: configuration.rb</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="fileHeader">
50
+ <h1>configuration.rb</h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>Path:</strong></td>
54
+ <td>lib/capcode/configuration.rb
55
+ </td>
56
+ </tr>
57
+ <tr class="top-aligned-row">
58
+ <td><strong>Last Update:</strong></td>
59
+ <td>Wed Oct 21 15:45:13 +0200 2009</td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ <!-- banner header -->
64
+
65
+ <div id="bodyContent">
66
+
67
+
68
+
69
+ <div id="contextContent">
70
+
71
+
72
+
73
+ </div>
74
+
75
+
76
+ </div>
77
+
78
+
79
+ <!-- if includes -->
80
+
81
+ <div id="section">
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+ <!-- if method_list -->
91
+
92
+
93
+ </div>
94
+
95
+
96
+ <div id="validator-badges">
97
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
98
+ </div>
99
+
100
+ </body>
101
+ </html>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Thu Oct 08 20:15:58 +0200 2009</td>
59
+ <td>Wed Oct 21 13:40:26 +0200 2009</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -68,37 +68,6 @@
68
68
 
69
69
  <div id="contextContent">
70
70
 
71
- <div id="description">
72
- <p>
73
- Because this helper was trully inspired by this post : <a
74
- href="http://www.gittr.com/index.php/archive/sinatra-basic-authentication-selectively-applied">www.gittr.com/index.php/archive/sinatra-basic-authentication-selectively-applied</a>/
75
- and because the code in this post was extracted out of Wink, this file
76
- follow the Wink license :
77
- </p>
78
- <p>
79
- Permission is hereby granted, free of charge, to any person obtaining a
80
- copy of this software and associated documentation files (the
81
- &quot;Software&quot;), to deal in the Software without restriction,
82
- including without limitation the rights to use, copy, modify, merge,
83
- publish, distribute, sublicense, and/or sell copies of the Software, and to
84
- permit persons to whom the Software is furnished to do so, subject to the
85
- following conditions:
86
- </p>
87
- <p>
88
- The above copyright notice and this permission notice shall be included in
89
- all copies or substantial portions of the Software.
90
- </p>
91
- <p>
92
- THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND,
93
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
94
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
95
- NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
96
- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
97
- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
98
- USE OR OTHER DEALINGS IN THE SOFTWARE.
99
- </p>
100
-
101
- </div>
102
71
 
103
72
 
104
73
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Fri Sep 04 20:06:10 +0200 2009</td>
59
+ <td>Wed Oct 21 16:35:11 +0200 2009</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Fri Sep 04 20:07:03 +0200 2009</td>
59
+ <td>Wed Oct 21 16:35:21 +0200 2009</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Fri Sep 04 15:01:18 +0200 2009</td>
59
+ <td>Wed Oct 21 16:35:30 +0200 2009</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>