Capcode 0.8.6 → 0.8.7

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 (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>