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
@@ -1,7 +1,7 @@
1
1
  # SIMPLE COMMAND LINE S3 CLIENT
2
2
  # You need an Amazon S3 account to use this: get one at http://aws.amazon.com/
3
3
  #
4
- # Create a config. file called based on the config.yml example in this directory;
4
+ # Create a config. file called based on the example in test/files/namedbucket_config.yml;
5
5
  # then change the config_file setting below to set the path to your config. file.
6
6
  # You will be prompted to create a bucket if your setting for bucket in the config.
7
7
  # file is blank.
@@ -16,28 +16,32 @@
16
16
  # to_email: email address to send to (optional)
17
17
 
18
18
  require 'yaml'
19
- require 'rubygems'
20
- require_gem 's33r'
21
19
  require 'net/smtp'
22
20
  require 'time'
23
21
  require 'parsedate'
24
22
 
23
+ require File.join(File.dirname(__FILE__), '../lib/s33r')
24
+
25
25
  filename = ARGV[0]
26
26
  to_email = ARGV[1]
27
27
  # set to the path to your config. file
28
28
  config_file = '/home/ell/.s33r'
29
29
 
30
30
  # load config. file
31
- options = YAML::load_file(config_file)
32
- access_key = options['access_key']
33
- secret_key = options['secret_key']
34
- from_email = options['from_email']
35
- to_email ||= options['to_email']
36
- bucket = options['bucket']
31
+ access_key, secret_key, options, custom = S33r::Client.load_config(config_file)
32
+
33
+ # bucket name to work with
34
+ bucket = options[:default_bucket]
35
+
36
+ puts "Using bucket: #{bucket}"
37
+
38
+ # email addresses
39
+ to_email = custom[:to_email]
40
+ from_email = custom[:from_email]
37
41
 
38
42
  # expires can be a date/time string or 'forever';
39
43
  # if not set, defaults to 15 minutes
40
- expires = options['default_expires']
44
+ expires = options[:default_expires]
41
45
  base_expires = Time.now.to_i
42
46
  if 'forever' == expires
43
47
  # 20 years (same as forever in computer terms)
@@ -54,7 +58,7 @@ end
54
58
  if !bucket
55
59
  require 'readline'
56
60
  bucket = Readline.readline('No bucket found; please enter name for new bucket: ', true)
57
- client = S3::Client.new(access_key, secret_key)
61
+ client = S33r::Client.new(access_key, secret_key)
58
62
  response = client.create_bucket(bucket)
59
63
  if response.ok?
60
64
  puts 'Created new bucket'
@@ -64,6 +68,8 @@ if !bucket
64
68
  end
65
69
  end
66
70
 
71
+ options[:default_bucket] = bucket
72
+
67
73
  # estimate upload time
68
74
  filesize = FileTest.size(filename)
69
75
  filesize_mb = (filesize / (1000*1000)).to_i
@@ -84,9 +90,11 @@ puts str
84
90
  start_time_secs = Time.now.to_i
85
91
 
86
92
  # a client pointing at the specified bucket
87
- S3::NamedBucket.new(access_key, secret_key, bucket) do |c|
88
- response = c.put_file(filename, filename)
89
- url = c.s3_authenticated_url(filename, expires)
93
+ S33r::NamedBucket.new(access_key, secret_key, options) do |c|
94
+
95
+ response = c.put_file(filename)
96
+
97
+ url = c.authenticated_url(filename, expires)
90
98
 
91
99
  time_taken_secs = Time.now.to_i - start_time_secs
92
100
  puts "Aah, it appears to have taken %d seconds" % time_taken_secs
@@ -110,6 +118,7 @@ S3::NamedBucket.new(access_key, secret_key, bucket) do |c|
110
118
  end
111
119
  end
112
120
  else
113
- puts 'File transfer failed'
121
+ puts "File transfer failed with response code #{response.code}"
114
122
  end
115
- end
123
+
124
+ end
@@ -0,0 +1,120 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: MIME</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">MIME</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
+ </table>
66
+ </div>
67
+ <!-- banner header -->
68
+
69
+ <div id="bodyContent">
70
+
71
+
72
+
73
+ <div id="contextContent">
74
+
75
+ <div id="description">
76
+ <p>
77
+ The namespace for <a href="MIME.html">MIME</a> applications, tools, and
78
+ libraries.
79
+ </p>
80
+
81
+ </div>
82
+
83
+
84
+ </div>
85
+
86
+
87
+ </div>
88
+
89
+
90
+ <!-- if includes -->
91
+
92
+ <div id="section">
93
+
94
+ <div id="class-list">
95
+ <h3 class="section-bar">Classes and Modules</h3>
96
+
97
+ Class <a href="MIME/InvalidContentType.html" class="link">MIME::InvalidContentType</a><br />
98
+ Class <a href="MIME/Type.html" class="link">MIME::Type</a><br />
99
+ Class <a href="MIME/Types.html" class="link">MIME::Types</a><br />
100
+
101
+ </div>
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+ <!-- if method_list -->
110
+
111
+
112
+ </div>
113
+
114
+
115
+ <div id="validator-badges">
116
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
117
+ </div>
118
+
119
+ </body>
120
+ </html>
@@ -0,0 +1,119 @@
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::InvalidContentType</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::InvalidContentType</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
+ RuntimeError
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
+ <p>
83
+ Reflects a <a href="../MIME.html">MIME</a> Content-<a
84
+ href="Type.html">Type</a> which is in invalid format (e.g., it isn&#8217;t
85
+ in the form of type/subtype).
86
+ </p>
87
+
88
+ </div>
89
+
90
+
91
+ </div>
92
+
93
+
94
+ </div>
95
+
96
+
97
+ <!-- if includes -->
98
+
99
+ <div id="section">
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+ <!-- if method_list -->
109
+
110
+
111
+ </div>
112
+
113
+
114
+ <div id="validator-badges">
115
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
116
+ </div>
117
+
118
+ </body>
119
+ </html>
@@ -0,0 +1,1173 @@
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::Type</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::Type</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
+ <p>
83
+ The definition of one <a href="../MIME.html">MIME</a> content-type.
84
+ </p>
85
+ <h2>Usage</h2>
86
+ <pre>
87
+ require 'mime/types'
88
+
89
+ plaintext = MIME::Types['text/plain']
90
+ print plaintext.media_type # =&gt; 'text'
91
+ print plaintext.sub_type # =&gt; 'plain'
92
+
93
+ puts plaintext.extensions.join(&quot; &quot;) # =&gt; 'asc txt c cc h hh cpp'
94
+
95
+ puts plaintext.encoding # =&gt; 8bit
96
+ puts plaintext.binary? # =&gt; false
97
+ puts plaintext.ascii? # =&gt; true
98
+ puts plaintext == 'text/plain' # =&gt; true
99
+ puts MIME::Type.simplified('x-appl/x-zip') # =&gt; 'appl/zip'
100
+ </pre>
101
+
102
+ </div>
103
+
104
+
105
+ </div>
106
+
107
+ <div id="method-list">
108
+ <h3 class="section-bar">Methods</h3>
109
+
110
+ <div class="name-list">
111
+ <a href="#M000031">ascii?</a>&nbsp;&nbsp;
112
+ <a href="#M000030">binary?</a>&nbsp;&nbsp;
113
+ <a href="#M000035">complete?</a>&nbsp;&nbsp;
114
+ <a href="#M000019">default_encoding</a>&nbsp;&nbsp;
115
+ <a href="#M000022">docs=</a>&nbsp;&nbsp;
116
+ <a href="#M000025">from_array</a>&nbsp;&nbsp;
117
+ <a href="#M000026">from_hash</a>&nbsp;&nbsp;
118
+ <a href="#M000027">from_mime_type</a>&nbsp;&nbsp;
119
+ <a href="#M000018">like?</a>&nbsp;&nbsp;
120
+ <a href="#M000028">new</a>&nbsp;&nbsp;
121
+ <a href="#M000021">obsolete?</a>&nbsp;&nbsp;
122
+ <a href="#M000034">platform?</a>&nbsp;&nbsp;
123
+ <a href="#M000029">registered?</a>&nbsp;&nbsp;
124
+ <a href="#M000032">signature?</a>&nbsp;&nbsp;
125
+ <a href="#M000024">simplified</a>&nbsp;&nbsp;
126
+ <a href="#M000033">system?</a>&nbsp;&nbsp;
127
+ <a href="#M000038">to_a</a>&nbsp;&nbsp;
128
+ <a href="#M000039">to_hash</a>&nbsp;&nbsp;
129
+ <a href="#M000036">to_s</a>&nbsp;&nbsp;
130
+ <a href="#M000037">to_str</a>&nbsp;&nbsp;
131
+ <a href="#M000023">urls</a>&nbsp;&nbsp;
132
+ <a href="#M000020">use_instead</a>&nbsp;&nbsp;
133
+ </div>
134
+ </div>
135
+
136
+ </div>
137
+
138
+
139
+ <!-- if includes -->
140
+ <div id="includes">
141
+ <h3 class="section-bar">Included Modules</h3>
142
+
143
+ <div id="includes-list">
144
+ <span class="include-name">Comparable</span>
145
+ </div>
146
+ </div>
147
+
148
+ <div id="section">
149
+
150
+
151
+ <div id="constants-list">
152
+ <h3 class="section-bar">Constants</h3>
153
+
154
+ <div class="name-list">
155
+ <table summary="Constants">
156
+ <tr class="top-aligned-row context-row">
157
+ <td class="context-item-name">VERSION</td>
158
+ <td>=</td>
159
+ <td class="context-item-value">'1.15'</td>
160
+ </tr>
161
+ <tr class="top-aligned-row context-row">
162
+ <td class="context-item-name">IANA_URL</td>
163
+ <td>=</td>
164
+ <td class="context-item-value">&quot;http://www.iana.org/assignments/media-types/%s/%s&quot;</td>
165
+ </tr>
166
+ <tr class="top-aligned-row context-row">
167
+ <td class="context-item-name">RFC_URL</td>
168
+ <td>=</td>
169
+ <td class="context-item-value">&quot;http://rfc-editor.org/rfc/rfc%s.txt&quot;</td>
170
+ </tr>
171
+ <tr class="top-aligned-row context-row">
172
+ <td class="context-item-name">DRAFT_URL</td>
173
+ <td>=</td>
174
+ <td class="context-item-value">&quot;http://datatracker.ietf.org/public/idindex.cgi?command=id_details&amp;filename=%s&quot;</td>
175
+ </tr>
176
+ <tr class="top-aligned-row context-row">
177
+ <td class="context-item-name">LTSW_URL</td>
178
+ <td>=</td>
179
+ <td class="context-item-value">&quot;http://www.ltsw.se/knbase/internet/%s.htp&quot;</td>
180
+ </tr>
181
+ <tr class="top-aligned-row context-row">
182
+ <td class="context-item-name">CONTACT_URL</td>
183
+ <td>=</td>
184
+ <td class="context-item-value">&quot;http://www.iana.org/assignments/contact-people.htm#%s&quot;</td>
185
+ </tr>
186
+ </table>
187
+ </div>
188
+ </div>
189
+
190
+
191
+
192
+ <div id="attribute-list">
193
+ <h3 class="section-bar">Attributes</h3>
194
+
195
+ <div class="name-list">
196
+ <table>
197
+ <tr class="top-aligned-row context-row">
198
+ <td class="context-item-name">content_type</td>
199
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
200
+ <td class="context-item-desc">
201
+ Returns the whole <a href="../MIME.html">MIME</a> content-type string.
202
+
203
+ <pre>
204
+ text/plain =&gt; text/plain
205
+ x-chemical/x-pdb =&gt; x-chemical/x-pdb
206
+ </pre>
207
+ </td>
208
+ </tr>
209
+ <tr class="top-aligned-row context-row">
210
+ <td class="context-item-name">default_encoding</td>
211
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
212
+ <td class="context-item-desc">
213
+ Returns the default encoding for the <a href="Type.html">MIME::Type</a>
214
+ based on the media type.
215
+
216
+ </td>
217
+ </tr>
218
+ <tr class="top-aligned-row context-row">
219
+ <td class="context-item-name">docs</td>
220
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
221
+ <td class="context-item-desc">
222
+ The documentation for this <a href="Type.html">MIME::Type</a>.
223
+ Documentation about media types will be found on a media type definition as
224
+ a comment. Documentation will be found through docs.
225
+
226
+ </td>
227
+ </tr>
228
+ <tr class="top-aligned-row context-row">
229
+ <td class="context-item-name">encoding</td>
230
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
231
+ <td class="context-item-desc">
232
+ The encoding (7bit, 8bit, quoted-printable, or base64) required to
233
+ transport the data of this content type safely across a network, which
234
+ roughly corresponds to Content-Transfer-Encoding. A value of <tt>nil</tt>
235
+ or <tt>:default</tt> will reset the encoding to the <a
236
+ href="Type.html#M000019">default_encoding</a> for the <a
237
+ href="Type.html">MIME::Type</a>. Raises ArgumentError if the encoding
238
+ provided is invalid.
239
+
240
+ <p>
241
+ If the encoding is not provided on construction, this will be either
242
+ &#8216;quoted-printable&#8217; (for text/* media types) and
243
+ &#8216;base64&#8217; for eveything else.
244
+ </p>
245
+ </td>
246
+ </tr>
247
+ <tr class="top-aligned-row context-row">
248
+ <td class="context-item-name">extensions</td>
249
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
250
+ <td class="context-item-desc">
251
+ The list of extensions which are known to be used for this <a
252
+ href="Type.html">MIME::Type</a>. Non-array values will be coerced into an
253
+ array with <a href="Type.html#M000038">to_a</a>. Array values will be
254
+ flattened and <tt>nil</tt> values removed.
255
+
256
+ </td>
257
+ </tr>
258
+ <tr class="top-aligned-row context-row">
259
+ <td class="context-item-name">media_type</td>
260
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
261
+ <td class="context-item-desc">
262
+ Returns the media type of the simplified <a href="../MIME.html">MIME</a>
263
+ type.
264
+
265
+ <pre>
266
+ text/plain =&gt; text
267
+ x-chemical/x-pdb =&gt; chemical
268
+ </pre>
269
+ </td>
270
+ </tr>
271
+ <tr class="top-aligned-row context-row">
272
+ <td class="context-item-name">obsolete</td>
273
+ <td class="context-item-value">&nbsp;[W]&nbsp;</td>
274
+ <td class="context-item-desc">
275
+ Sets the obsolescence indicator for this media type.
276
+
277
+ </td>
278
+ </tr>
279
+ <tr class="top-aligned-row context-row">
280
+ <td class="context-item-name">raw_media_type</td>
281
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
282
+ <td class="context-item-desc">
283
+ Returns the media type of the unmodified <a href="../MIME.html">MIME</a>
284
+ type.
285
+
286
+ <pre>
287
+ text/plain =&gt; text
288
+ x-chemical/x-pdb =&gt; x-chemical
289
+ </pre>
290
+ </td>
291
+ </tr>
292
+ <tr class="top-aligned-row context-row">
293
+ <td class="context-item-name">raw_sub_type</td>
294
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
295
+ <td class="context-item-desc">
296
+ Returns the media type of the unmodified <a href="../MIME.html">MIME</a>
297
+ type.
298
+
299
+ <pre>
300
+ text/plain =&gt; plain
301
+ x-chemical/x-pdb =&gt; x-pdb
302
+ </pre>
303
+ </td>
304
+ </tr>
305
+ <tr class="top-aligned-row context-row">
306
+ <td class="context-item-name">simplified</td>
307
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
308
+ <td class="context-item-desc">
309
+ The <a href="../MIME.html">MIME</a> types main- and sub-label can both
310
+ start with <tt>x-</tt>, which indicates that it is a non-registered name.
311
+ Of course, after registration this flag can disappear, adds to the
312
+ confusing proliferation of <a href="../MIME.html">MIME</a> types. The
313
+ simplified string has the <tt>x-</tt> removed and are translated to
314
+ lowercase.
315
+
316
+ <pre>
317
+ text/plain =&gt; text/plain
318
+ x-chemical/x-pdb =&gt; chemical/pdb
319
+ </pre>
320
+ </td>
321
+ </tr>
322
+ <tr class="top-aligned-row context-row">
323
+ <td class="context-item-name">sub_type</td>
324
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
325
+ <td class="context-item-desc">
326
+ Returns the sub-type of the simplified <a href="../MIME.html">MIME</a>
327
+ type.
328
+
329
+ <pre>
330
+ text/plain =&gt; plain
331
+ x-chemical/x-pdb =&gt; pdb
332
+ </pre>
333
+ </td>
334
+ </tr>
335
+ <tr class="top-aligned-row context-row">
336
+ <td class="context-item-name">system</td>
337
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
338
+ <td class="context-item-desc">
339
+ The regexp for the operating system that this <a
340
+ href="Type.html">MIME::Type</a> is specific to.
341
+
342
+ </td>
343
+ </tr>
344
+ <tr class="top-aligned-row context-row">
345
+ <td class="context-item-name">url</td>
346
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
347
+ <td class="context-item-desc">
348
+ The encoded URL list for this <a href="Type.html">MIME::Type</a>. See <a
349
+ href="Type.html#M000023">urls</a> for
350
+
351
+ </td>
352
+ </tr>
353
+ <tr class="top-aligned-row context-row">
354
+ <td class="context-item-name">use_instead</td>
355
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
356
+ <td class="context-item-desc">
357
+ Returns the media type or types that should be used instead of this media
358
+ type, if it is obsolete. If there is no replacement media type, or it is
359
+ not obsolete, <tt>nil</tt> will be returned.
360
+
361
+ </td>
362
+ </tr>
363
+ </table>
364
+ </div>
365
+ </div>
366
+
367
+
368
+
369
+ <!-- if method_list -->
370
+ <div id="methods">
371
+ <h3 class="section-bar">Public Class methods</h3>
372
+
373
+ <div id="method-M000025" class="method-detail">
374
+ <a name="M000025"></a>
375
+
376
+ <div class="method-heading">
377
+ <a href="#M000025" class="method-signature">
378
+ <span class="method-name">from_array</span><span class="method-args">(*args) {|m if block_given?| ...}</span>
379
+ </a>
380
+ </div>
381
+
382
+ <div class="method-description">
383
+ <p>
384
+ Creates a <a href="Type.html">MIME::Type</a> from an array in the form of:
385
+ </p>
386
+ <pre>
387
+ [type-name, [extensions], encoding, system]
388
+ </pre>
389
+ <p>
390
+ <tt>extensions</tt>, <tt>encoding</tt>, and <tt>system</tt> are optional.
391
+ </p>
392
+ <pre>
393
+ MIME::Type.from_array(&quot;application/x-ruby&quot;, ['rb'], '8bit')
394
+ MIME::Type.from_array([&quot;application/x-ruby&quot;, ['rb'], '8bit'])
395
+ </pre>
396
+ <p>
397
+ These are equivalent to:
398
+ </p>
399
+ <pre>
400
+ MIME::Type.new('application/x-ruby') do |t|
401
+ t.extensions = %w(rb)
402
+ t.encoding = '8bit'
403
+ end
404
+ </pre>
405
+ <p><a class="source-toggle" href="#"
406
+ onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
407
+ <div class="method-source-code" id="M000025-source">
408
+ <pre>
409
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 276</span>
410
+ 276: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">from_array</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>) <span class="ruby-comment cmt">#:yields MIME::Type.new:</span>
411
+ 277: <span class="ruby-comment cmt"># Dereferences the array one level, if necessary.</span>
412
+ 278: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Array</span>)
413
+ 279:
414
+ 280: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">size</span>.<span class="ruby-identifier">between?</span>(<span class="ruby-value">1</span>, <span class="ruby-value">8</span>)
415
+ 281: <span class="ruby-identifier">m</span> = <span class="ruby-constant">MIME</span><span class="ruby-operator">::</span><span class="ruby-constant">Type</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
416
+ 282: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">extensions</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
417
+ 283: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">encoding</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">2</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span>
418
+ 284: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">system</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">3</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">3</span>
419
+ 285: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">obsolete</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">4</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">4</span>
420
+ 286: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">docs</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">5</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">5</span>
421
+ 287: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">url</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">6</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">6</span>
422
+ 288: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">registered</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">7</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">7</span>
423
+ 289: <span class="ruby-keyword kw">end</span>
424
+ 290: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">m</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
425
+ 291: <span class="ruby-keyword kw">else</span>
426
+ 292: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;Array provided must contain between one and eight elements.&quot;</span>
427
+ 293: <span class="ruby-keyword kw">end</span>
428
+ 294: <span class="ruby-identifier">m</span>
429
+ 295: <span class="ruby-keyword kw">end</span>
430
+ </pre>
431
+ </div>
432
+ </div>
433
+ </div>
434
+
435
+ <div id="method-M000026" class="method-detail">
436
+ <a name="M000026"></a>
437
+
438
+ <div class="method-heading">
439
+ <a href="#M000026" class="method-signature">
440
+ <span class="method-name">from_hash</span><span class="method-args">(hash) {|m if block_given?| ...}</span>
441
+ </a>
442
+ </div>
443
+
444
+ <div class="method-description">
445
+ <p>
446
+ Creates a <a href="Type.html">MIME::Type</a> from a hash. Keys are
447
+ case-insensitive, dashes may be replaced with underscores, and the internal
448
+ Symbol of the lowercase-underscore version can be used as well. That is,
449
+ Content-<a href="Type.html">Type</a> can be provided as content-type,
450
+ Content_Type, content_type, or :content_type.
451
+ </p>
452
+ <p>
453
+ Known keys are <tt>Content-<a href="Type.html">Type</a></tt>,
454
+ <tt>Content-Transfer-Encoding</tt>, <tt>Extensions</tt>, and
455
+ <tt>System</tt>.
456
+ </p>
457
+ <pre>
458
+ MIME::Type.from_hash('Content-Type' =&gt; 'text/x-yaml',
459
+ 'Content-Transfer-Encoding' =&gt; '8bit',
460
+ 'System' =&gt; 'linux',
461
+ 'Extensions' =&gt; ['yaml', 'yml'])
462
+ </pre>
463
+ <p>
464
+ This is equivalent to:
465
+ </p>
466
+ <pre>
467
+ MIME::Type.new('text/x-yaml') do |t|
468
+ t.encoding = '8bit'
469
+ t.system = 'linux'
470
+ t.extensions = ['yaml', 'yml']
471
+ end
472
+ </pre>
473
+ <p><a class="source-toggle" href="#"
474
+ onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
475
+ <div class="method-source-code" id="M000026-source">
476
+ <pre>
477
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 319</span>
478
+ 319: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">from_hash</span>(<span class="ruby-identifier">hash</span>) <span class="ruby-comment cmt">#:yields MIME::Type.new:</span>
479
+ 320: <span class="ruby-identifier">type</span> = {}
480
+ 321: <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
481
+ 322: <span class="ruby-identifier">type</span>[<span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">tr</span>(<span class="ruby-value str">'-A-Z'</span>, <span class="ruby-value str">'_a-z'</span>).<span class="ruby-identifier">to_sym</span>] = <span class="ruby-identifier">v</span>
482
+ 323: <span class="ruby-keyword kw">end</span>
483
+ 324:
484
+ 325: <span class="ruby-identifier">m</span> = <span class="ruby-constant">MIME</span><span class="ruby-operator">::</span><span class="ruby-constant">Type</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">type</span>[<span class="ruby-identifier">:content_type</span>]) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
485
+ 326: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">extensions</span> = <span class="ruby-identifier">type</span>[<span class="ruby-identifier">:extensions</span>]
486
+ 327: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">encoding</span> = <span class="ruby-identifier">type</span>[<span class="ruby-identifier">:content_transfer_encoding</span>]
487
+ 328: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">system</span> = <span class="ruby-identifier">type</span>[<span class="ruby-identifier">:system</span>]
488
+ 329: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">obsolete</span> = <span class="ruby-identifier">type</span>[<span class="ruby-identifier">:obsolete</span>]
489
+ 330: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">docs</span> = <span class="ruby-identifier">type</span>[<span class="ruby-identifier">:docs</span>]
490
+ 331: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">url</span> = <span class="ruby-identifier">type</span>[<span class="ruby-identifier">:url</span>]
491
+ 332: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">registered</span> = <span class="ruby-identifier">type</span>[<span class="ruby-identifier">:registered</span>]
492
+ 333: <span class="ruby-keyword kw">end</span>
493
+ 334:
494
+ 335: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">m</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
495
+ 336: <span class="ruby-identifier">m</span>
496
+ 337: <span class="ruby-keyword kw">end</span>
497
+ </pre>
498
+ </div>
499
+ </div>
500
+ </div>
501
+
502
+ <div id="method-M000027" class="method-detail">
503
+ <a name="M000027"></a>
504
+
505
+ <div class="method-heading">
506
+ <a href="#M000027" class="method-signature">
507
+ <span class="method-name">from_mime_type</span><span class="method-args">(mime_type) {|m if block_given?| ...}</span>
508
+ </a>
509
+ </div>
510
+
511
+ <div class="method-description">
512
+ <p>
513
+ Essentially a copy constructor.
514
+ </p>
515
+ <pre>
516
+ MIME::Type.from_mime_type(plaintext)
517
+ </pre>
518
+ <p>
519
+ is equivalent to:
520
+ </p>
521
+ <pre>
522
+ MIME::Type.new(plaintext.content_type.dup) do |t|
523
+ t.extensions = plaintext.extensions.dup
524
+ t.system = plaintext.system.dup
525
+ t.encoding = plaintext.encoding.dup
526
+ end
527
+ </pre>
528
+ <p><a class="source-toggle" href="#"
529
+ onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
530
+ <div class="method-source-code" id="M000027-source">
531
+ <pre>
532
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 350</span>
533
+ 350: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">from_mime_type</span>(<span class="ruby-identifier">mime_type</span>) <span class="ruby-comment cmt">#:yields the new MIME::Type:</span>
534
+ 351: <span class="ruby-identifier">m</span> = <span class="ruby-constant">MIME</span><span class="ruby-operator">::</span><span class="ruby-constant">Type</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">mime_type</span>.<span class="ruby-identifier">content_type</span>.<span class="ruby-identifier">dup</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
535
+ 352: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">extensions</span> = <span class="ruby-identifier">mime_type</span>.<span class="ruby-identifier">extensions</span>.<span class="ruby-identifier">dup</span>
536
+ 353: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">system</span> = <span class="ruby-identifier">mime_type</span>.<span class="ruby-identifier">system</span>.<span class="ruby-identifier">dup</span>
537
+ 354: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">encoding</span> = <span class="ruby-identifier">mime_type</span>.<span class="ruby-identifier">encoding</span>.<span class="ruby-identifier">dup</span>
538
+ 355: <span class="ruby-keyword kw">end</span>
539
+ 356:
540
+ 357: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">m</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
541
+ 358: <span class="ruby-keyword kw">end</span>
542
+ </pre>
543
+ </div>
544
+ </div>
545
+ </div>
546
+
547
+ <div id="method-M000028" class="method-detail">
548
+ <a name="M000028"></a>
549
+
550
+ <div class="method-heading">
551
+ <a href="#M000028" class="method-signature">
552
+ <span class="method-name">new</span><span class="method-args">(content_type) {|self if block_given?| ...}</span>
553
+ </a>
554
+ </div>
555
+
556
+ <div class="method-description">
557
+ <p>
558
+ Builds a <a href="Type.html">MIME::Type</a> object from the provided <a
559
+ href="../MIME.html">MIME</a> Content <a href="Type.html">Type</a> value
560
+ (e.g., &#8216;text/plain&#8217; or &#8216;applicaton/x-eruby&#8217;). The
561
+ constructed object is yielded to an optional block for additional
562
+ configuration, such as associating extensions and encoding information.
563
+ </p>
564
+ <p><a class="source-toggle" href="#"
565
+ onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
566
+ <div class="method-source-code" id="M000028-source">
567
+ <pre>
568
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 365</span>
569
+ 365: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">content_type</span>) <span class="ruby-comment cmt">#:yields self:</span>
570
+ 366: <span class="ruby-identifier">matchdata</span> = <span class="ruby-constant">MEDIA_TYPE_RE</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">content_type</span>)
571
+ 367:
572
+ 368: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">matchdata</span>.<span class="ruby-identifier">nil?</span>
573
+ 369: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidContentType</span>, <span class="ruby-node">&quot;Invalid Content-Type provided ('#{content_type}')&quot;</span>
574
+ 370: <span class="ruby-keyword kw">end</span>
575
+ 371:
576
+ 372: <span class="ruby-ivar">@content_type</span> = <span class="ruby-identifier">content_type</span>
577
+ 373: <span class="ruby-ivar">@raw_media_type</span> = <span class="ruby-identifier">matchdata</span>.<span class="ruby-identifier">captures</span>[<span class="ruby-value">0</span>]
578
+ 374: <span class="ruby-ivar">@raw_sub_type</span> = <span class="ruby-identifier">matchdata</span>.<span class="ruby-identifier">captures</span>[<span class="ruby-value">1</span>]
579
+ 375:
580
+ 376: <span class="ruby-ivar">@simplified</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-ivar">@content_type</span>)
581
+ 377: <span class="ruby-identifier">matchdata</span> = <span class="ruby-constant">MEDIA_TYPE_RE</span>.<span class="ruby-identifier">match</span>(<span class="ruby-ivar">@simplified</span>)
582
+ 378: <span class="ruby-ivar">@media_type</span> = <span class="ruby-identifier">matchdata</span>.<span class="ruby-identifier">captures</span>[<span class="ruby-value">0</span>]
583
+ 379: <span class="ruby-ivar">@sub_type</span> = <span class="ruby-identifier">matchdata</span>.<span class="ruby-identifier">captures</span>[<span class="ruby-value">1</span>]
584
+ 380:
585
+ 381: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">extensions</span> = <span class="ruby-keyword kw">nil</span>
586
+ 382: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encoding</span> = <span class="ruby-identifier">:default</span>
587
+ 383: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">system</span> = <span class="ruby-keyword kw">nil</span>
588
+ 384: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">registered</span> = <span class="ruby-keyword kw">true</span>
589
+ 385:
590
+ 386: <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
591
+ 387: <span class="ruby-keyword kw">end</span>
592
+ </pre>
593
+ </div>
594
+ </div>
595
+ </div>
596
+
597
+ <div id="method-M000024" class="method-detail">
598
+ <a name="M000024"></a>
599
+
600
+ <div class="method-heading">
601
+ <a href="#M000024" class="method-signature">
602
+ <span class="method-name">simplified</span><span class="method-args">(content_type)</span>
603
+ </a>
604
+ </div>
605
+
606
+ <div class="method-description">
607
+ <p>
608
+ The <a href="../MIME.html">MIME</a> types main- and sub-label can both
609
+ start with <tt>x-</tt>, which indicates that it is a non-registered name.
610
+ Of course, after registration this flag can disappear, adds to the
611
+ confusing proliferation of <a href="../MIME.html">MIME</a> types. The
612
+ simplified string has the <tt>x-</tt> removed and are translated to
613
+ lowercase.
614
+ </p>
615
+ <p><a class="source-toggle" href="#"
616
+ onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
617
+ <div class="method-source-code" id="M000024-source">
618
+ <pre>
619
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 249</span>
620
+ 249: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">simplified</span>(<span class="ruby-identifier">content_type</span>)
621
+ 250: <span class="ruby-identifier">matchdata</span> = <span class="ruby-constant">MEDIA_TYPE_RE</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">content_type</span>)
622
+ 251:
623
+ 252: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">matchdata</span>.<span class="ruby-identifier">nil?</span>
624
+ 253: <span class="ruby-identifier">simplified</span> = <span class="ruby-keyword kw">nil</span>
625
+ 254: <span class="ruby-keyword kw">else</span>
626
+ 255: <span class="ruby-identifier">media_type</span> = <span class="ruby-identifier">matchdata</span>.<span class="ruby-identifier">captures</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-constant">UNREG_RE</span>, <span class="ruby-value str">''</span>)
627
+ 256: <span class="ruby-identifier">subtype</span> = <span class="ruby-identifier">matchdata</span>.<span class="ruby-identifier">captures</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-constant">UNREG_RE</span>, <span class="ruby-value str">''</span>)
628
+ 257: <span class="ruby-identifier">simplified</span> = <span class="ruby-node">&quot;#{media_type}/#{subtype}&quot;</span>
629
+ 258: <span class="ruby-keyword kw">end</span>
630
+ 259: <span class="ruby-identifier">simplified</span>
631
+ 260: <span class="ruby-keyword kw">end</span>
632
+ </pre>
633
+ </div>
634
+ </div>
635
+ </div>
636
+
637
+ <h3 class="section-bar">Public Instance methods</h3>
638
+
639
+ <div id="method-M000031" class="method-detail">
640
+ <a name="M000031"></a>
641
+
642
+ <div class="method-heading">
643
+ <a href="#M000031" class="method-signature">
644
+ <span class="method-name">ascii?</span><span class="method-args">()</span>
645
+ </a>
646
+ </div>
647
+
648
+ <div class="method-description">
649
+ <p>
650
+ <a href="../MIME.html">MIME</a> types can be specified to be sent across a
651
+ network in particular formats. This method returns <tt>false</tt> when the
652
+ <a href="../MIME.html">MIME</a> type encoding is set to <tt>base64</tt>.
653
+ </p>
654
+ <p><a class="source-toggle" href="#"
655
+ onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
656
+ <div class="method-source-code" id="M000031-source">
657
+ <pre>
658
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 413</span>
659
+ 413: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ascii?</span>
660
+ 414: <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">binary?</span>
661
+ 415: <span class="ruby-keyword kw">end</span>
662
+ </pre>
663
+ </div>
664
+ </div>
665
+ </div>
666
+
667
+ <div id="method-M000030" class="method-detail">
668
+ <a name="M000030"></a>
669
+
670
+ <div class="method-heading">
671
+ <a href="#M000030" class="method-signature">
672
+ <span class="method-name">binary?</span><span class="method-args">()</span>
673
+ </a>
674
+ </div>
675
+
676
+ <div class="method-description">
677
+ <p>
678
+ <a href="../MIME.html">MIME</a> types can be specified to be sent across a
679
+ network in particular formats. This method returns <tt>true</tt> when the
680
+ <a href="../MIME.html">MIME</a> type encoding is set to <tt>base64</tt>.
681
+ </p>
682
+ <p><a class="source-toggle" href="#"
683
+ onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
684
+ <div class="method-source-code" id="M000030-source">
685
+ <pre>
686
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 406</span>
687
+ 406: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">binary?</span>
688
+ 407: <span class="ruby-ivar">@encoding</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'base64'</span>
689
+ 408: <span class="ruby-keyword kw">end</span>
690
+ </pre>
691
+ </div>
692
+ </div>
693
+ </div>
694
+
695
+ <div id="method-M000035" class="method-detail">
696
+ <a name="M000035"></a>
697
+
698
+ <div class="method-heading">
699
+ <a href="#M000035" class="method-signature">
700
+ <span class="method-name">complete?</span><span class="method-args">()</span>
701
+ </a>
702
+ </div>
703
+
704
+ <div class="method-description">
705
+ <p>
706
+ Returns <tt>true</tt> if the <a href="Type.html">MIME::Type</a> specifies
707
+ an extension list, indicating that it is a complete <a
708
+ href="Type.html">MIME::Type</a>.
709
+ </p>
710
+ <p><a class="source-toggle" href="#"
711
+ onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
712
+ <div class="method-source-code" id="M000035-source">
713
+ <pre>
714
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 436</span>
715
+ 436: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">complete?</span>
716
+ 437: <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@extensions</span>.<span class="ruby-identifier">empty?</span>
717
+ 438: <span class="ruby-keyword kw">end</span>
718
+ </pre>
719
+ </div>
720
+ </div>
721
+ </div>
722
+
723
+ <div id="method-M000019" class="method-detail">
724
+ <a name="M000019"></a>
725
+
726
+ <div class="method-heading">
727
+ <a href="#M000019" class="method-signature">
728
+ <span class="method-name">default_encoding</span><span class="method-args">()</span>
729
+ </a>
730
+ </div>
731
+
732
+ <div class="method-description">
733
+ <p><a class="source-toggle" href="#"
734
+ onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
735
+ <div class="method-source-code" id="M000019-source">
736
+ <pre>
737
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 165</span>
738
+ 165: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">default_encoding</span>
739
+ 166: (<span class="ruby-ivar">@media_type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'text'</span>) <span class="ruby-operator">?</span> <span class="ruby-value str">'quoted-printable'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'base64'</span>
740
+ 167: <span class="ruby-keyword kw">end</span>
741
+ </pre>
742
+ </div>
743
+ </div>
744
+ </div>
745
+
746
+ <div id="method-M000022" class="method-detail">
747
+ <a name="M000022"></a>
748
+
749
+ <div class="method-heading">
750
+ <a href="#M000022" class="method-signature">
751
+ <span class="method-name">docs=</span><span class="method-args">(d)</span>
752
+ </a>
753
+ </div>
754
+
755
+ <div class="method-description">
756
+ <p><a class="source-toggle" href="#"
757
+ onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
758
+ <div class="method-source-code" id="M000022-source">
759
+ <pre>
760
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 191</span>
761
+ 191: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">docs=</span>(<span class="ruby-identifier">d</span>)
762
+ 192: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">d</span>
763
+ 193: <span class="ruby-identifier">a</span> = <span class="ruby-identifier">d</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-node">%r{use-instead:#{MEDIA_TYPE_RE}}</span>)
764
+ 194:
765
+ 195: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">empty?</span>
766
+ 196: <span class="ruby-ivar">@use_instead</span> = <span class="ruby-keyword kw">nil</span>
767
+ 197: <span class="ruby-keyword kw">else</span>
768
+ 198: <span class="ruby-ivar">@use_instead</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">el</span><span class="ruby-operator">|</span> <span class="ruby-node">&quot;#{el[0]}/#{el[1]}&quot;</span> }
769
+ 199: <span class="ruby-keyword kw">end</span>
770
+ 200: <span class="ruby-keyword kw">end</span>
771
+ 201: <span class="ruby-keyword kw">end</span>
772
+ </pre>
773
+ </div>
774
+ </div>
775
+ </div>
776
+
777
+ <div id="method-M000018" class="method-detail">
778
+ <a name="M000018"></a>
779
+
780
+ <div class="method-heading">
781
+ <a href="#M000018" class="method-signature">
782
+ <span class="method-name">like?</span><span class="method-args">(other)</span>
783
+ </a>
784
+ </div>
785
+
786
+ <div class="method-description">
787
+ <p>
788
+ Returns <tt>true</tt> if the simplified type matches the current
789
+ </p>
790
+ <p><a class="source-toggle" href="#"
791
+ onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
792
+ <div class="method-source-code" id="M000018-source">
793
+ <pre>
794
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 58</span>
795
+ 58: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">like?</span>(<span class="ruby-identifier">other</span>)
796
+ 59: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:simplified</span>)
797
+ 60: <span class="ruby-ivar">@simplified</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">simplified</span>
798
+ 61: <span class="ruby-keyword kw">else</span>
799
+ 62: <span class="ruby-ivar">@simplified</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Type</span>.<span class="ruby-identifier">simplified</span>(<span class="ruby-identifier">other</span>)
800
+ 63: <span class="ruby-keyword kw">end</span>
801
+ 64: <span class="ruby-keyword kw">end</span>
802
+ </pre>
803
+ </div>
804
+ </div>
805
+ </div>
806
+
807
+ <div id="method-M000021" class="method-detail">
808
+ <a name="M000021"></a>
809
+
810
+ <div class="method-heading">
811
+ <a href="#M000021" class="method-signature">
812
+ <span class="method-name">obsolete?</span><span class="method-args">()</span>
813
+ </a>
814
+ </div>
815
+
816
+ <div class="method-description">
817
+ <p>
818
+ Returns <tt>true</tt> if the media type is obsolete.
819
+ </p>
820
+ <p><a class="source-toggle" href="#"
821
+ onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
822
+ <div class="method-source-code" id="M000021-source">
823
+ <pre>
824
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 180</span>
825
+ 180: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">obsolete?</span>
826
+ 181: <span class="ruby-ivar">@obsolete</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">false</span>
827
+ 182: <span class="ruby-keyword kw">end</span>
828
+ </pre>
829
+ </div>
830
+ </div>
831
+ </div>
832
+
833
+ <div id="method-M000034" class="method-detail">
834
+ <a name="M000034"></a>
835
+
836
+ <div class="method-heading">
837
+ <a href="#M000034" class="method-signature">
838
+ <span class="method-name">platform?</span><span class="method-args">()</span>
839
+ </a>
840
+ </div>
841
+
842
+ <div class="method-description">
843
+ <p>
844
+ Returns <tt>true</tt> if the <a href="Type.html">MIME::Type</a> is specific
845
+ to the current operating system as represented by RUBY_PLATFORM.
846
+ </p>
847
+ <p><a class="source-toggle" href="#"
848
+ onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
849
+ <div class="method-source-code" id="M000034-source">
850
+ <pre>
851
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 430</span>
852
+ 430: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">platform?</span>
853
+ 431: <span class="ruby-identifier">system?</span> <span class="ruby-keyword kw">and</span> (<span class="ruby-constant">RUBY_PLATFORM</span> <span class="ruby-operator">=~</span> <span class="ruby-ivar">@system</span>)
854
+ 432: <span class="ruby-keyword kw">end</span>
855
+ </pre>
856
+ </div>
857
+ </div>
858
+ </div>
859
+
860
+ <div id="method-M000029" class="method-detail">
861
+ <a name="M000029"></a>
862
+
863
+ <div class="method-heading">
864
+ <a href="#M000029" class="method-signature">
865
+ <span class="method-name">registered?</span><span class="method-args">()</span>
866
+ </a>
867
+ </div>
868
+
869
+ <div class="method-description">
870
+ <p>
871
+ <a href="../MIME.html">MIME</a> content-types which are not regestered by
872
+ IANA nor defined in RFCs are required to start with <tt>x-</tt>. This
873
+ counts as well for a new media type as well as a new sub-type of an
874
+ existing media type. If either the media-type or the content-type begins
875
+ with <tt>x-</tt>, this method will return <tt>false</tt>.
876
+ </p>
877
+ <p><a class="source-toggle" href="#"
878
+ onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
879
+ <div class="method-source-code" id="M000029-source">
880
+ <pre>
881
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 394</span>
882
+ 394: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">registered?</span>
883
+ 395: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@raw_media_type</span> <span class="ruby-operator">=~</span> <span class="ruby-constant">UNREG_RE</span>) <span class="ruby-operator">||</span> (<span class="ruby-ivar">@raw_sub_type</span> <span class="ruby-operator">=~</span> <span class="ruby-constant">UNREG_RE</span>)
884
+ 396: <span class="ruby-keyword kw">false</span>
885
+ 397: <span class="ruby-keyword kw">else</span>
886
+ 398: <span class="ruby-ivar">@registered</span>
887
+ 399: <span class="ruby-keyword kw">end</span>
888
+ 400: <span class="ruby-keyword kw">end</span>
889
+ </pre>
890
+ </div>
891
+ </div>
892
+ </div>
893
+
894
+ <div id="method-M000032" class="method-detail">
895
+ <a name="M000032"></a>
896
+
897
+ <div class="method-heading">
898
+ <a href="#M000032" class="method-signature">
899
+ <span class="method-name">signature?</span><span class="method-args">()</span>
900
+ </a>
901
+ </div>
902
+
903
+ <div class="method-description">
904
+ <p>
905
+ Returns <tt>true</tt> when the simplified <a href="../MIME.html">MIME</a>
906
+ type is in the list of known digital signatures.
907
+ </p>
908
+ <p><a class="source-toggle" href="#"
909
+ onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
910
+ <div class="method-source-code" id="M000032-source">
911
+ <pre>
912
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 419</span>
913
+ 419: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">signature?</span>
914
+ 420: <span class="ruby-constant">SIGNATURES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-ivar">@simplified</span>.<span class="ruby-identifier">downcase</span>)
915
+ 421: <span class="ruby-keyword kw">end</span>
916
+ </pre>
917
+ </div>
918
+ </div>
919
+ </div>
920
+
921
+ <div id="method-M000033" class="method-detail">
922
+ <a name="M000033"></a>
923
+
924
+ <div class="method-heading">
925
+ <a href="#M000033" class="method-signature">
926
+ <span class="method-name">system?</span><span class="method-args">()</span>
927
+ </a>
928
+ </div>
929
+
930
+ <div class="method-description">
931
+ <p>
932
+ Returns <tt>true</tt> if the <a href="Type.html">MIME::Type</a> is specific
933
+ to an operating system.
934
+ </p>
935
+ <p><a class="source-toggle" href="#"
936
+ onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
937
+ <div class="method-source-code" id="M000033-source">
938
+ <pre>
939
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 424</span>
940
+ 424: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">system?</span>
941
+ 425: <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@system</span>.<span class="ruby-identifier">nil?</span>
942
+ 426: <span class="ruby-keyword kw">end</span>
943
+ </pre>
944
+ </div>
945
+ </div>
946
+ </div>
947
+
948
+ <div id="method-M000038" class="method-detail">
949
+ <a name="M000038"></a>
950
+
951
+ <div class="method-heading">
952
+ <a href="#M000038" class="method-signature">
953
+ <span class="method-name">to_a</span><span class="method-args">()</span>
954
+ </a>
955
+ </div>
956
+
957
+ <div class="method-description">
958
+ <p>
959
+ Returns the <a href="../MIME.html">MIME</a> type as an array suitable for
960
+ use with <a href="Type.html#M000025">MIME::Type.from_array</a>.
961
+ </p>
962
+ <p><a class="source-toggle" href="#"
963
+ onclick="toggleCode('M000038-source');return false;">[Source]</a></p>
964
+ <div class="method-source-code" id="M000038-source">
965
+ <pre>
966
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 452</span>
967
+ 452: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_a</span>
968
+ 453: [ <span class="ruby-ivar">@content_type</span>, <span class="ruby-ivar">@extensions</span>, <span class="ruby-ivar">@encoding</span>, <span class="ruby-ivar">@system</span>, <span class="ruby-ivar">@obsolete</span>, <span class="ruby-ivar">@docs</span>,
969
+ 454: <span class="ruby-ivar">@url</span>, <span class="ruby-identifier">registered?</span> ]
970
+ 455: <span class="ruby-keyword kw">end</span>
971
+ </pre>
972
+ </div>
973
+ </div>
974
+ </div>
975
+
976
+ <div id="method-M000039" class="method-detail">
977
+ <a name="M000039"></a>
978
+
979
+ <div class="method-heading">
980
+ <a href="#M000039" class="method-signature">
981
+ <span class="method-name">to_hash</span><span class="method-args">()</span>
982
+ </a>
983
+ </div>
984
+
985
+ <div class="method-description">
986
+ <p>
987
+ Returns the <a href="../MIME.html">MIME</a> type as an array suitable for
988
+ use with <a href="Type.html#M000026">MIME::Type.from_hash</a>.
989
+ </p>
990
+ <p><a class="source-toggle" href="#"
991
+ onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
992
+ <div class="method-source-code" id="M000039-source">
993
+ <pre>
994
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 459</span>
995
+ 459: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_hash</span>
996
+ 460: { <span class="ruby-value str">'Content-Type'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@content_type</span>,
997
+ 461: <span class="ruby-value str">'Content-Transfer-Encoding'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@encoding</span>,
998
+ 462: <span class="ruby-value str">'Extensions'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@extensions</span>,
999
+ 463: <span class="ruby-value str">'System'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@system</span>,
1000
+ 464: <span class="ruby-value str">'Obsolete'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@obsolete</span>,
1001
+ 465: <span class="ruby-value str">'Docs'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@docs</span>,
1002
+ 466: <span class="ruby-value str">'URL'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@url</span>,
1003
+ 467: <span class="ruby-value str">'Registered'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">registered?</span>,
1004
+ 468: }
1005
+ 469: <span class="ruby-keyword kw">end</span>
1006
+ </pre>
1007
+ </div>
1008
+ </div>
1009
+ </div>
1010
+
1011
+ <div id="method-M000036" class="method-detail">
1012
+ <a name="M000036"></a>
1013
+
1014
+ <div class="method-heading">
1015
+ <a href="#M000036" class="method-signature">
1016
+ <span class="method-name">to_s</span><span class="method-args">()</span>
1017
+ </a>
1018
+ </div>
1019
+
1020
+ <div class="method-description">
1021
+ <p>
1022
+ Returns the <a href="../MIME.html">MIME</a> type as a string.
1023
+ </p>
1024
+ <p><a class="source-toggle" href="#"
1025
+ onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
1026
+ <div class="method-source-code" id="M000036-source">
1027
+ <pre>
1028
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 441</span>
1029
+ 441: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
1030
+ 442: <span class="ruby-ivar">@content_type</span>
1031
+ 443: <span class="ruby-keyword kw">end</span>
1032
+ </pre>
1033
+ </div>
1034
+ </div>
1035
+ </div>
1036
+
1037
+ <div id="method-M000037" class="method-detail">
1038
+ <a name="M000037"></a>
1039
+
1040
+ <div class="method-heading">
1041
+ <a href="#M000037" class="method-signature">
1042
+ <span class="method-name">to_str</span><span class="method-args">()</span>
1043
+ </a>
1044
+ </div>
1045
+
1046
+ <div class="method-description">
1047
+ <p>
1048
+ Returns the <a href="../MIME.html">MIME</a> type as a string for implicit
1049
+ conversions.
1050
+ </p>
1051
+ <p><a class="source-toggle" href="#"
1052
+ onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
1053
+ <div class="method-source-code" id="M000037-source">
1054
+ <pre>
1055
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 446</span>
1056
+ 446: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_str</span>
1057
+ 447: <span class="ruby-ivar">@content_type</span>
1058
+ 448: <span class="ruby-keyword kw">end</span>
1059
+ </pre>
1060
+ </div>
1061
+ </div>
1062
+ </div>
1063
+
1064
+ <div id="method-M000023" class="method-detail">
1065
+ <a name="M000023"></a>
1066
+
1067
+ <div class="method-heading">
1068
+ <a href="#M000023" class="method-signature">
1069
+ <span class="method-name">urls</span><span class="method-args">()</span>
1070
+ </a>
1071
+ </div>
1072
+
1073
+ <div class="method-description">
1074
+ <p>
1075
+ The decoded URL list for this <a href="Type.html">MIME::Type</a>. The
1076
+ special URL value IANA will be translated into:
1077
+ </p>
1078
+ <pre>
1079
+ http://www.iana.org/assignments/media-types/&lt;mediatype&gt;/&lt;subtype&gt;
1080
+ </pre>
1081
+ <p>
1082
+ The special URL value RFC### will be translated into:
1083
+ </p>
1084
+ <pre>
1085
+ http://www.rfc-editor.org/rfc/rfc###.txt
1086
+ </pre>
1087
+ <p>
1088
+ The special URL value DRAFT:name will be translated into:
1089
+ </p>
1090
+ <pre>
1091
+ https://datatracker.ietf.org/public/idindex.cgi?
1092
+ command=id_detail&amp;filename=&lt;name&gt;
1093
+ </pre>
1094
+ <p>
1095
+ The special URL value LTSW will be translated into:
1096
+ </p>
1097
+ <pre>
1098
+ http://www.ltsw.se/knbase/internet/&lt;mediatype&gt;.htp
1099
+ </pre>
1100
+ <p>
1101
+ The special URL value [token] will be translated into:
1102
+ </p>
1103
+ <pre>
1104
+ http://www.iana.org/assignments/contact-people.htm#&lt;token&gt;
1105
+ </pre>
1106
+ <p>
1107
+ These values will be accessible through url, which always returns an array.
1108
+ </p>
1109
+ <p><a class="source-toggle" href="#"
1110
+ onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
1111
+ <div class="method-source-code" id="M000023-source">
1112
+ <pre>
1113
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 224</span>
1114
+ 224: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">urls</span>
1115
+ 225: <span class="ruby-ivar">@url</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">el</span><span class="ruby-operator">|</span>
1116
+ 226: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">el</span>
1117
+ 227: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">%r{^IANA$}</span>
1118
+ 228: <span class="ruby-constant">IANA_URL</span> <span class="ruby-operator">%</span> [ <span class="ruby-ivar">@media_type</span>, <span class="ruby-ivar">@sub_type</span> ]
1119
+ 229: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">%r{^RFC(\d+)$}</span>
1120
+ 230: <span class="ruby-constant">RFC_URL</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">$1</span>
1121
+ 231: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">%r{^DRAFT:(.+)$}</span>
1122
+ 232: <span class="ruby-constant">DRAFT_URL</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">$1</span>
1123
+ 233: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">%r{^LTSW$}</span>
1124
+ 234: <span class="ruby-constant">LTSW_URL</span> <span class="ruby-operator">%</span> <span class="ruby-ivar">@media_type</span>
1125
+ 235: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">%r{^\[([^\]]+)\]}</span>
1126
+ 236: <span class="ruby-constant">CONTACT_URL</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">$1</span>
1127
+ 237: <span class="ruby-keyword kw">else</span>
1128
+ 238: <span class="ruby-identifier">el</span>
1129
+ 239: <span class="ruby-keyword kw">end</span>
1130
+ 240: }
1131
+ 241: <span class="ruby-keyword kw">end</span>
1132
+ </pre>
1133
+ </div>
1134
+ </div>
1135
+ </div>
1136
+
1137
+ <div id="method-M000020" class="method-detail">
1138
+ <a name="M000020"></a>
1139
+
1140
+ <div class="method-heading">
1141
+ <a href="#M000020" class="method-signature">
1142
+ <span class="method-name">use_instead</span><span class="method-args">()</span>
1143
+ </a>
1144
+ </div>
1145
+
1146
+ <div class="method-description">
1147
+ <p><a class="source-toggle" href="#"
1148
+ onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
1149
+ <div class="method-source-code" id="M000020-source">
1150
+ <pre>
1151
+ <span class="ruby-comment cmt"># File lib/s33r/mimetypes.rb, line 174</span>
1152
+ 174: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">use_instead</span>
1153
+ 175: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@obsolete</span>
1154
+ 176: <span class="ruby-ivar">@use_instead</span>
1155
+ 177: <span class="ruby-keyword kw">end</span>
1156
+ </pre>
1157
+ </div>
1158
+ </div>
1159
+ </div>
1160
+
1161
+
1162
+ </div>
1163
+
1164
+
1165
+ </div>
1166
+
1167
+
1168
+ <div id="validator-badges">
1169
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1170
+ </div>
1171
+
1172
+ </body>
1173
+ </html>