s33r 0.2 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. data/bin/s3cli.rb +25 -16
  2. data/html/classes/MIME.html +120 -0
  3. data/html/classes/MIME/InvalidContentType.html +119 -0
  4. data/html/classes/MIME/Type.html +1173 -0
  5. data/html/classes/MIME/Types.html +566 -0
  6. data/html/classes/Net.html +108 -0
  7. data/html/classes/Net/HTTPGenericRequest.html +233 -0
  8. data/html/classes/Net/HTTPResponse.html +242 -0
  9. data/html/classes/S33r.html +743 -0
  10. data/html/classes/S33r/BucketListing.html +372 -0
  11. data/html/classes/S33r/Client.html +981 -0
  12. data/html/classes/S33r/NamedBucket.html +620 -0
  13. data/html/classes/S33r/S33rException.html +118 -0
  14. data/html/classes/S33r/S33rException/BucketListingMaxKeysError.html +111 -0
  15. data/html/classes/S33r/S33rException/InvalidBucketListing.html +111 -0
  16. data/html/classes/S33r/S33rException/MalformedBucketName.html +111 -0
  17. data/html/classes/S33r/S33rException/MethodNotAvailable.html +111 -0
  18. data/html/classes/S33r/S33rException/MissingRequiredHeaders.html +111 -0
  19. data/html/classes/S33r/S33rException/MissingResource.html +111 -0
  20. data/html/classes/S33r/S33rException/UnsupportedCannedACL.html +111 -0
  21. data/html/classes/S33r/S33rException/UnsupportedHTTPMethod.html +111 -0
  22. data/html/classes/S33r/S3Object.html +307 -0
  23. data/html/classes/S33r/S3User.html +171 -0
  24. data/html/classes/S33r/Sync.html +151 -0
  25. data/html/classes/XML.html +200 -0
  26. data/html/classes/XML/Document.html +125 -0
  27. data/html/classes/XML/Node.html +124 -0
  28. data/html/created.rid +1 -0
  29. data/html/files/CHANGELOG.html +101 -0
  30. data/html/files/MIT-LICENSE.html +129 -0
  31. data/html/files/README_txt.html +209 -0
  32. data/html/files/lib/s33r/bucket_listing_rb.html +116 -0
  33. data/html/files/lib/s33r/client_rb.html +110 -0
  34. data/html/files/lib/s33r/core_rb.html +113 -0
  35. data/html/files/lib/s33r/libxml_extensions_rb.html +107 -0
  36. data/html/files/lib/s33r/mimetypes_rb.html +120 -0
  37. data/html/files/lib/s33r/named_bucket_rb.html +101 -0
  38. data/html/files/lib/s33r/s33r_exception_rb.html +101 -0
  39. data/html/files/lib/s33r/s33r_http_rb.html +108 -0
  40. data/html/files/lib/s33r/sync_rb.html +101 -0
  41. data/html/files/lib/s33r_rb.html +101 -0
  42. data/html/fr_class_index.html +52 -0
  43. data/html/fr_file_index.html +39 -0
  44. data/html/fr_method_index.html +126 -0
  45. data/html/index.html +24 -0
  46. data/html/rdoc-style.css +208 -0
  47. data/lib/s33r/bucket_listing.rb +69 -60
  48. data/lib/s33r/client.rb +150 -73
  49. data/lib/s33r/core.rb +56 -44
  50. data/lib/s33r/libxml_extensions.rb +10 -5
  51. data/lib/s33r/mimetypes.rb +3 -2
  52. data/lib/s33r/named_bucket.rb +89 -24
  53. data/lib/s33r/{s3_exception.rb → s33r_exception.rb} +2 -2
  54. data/lib/s33r/{net_http_overrides.rb → s33r_http.rb} +29 -21
  55. data/lib/s33r/sync.rb +4 -2
  56. data/test/cases/spec_bucket_listing.rb +10 -13
  57. data/test/cases/spec_client.rb +65 -0
  58. data/test/cases/spec_core.rb +16 -11
  59. data/test/cases/spec_namedbucket.rb +32 -0
  60. data/test/cases/spec_sync.rb +6 -5
  61. data/test/cases/spec_xml.rb +1 -1
  62. data/test/files/client_config.yml +6 -0
  63. data/test/files/namedbucket_config.yml +12 -0
  64. data/test/{s3_test_constants.rb → test_setup.rb} +7 -6
  65. metadata +63 -11
  66. data/LICENSE.txt +0 -22
  67. data/MIT-LICENSE +0 -21
  68. data/README.txt +0 -19
  69. data/bin/config.yml +0 -5
  70. data/test/cases/unit_client.rb +0 -40
  71. data/test/cases/unit_named_bucket.rb +0 -12
@@ -0,0 +1,566 @@
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>Class: MIME::Types</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>Class</strong></td>
53
+ <td class="class-name-in-header">MIME::Types</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/s33r/mimetypes_rb.html">
59
+ lib/s33r/mimetypes.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ Object
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ </div>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+
77
+
78
+
79
+ <div id="contextContent">
80
+
81
+ <div id="description">
82
+ <h1><a href="Types.html">MIME::Types</a></h1>
83
+ <p>
84
+ <a href="../MIME.html">MIME</a> types are used in <a
85
+ href="../MIME.html">MIME</a>-compliant communications, as in e-mail or HTTP
86
+ traffic, to indicate the type of content which is transmitted. <a
87
+ href="Types.html">MIME::Types</a> provides the ability for detailed
88
+ information about <a href="../MIME.html">MIME</a> entities (provided as a
89
+ set of <a href="Type.html">MIME::Type</a> objects) to be determined and
90
+ used programmatically. There are many types defined by RFCs and vendors, so
91
+ the list is long but not complete; don&#8217;t hesitate to ask to add
92
+ additional information. This library follows the IANA collection of <a
93
+ href="../MIME.html">MIME</a> types (see below for reference).
94
+ </p>
95
+ <h2>Description</h2>
96
+ <p>
97
+ <a href="../MIME.html">MIME</a> types are used in <a
98
+ href="../MIME.html">MIME</a> entities, as in email or HTTP traffic. It is
99
+ useful at times to have information available about <a
100
+ href="../MIME.html">MIME</a> types (or, inversely, about files). A <a
101
+ href="Type.html">MIME::Type</a> stores the known information about one <a
102
+ href="../MIME.html">MIME</a> type.
103
+ </p>
104
+ <h2>Usage</h2>
105
+ <pre>
106
+ require 'mime/types'
107
+
108
+ plaintext = MIME::Types['text/plain']
109
+ print plaintext.media_type # =&gt; 'text'
110
+ print plaintext.sub_type # =&gt; 'plain'
111
+
112
+ puts plaintext.extensions.join(&quot; &quot;) # =&gt; 'asc txt c cc h hh cpp'
113
+
114
+ puts plaintext.encoding # =&gt; 8bit
115
+ puts plaintext.binary? # =&gt; false
116
+ puts plaintext.ascii? # =&gt; true
117
+ puts plaintext.obsolete? # =&gt; false
118
+ puts plaintext.registered? # =&gt; true
119
+ puts plaintext == 'text/plain' # =&gt; true
120
+ puts MIME::Type.simplified('x-appl/x-zip') # =&gt; 'appl/zip'
121
+ </pre>
122
+ <p>
123
+ This module is built to conform to the <a href="../MIME.html">MIME</a>
124
+ types of RFCs 2045 and 2231. It follows the official IANA registry at <a
125
+ href="http://www.iana.org/assignments/media-types">www.iana.org/assignments/media-types</a>/
126
+ and <a
127
+ href="ftp://ftp.iana.org/assignments/media-types">ftp.iana.org/assignments/media-types</a>
128
+ with some unofficial types added from the the collection at <a
129
+ href="http://www.ltsw.se/knbase/internet/mime.htp">www.ltsw.se/knbase/internet/mime.htp</a>
130
+ </p>
131
+ <p>
132
+ This is originally based on Perl <a href="Types.html">MIME::Types</a> by
133
+ Mark Overmeer.
134
+ </p>
135
+ <h1>Author</h1>
136
+ <table>
137
+ <tr><td valign="top">Copyright:</td><td>Copyright &#169; 2002 - 2006 by Austin Ziegler &lt;austin@rubyforge.org&gt;
138
+
139
+ </td></tr>
140
+ <tr><td valign="top">Version:</td><td>1.15
141
+
142
+ </td></tr>
143
+ <tr><td valign="top">Based On:</td><td>Perl <a
144
+ href="http://search.cpan.org/author/MARKOV/MIME-Types-1.15/MIME/Types.pm">MIME::Types</a>,
145
+ Copyright &#169; 2001 - 2005 by Mark Overmeer
146
+ &lt;mimetypes@overmeer.net&gt;.
147
+
148
+ </td></tr>
149
+ <tr><td valign="top">Licence:</td><td>Ruby&#8217;s, Perl Artistic, or GPL version 2 (or later)
150
+
151
+ </td></tr>
152
+ <tr><td valign="top">See Also:</td><td><a
153
+ href="http://www.iana.org/assignments/media-types">www.iana.org/assignments/media-types</a>/
154
+ <a
155
+ href="http://www.ltsw.se/knbase/internet/mime.htp">www.ltsw.se/knbase/internet/mime.htp</a>
156
+
157
+ </td></tr>
158
+ </table>
159
+
160
+ </div>
161
+
162
+
163
+ </div>
164
+
165
+ <div id="method-list">
166
+ <h3 class="section-bar">Methods</h3>
167
+
168
+ <div class="name-list">
169
+ <a href="#M000014">[]</a>&nbsp;&nbsp;
170
+ <a href="#M000010">[]</a>&nbsp;&nbsp;
171
+ <a href="#M000017">add</a>&nbsp;&nbsp;
172
+ <a href="#M000013">add</a>&nbsp;&nbsp;
173
+ <a href="#M000009">new</a>&nbsp;&nbsp;
174
+ <a href="#M000016">of</a>&nbsp;&nbsp;
175
+ <a href="#M000012">of</a>&nbsp;&nbsp;
176
+ <a href="#M000011">type_for</a>&nbsp;&nbsp;
177
+ <a href="#M000015">type_for</a>&nbsp;&nbsp;
178
+ </div>
179
+ </div>
180
+
181
+ </div>
182
+
183
+
184
+ <!-- if includes -->
185
+
186
+ <div id="section">
187
+
188
+
189
+ <div id="constants-list">
190
+ <h3 class="section-bar">Constants</h3>
191
+
192
+ <div class="name-list">
193
+ <table summary="Constants">
194
+ <tr class="top-aligned-row context-row">
195
+ <td class="context-item-name">VERSION</td>
196
+ <td>=</td>
197
+ <td class="context-item-value">'1.15'</td>
198
+ <td width="3em">&nbsp;</td>
199
+ <td class="context-item-desc">
200
+ The released version of Ruby <a href="Types.html">MIME::Types</a>
201
+
202
+ </td>
203
+ </tr>
204
+ </table>
205
+ </div>
206
+ </div>
207
+
208
+
209
+
210
+ <div id="attribute-list">
211
+ <h3 class="section-bar">Attributes</h3>
212
+
213
+ <div class="name-list">
214
+ <table>
215
+ <tr class="top-aligned-row context-row">
216
+ <td class="context-item-name">data_version</td>
217
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
218
+ <td class="context-item-desc">
219
+ The data version.
220
+
221
+ </td>
222
+ </tr>
223
+ </table>
224
+ </div>
225
+ </div>
226
+
227
+
228
+
229
+ <!-- if method_list -->
230
+ <div id="methods">
231
+ <h3 class="section-bar">Public Class methods</h3>
232
+
233
+ <div id="method-M000014" class="method-detail">
234
+ <a name="M000014"></a>
235
+
236
+ <div class="method-heading">
237
+ <a href="#M000014" class="method-signature">
238
+ <span class="method-name">[]</span><span class="method-args">(type_id, flags = {})</span>
239
+ </a>
240
+ </div>
241
+
242
+ <div class="method-description">
243
+ <p>
244
+ Returns a list of <a href="Type.html">MIME::Type</a> objects, which may be
245
+ empty. The optional flag parameters are :complete (finds only complete <a
246
+ href="Type.html">MIME::Type</a> objects) and :platform (finds only <a
247
+ href="Types.html">MIME::Types</a> for the current platform). It is possible
248
+ for multiple matches to be returned for either type (in the example below,
249
+ &#8216;text/plain&#8217; returns two values &#8212; one for the general
250
+ case, and one for VMS systems.
251
+ </p>
252
+ <pre>
253
+ puts &quot;\nMIME::Types['text/plain']&quot;
254
+ MIME::Types['text/plain'].each { |t| puts t.to_a.join(&quot;, &quot;) }
255
+
256
+ puts &quot;\nMIME::Types[/^image/, :complete =&gt; true]&quot;
257
+ MIME::Types[/^image/, :complete =&gt; true].each do |t|
258
+ puts t.to_a.join(&quot;, &quot;)
259
+ end
260
+ </pre>
261
+ <p><a class="source-toggle" href="#"
262
+ onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
263
+ <div class="method-source-code" id="M000014-source">
264
+ <pre>
265
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 641</span>
266
+ 641: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">type_id</span>, <span class="ruby-identifier">flags</span> = {})
267
+ 642: <span class="ruby-ivar">@__types__</span>[<span class="ruby-identifier">type_id</span>, <span class="ruby-identifier">flags</span>]
268
+ 643: <span class="ruby-keyword kw">end</span>
269
+ </pre>
270
+ </div>
271
+ </div>
272
+ </div>
273
+
274
+ <div id="method-M000017" class="method-detail">
275
+ <a name="M000017"></a>
276
+
277
+ <div class="method-heading">
278
+ <a href="#M000017" class="method-signature">
279
+ <span class="method-name">add</span><span class="method-args">(*types)</span>
280
+ </a>
281
+ </div>
282
+
283
+ <div class="method-description">
284
+ <p>
285
+ Add one or more <a href="Type.html">MIME::Type</a> objects to the set of
286
+ known types. Each type should be experimental (e.g.,
287
+ &#8216;application/x-ruby&#8217;). If the type is already known, a warning
288
+ will be displayed.
289
+ </p>
290
+ <p>
291
+ <b>Please inform the maintainer of this module when registered types are
292
+ missing.</b>
293
+ </p>
294
+ <p><a class="source-toggle" href="#"
295
+ onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
296
+ <div class="method-source-code" id="M000017-source">
297
+ <pre>
298
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 668</span>
299
+ 668: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">types</span>)
300
+ 669: <span class="ruby-ivar">@__types__</span>.<span class="ruby-identifier">add</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">types</span>)
301
+ 670: <span class="ruby-keyword kw">end</span>
302
+ </pre>
303
+ </div>
304
+ </div>
305
+ </div>
306
+
307
+ <div id="method-M000009" class="method-detail">
308
+ <a name="M000009"></a>
309
+
310
+ <div class="method-heading">
311
+ <a href="#M000009" class="method-signature">
312
+ <span class="method-name">new</span><span class="method-args">(data_version = nil)</span>
313
+ </a>
314
+ </div>
315
+
316
+ <div class="method-description">
317
+ <p><a class="source-toggle" href="#"
318
+ onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
319
+ <div class="method-source-code" id="M000009-source">
320
+ <pre>
321
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 533</span>
322
+ 533: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">data_version</span> = <span class="ruby-keyword kw">nil</span>)
323
+ 534: <span class="ruby-ivar">@type_variants</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">h</span>, <span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>] = [] }
324
+ 535: <span class="ruby-ivar">@extension_index</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">h</span>, <span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>] = [] }
325
+ 536: <span class="ruby-keyword kw">end</span>
326
+ </pre>
327
+ </div>
328
+ </div>
329
+ </div>
330
+
331
+ <div id="method-M000016" class="method-detail">
332
+ <a name="M000016"></a>
333
+
334
+ <div class="method-heading">
335
+ <a href="#M000016" class="method-signature">
336
+ <span class="method-name">of</span><span class="method-args">(filename, platform = false)</span>
337
+ </a>
338
+ </div>
339
+
340
+ <div class="method-description">
341
+ <p>
342
+ A synonym for <a href="Types.html#M000011">MIME::Types.type_for</a>
343
+ </p>
344
+ <p><a class="source-toggle" href="#"
345
+ onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
346
+ <div class="method-source-code" id="M000016-source">
347
+ <pre>
348
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 658</span>
349
+ 658: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">of</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">platform</span> = <span class="ruby-keyword kw">false</span>)
350
+ 659: <span class="ruby-ivar">@__types__</span>.<span class="ruby-identifier">type_for</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">platform</span>)
351
+ 660: <span class="ruby-keyword kw">end</span>
352
+ </pre>
353
+ </div>
354
+ </div>
355
+ </div>
356
+
357
+ <div id="method-M000015" class="method-detail">
358
+ <a name="M000015"></a>
359
+
360
+ <div class="method-heading">
361
+ <a href="#M000015" class="method-signature">
362
+ <span class="method-name">type_for</span><span class="method-args">(filename, platform = false)</span>
363
+ </a>
364
+ </div>
365
+
366
+ <div class="method-description">
367
+ <p>
368
+ Return the list of <a href="Types.html">MIME::Types</a> which belongs to
369
+ the file based on its filename extension. If <tt>platform</tt> is
370
+ <tt>true</tt>, then only file types that are specific to the current
371
+ platform will be returned.
372
+ </p>
373
+ <pre>
374
+ puts &quot;MIME::Types.type_for('citydesk.xml')
375
+ =&gt; &quot;#{MIME::Types.type_for('citydesk.xml')}&quot;
376
+ puts &quot;MIME::Types.type_for('citydesk.gif')
377
+ =&gt; &quot;#{MIME::Types.type_for('citydesk.gif')}&quot;
378
+ </pre>
379
+ <p><a class="source-toggle" href="#"
380
+ onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
381
+ <div class="method-source-code" id="M000015-source">
382
+ <pre>
383
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 653</span>
384
+ 653: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">type_for</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">platform</span> = <span class="ruby-keyword kw">false</span>)
385
+ 654: <span class="ruby-ivar">@__types__</span>.<span class="ruby-identifier">type_for</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">platform</span>)
386
+ 655: <span class="ruby-keyword kw">end</span>
387
+ </pre>
388
+ </div>
389
+ </div>
390
+ </div>
391
+
392
+ <h3 class="section-bar">Public Instance methods</h3>
393
+
394
+ <div id="method-M000010" class="method-detail">
395
+ <a name="M000010"></a>
396
+
397
+ <div class="method-heading">
398
+ <a href="#M000010" class="method-signature">
399
+ <span class="method-name">[]</span><span class="method-args">(type_id, flags = {})</span>
400
+ </a>
401
+ </div>
402
+
403
+ <div class="method-description">
404
+ <p>
405
+ Returns a list of <a href="Type.html">MIME::Type</a> objects, which may be
406
+ empty. The optional flag parameters are :complete (finds only complete <a
407
+ href="Type.html">MIME::Type</a> objects) and :platform (finds only <a
408
+ href="Types.html">MIME::Types</a> for the current platform). It is possible
409
+ for multiple matches to be returned for either type (in the example below,
410
+ &#8216;text/plain&#8217; returns two values &#8212; one for the general
411
+ case, and one for VMS systems.
412
+ </p>
413
+ <pre>
414
+ puts &quot;\nMIME::Types['text/plain']&quot;
415
+ MIME::Types['text/plain'].each { |t| puts t.to_a.join(&quot;, &quot;) }
416
+
417
+ puts &quot;\nMIME::Types[/^image/, :complete =&gt; true]&quot;
418
+ MIME::Types[/^image/, :complete =&gt; true].each do |t|
419
+ puts t.to_a.join(&quot;, &quot;)
420
+ end
421
+ </pre>
422
+ <p><a class="source-toggle" href="#"
423
+ onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
424
+ <div class="method-source-code" id="M000010-source">
425
+ <pre>
426
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 562</span>
427
+ 562: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">type_id</span>, <span class="ruby-identifier">flags</span> = {})
428
+ 563: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type_id</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Regexp</span>)
429
+ 564: <span class="ruby-identifier">matches</span> = []
430
+ 565: <span class="ruby-ivar">@type_variants</span>.<span class="ruby-identifier">each_key</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span>
431
+ 566: <span class="ruby-identifier">matches</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@type_variants</span>[<span class="ruby-identifier">k</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">k</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">type_id</span>
432
+ 567: <span class="ruby-keyword kw">end</span>
433
+ 568: <span class="ruby-identifier">matches</span>.<span class="ruby-identifier">flatten!</span>
434
+ 569: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">type_id</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">MIME</span><span class="ruby-operator">::</span><span class="ruby-constant">Type</span>)
435
+ 570: <span class="ruby-identifier">matches</span> = [<span class="ruby-identifier">type_id</span>]
436
+ 571: <span class="ruby-keyword kw">else</span>
437
+ 572: <span class="ruby-identifier">matches</span> = <span class="ruby-ivar">@type_variants</span>[<span class="ruby-constant">MIME</span><span class="ruby-operator">::</span><span class="ruby-constant">Type</span>.<span class="ruby-identifier">simplified</span>(<span class="ruby-identifier">type_id</span>)]
438
+ 573: <span class="ruby-keyword kw">end</span>
439
+ 574:
440
+ 575: <span class="ruby-identifier">matches</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">complete?</span> } <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">flags</span>[<span class="ruby-identifier">:complete</span>]
441
+ 576: <span class="ruby-identifier">matches</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">platform?</span> } <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">flags</span>[<span class="ruby-identifier">:platform</span>]
442
+ 577: <span class="ruby-identifier">matches</span>
443
+ 578: <span class="ruby-keyword kw">end</span>
444
+ </pre>
445
+ </div>
446
+ </div>
447
+ </div>
448
+
449
+ <div id="method-M000013" class="method-detail">
450
+ <a name="M000013"></a>
451
+
452
+ <div class="method-heading">
453
+ <a href="#M000013" class="method-signature">
454
+ <span class="method-name">add</span><span class="method-args">(*types)</span>
455
+ </a>
456
+ </div>
457
+
458
+ <div class="method-description">
459
+ <p>
460
+ Add one or more <a href="Type.html">MIME::Type</a> objects to the set of
461
+ known types. Each type should be experimental (e.g.,
462
+ &#8216;application/x-ruby&#8217;). If the type is already known, a warning
463
+ will be displayed.
464
+ </p>
465
+ <p>
466
+ <b>Please inform the maintainer of this module when registered types are
467
+ missing.</b>
468
+ </p>
469
+ <p><a class="source-toggle" href="#"
470
+ onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
471
+ <div class="method-source-code" id="M000013-source">
472
+ <pre>
473
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 606</span>
474
+ 606: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">types</span>)
475
+ 607: <span class="ruby-identifier">types</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">mime_type</span><span class="ruby-operator">|</span>
476
+ 608: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@type_variants</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">mime_type</span>.<span class="ruby-identifier">simplified</span>)
477
+ 609: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@type_variants</span>[<span class="ruby-identifier">mime_type</span>.<span class="ruby-identifier">simplified</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">mime_type</span>)
478
+ 610: <span class="ruby-identifier">warn</span> <span class="ruby-node">&quot;Type #{mime_type} already registered as a variant of #{mime_type.simplified}.&quot;</span>
479
+ 611: <span class="ruby-keyword kw">end</span>
480
+ 612: <span class="ruby-keyword kw">end</span>
481
+ 613: <span class="ruby-identifier">add_type_variant</span>(<span class="ruby-identifier">mime_type</span>)
482
+ 614: <span class="ruby-identifier">index_extensions</span>(<span class="ruby-identifier">mime_type</span>)
483
+ 615: <span class="ruby-keyword kw">end</span>
484
+ 616: <span class="ruby-keyword kw">end</span>
485
+ </pre>
486
+ </div>
487
+ </div>
488
+ </div>
489
+
490
+ <div id="method-M000012" class="method-detail">
491
+ <a name="M000012"></a>
492
+
493
+ <div class="method-heading">
494
+ <a href="#M000012" class="method-signature">
495
+ <span class="method-name">of</span><span class="method-args">(filename, platform = false)</span>
496
+ </a>
497
+ </div>
498
+
499
+ <div class="method-description">
500
+ <p>
501
+ A synonym for <a href="Types.html#M000011">MIME::Types.type_for</a>
502
+ </p>
503
+ <p><a class="source-toggle" href="#"
504
+ onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
505
+ <div class="method-source-code" id="M000012-source">
506
+ <pre>
507
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 596</span>
508
+ 596: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">of</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">platform</span> = <span class="ruby-keyword kw">false</span>)
509
+ 597: <span class="ruby-identifier">type_for</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">platform</span>)
510
+ 598: <span class="ruby-keyword kw">end</span>
511
+ </pre>
512
+ </div>
513
+ </div>
514
+ </div>
515
+
516
+ <div id="method-M000011" class="method-detail">
517
+ <a name="M000011"></a>
518
+
519
+ <div class="method-heading">
520
+ <a href="#M000011" class="method-signature">
521
+ <span class="method-name">type_for</span><span class="method-args">(filename, platform = false)</span>
522
+ </a>
523
+ </div>
524
+
525
+ <div class="method-description">
526
+ <p>
527
+ Return the list of <a href="Types.html">MIME::Types</a> which belongs to
528
+ the file based on its filename extension. If <tt>platform</tt> is
529
+ <tt>true</tt>, then only file types that are specific to the current
530
+ platform will be returned.
531
+ </p>
532
+ <pre>
533
+ puts &quot;MIME::Types.type_for('citydesk.xml')
534
+ =&gt; &quot;#{MIME::Types.type_for('citydesk.xml')}&quot;
535
+ puts &quot;MIME::Types.type_for('citydesk.gif')
536
+ =&gt; &quot;#{MIME::Types.type_for('citydesk.gif')}&quot;
537
+ </pre>
538
+ <p><a class="source-toggle" href="#"
539
+ onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
540
+ <div class="method-source-code" id="M000011-source">
541
+ <pre>
542
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 588</span>
543
+ 588: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">type_for</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">platform</span> = <span class="ruby-keyword kw">false</span>)
544
+ 589: <span class="ruby-identifier">ext</span> = <span class="ruby-identifier">filename</span>.<span class="ruby-identifier">chomp</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/.*\./o</span>, <span class="ruby-value str">''</span>)
545
+ 590: <span class="ruby-identifier">list</span> = <span class="ruby-ivar">@extension_index</span>[<span class="ruby-identifier">ext</span>]
546
+ 591: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">platform?</span> } <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">platform</span>
547
+ 592: <span class="ruby-identifier">list</span>
548
+ 593: <span class="ruby-keyword kw">end</span>
549
+ </pre>
550
+ </div>
551
+ </div>
552
+ </div>
553
+
554
+
555
+ </div>
556
+
557
+
558
+ </div>
559
+
560
+
561
+ <div id="validator-badges">
562
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
563
+ </div>
564
+
565
+ </body>
566
+ </html>