mime-types 3.4.0 → 3.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 95c7231323b94e19e07e031375caa2a86929b89c39758f1e275f7c45173e305a
4
- data.tar.gz: 3c2bfd451b5e04dbb675c2341e9917a9900998a7ce85d7f3532f53d173985888
3
+ metadata.gz: dcfb18b8a1063e841659b369decec0047b8b540769b271c665f02e5f77e8fc8e
4
+ data.tar.gz: 73a977e080d43c997ceb7c62df0a91fa30bc51b4c8cc14e50e23b4895488cd59
5
5
  SHA512:
6
- metadata.gz: 11732903d8ad42251e2913d0663f96c7c208818d7d446662be7da8abcb6d1b45ff028d030ee83e1e2eedc87ae5a333f82225b74580f5e7449338093865fbbccb
7
- data.tar.gz: dce1385da430c768e232daf3c263a89473356889dedcb0f19b7ea2da1d6a494d590d06b0d49d24d3366132855fb6d3b39d45c24a3f7550920306f0587d6375d6
6
+ metadata.gz: bc2c9dddfff6a9b6b74aa4997ac2c3bd3287f51231ec48c3c5cdfdbc140488aaed43348b2a3b8460d2d50e7fffb425f6bc1f3887b5cf25571b8047573ee15bfe
7
+ data.tar.gz: 6fbcfac5acae5ce40781a705c2d48b650077126f4f847c14dc7c24797cd98ff9a4b886963f90ff26ed16f63533e7ea36fbc084790a1e7b2e6ba5d2004db268b2
data/.standard.yml ADDED
@@ -0,0 +1,4 @@
1
+ parallel: true
2
+ ruby_version: 2.3
3
+ ignore:
4
+ - 'mime-types.gemspec'
data/Contributing.md CHANGED
@@ -6,11 +6,11 @@ request, or code contributions.
6
6
  There are a few guidelines for contributing to mime-types:
7
7
 
8
8
  - Code changes _will_ _not_ be accepted without tests. The test suite is
9
- written with [minitest].
9
+ written with [minitest][].
10
10
  - Match my coding style.
11
11
  - Use a thoughtfully-named topic branch that contains your change. Rebase your
12
12
  commits into logical chunks as necessary.
13
- - Use [quality commit messages].
13
+ - Use [quality commit messages][].
14
14
  - Do not change the version number; when your patch is accepted and a release
15
15
  is made, the version will be updated at that point.
16
16
  - Submit a GitHub pull request with your changes.
@@ -19,25 +19,23 @@ There are a few guidelines for contributing to mime-types:
19
19
  ## Adding or Modifying MIME Types
20
20
 
21
21
  The mime-types registry is no longer contained in mime-types, but in
22
- [mime-types-data]. Please see that project for contributions there.
22
+ [mime-types-data][]. Please see that project for contributions there.
23
23
 
24
24
  ### Test Dependencies
25
25
 
26
- mime-types uses Ryan Davis’s [Hoe] to manage the release process, and it adds
27
- a number of rake tasks. You will mostly be interested in `rake`, which runs
28
- the tests the same way that `rake test` or `rake travis` will do.
26
+ mime-types uses Ryan Davis’s [Hoe][] to manage the release process, and it adds
27
+ a number of rake tasks. You will mostly be interested in `rake`, which runs the
28
+ tests the same way that `rake test` will do.
29
29
 
30
30
  To assist with the installation of the development dependencies for
31
31
  mime-types, I have provided the simplest possible Gemfile pointing to the
32
- (generated) `mime-types.gemspec` file. This will permit you to do `bundle
33
- install` to get the development dependencies. If you aleady have `hoe`
32
+ (generated) `mime-types.gemspec` file. This will permit you to do `bundle install` to get the development dependencies. If you already have `hoe`
34
33
  installed, you can accomplish the same thing with `rake newb`.
35
34
 
36
35
  This task will install any missing dependencies, run the tests/specs, and
37
36
  generate the RDoc.
38
37
 
39
- You can run tests with code coverage analysis by running `rake
40
- test:coverage`.
38
+ You can run tests with code coverage analysis by running `rake test:coverage`.
41
39
 
42
40
  ## Benchmarks
43
41
 
@@ -52,7 +50,7 @@ built-in benchmark library:
52
50
 
53
51
  There are two allocation tracing benchmarks (for normal and columnar loads).
54
52
  These can only be run on Ruby 2.1 or better and requires the
55
- [allocation\_tracer] gem (not installed by default).
53
+ [allocation\_tracer][] gem (not installed by default).
56
54
 
57
55
  - `rake benchmark:allocations`
58
56
  - `rake benchmark:allocations:columnar`
@@ -84,6 +82,7 @@ Here's the most direct way to get your work merged into the project:
84
82
  Thanks to everyone else who has contributed to mime-types over the years:
85
83
 
86
84
  - Aaron Patterson
85
+ - Alex Vondrak
87
86
  - Aggelos Avgerinos
88
87
  - Al Snow
89
88
  - Andre Pankratz
data/History.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.5.0 / 2023-08-07
4
+
5
+ - 1 minor enhancement:
6
+
7
+ - Robb Shecter changed the default log level for duplicate type variant from
8
+ `warn` to `debug` in [#170][]. This works because `MIME::Types.logger` is
9
+ intended to fit the `::Logger` interface, and the default logger
10
+ (`WarnLogger`) is a subclass of `::Logger` that passes through to
11
+ `Kernel.warn`.
12
+
13
+ - Further consideration has changed cache load messages from `warn` to
14
+ `error` and deprecation messages from `warn` to `debug`.
15
+
16
+ - 1 bug fix:
17
+
18
+ - Added a definition of `MIME::Type#hash`. Contributed by Alex Vondrak in
19
+ [#167][], fixing [#166][].
20
+
21
+ - Dependency and CI updates:
22
+
23
+ - Update the .github/workflows/ci.yml workflow to test Ruby 3.2 and more
24
+ reliably test certain combinations rather than depending on exclusions.
25
+
26
+ - Change `.standard.yml` configuration to format for Ruby 2.3 as certain files
27
+ are not properly detected with Ruby 2.0.
28
+
29
+ - Change from `hoe-git` to `hoe-git2` to support Hoe version 4.
30
+
31
+ - Apply `standardrb --fix`.
32
+
33
+ - The above changes have resulted in the Soft deprecation of Ruby versions
34
+ below 2.6. Any errors reported for Ruby versions 2.0, 2.1, 2.2, 2.3, 2.4,
35
+ and 2.5 will be resolved, but maintaining CI for these versions is
36
+ unsustainable.
37
+
38
+ ## 3.4.1 / 2021-11-16
39
+
40
+ - 1 bug fix:
41
+
42
+ - Fixed a Ruby < 2.3 incompatibility introduced by the use of standardrb,
43
+ where `<<-` heredocs were converted to `<<~` heredocs. These have been
44
+ reverted back to `<<-` with the indentation kept and a `.strip` call
45
+ to prevent excess whitespace.
46
+
3
47
  ## 3.4.0 / 2021-11-15
4
48
 
5
49
  - 1 minor enhancement:
@@ -17,7 +61,7 @@
17
61
  - Added Ruby 3.0 to the CI test matrix. Added `windows/jruby` to the
18
62
  CI exclusion list; it refuses to run successfully.
19
63
  - Removed the Travis CI configuration and changed it to Github Workflows
20
- [#150]. Removed Coveralls configuration.
64
+ [#150][]. Removed Coveralls configuration.
21
65
  - Igor Victor added TruffleRuby to the Travis CI configuration. [#149]
22
66
  - Koichi ITO loosened an excessively tight dependency. [#147]
23
67
  - Started using `standardrb` for Ruby formatting and validation.
@@ -25,7 +69,7 @@
25
69
 
26
70
  ## 3.3.1 / 2019-12-26
27
71
 
28
- - 1 minor bugfix:
72
+ - 1 minor bug fix:
29
73
 
30
74
  - Al Snow fixed a warning with MIME::Types::Logger producing a warning
31
75
  because Ruby 2.7 introduces numbered block parameters. Because of the way
@@ -35,7 +79,7 @@
35
79
 
36
80
  - Administrivia:
37
81
 
38
- - Olle Jonsson removed an outdated Travis configuration option (`sudo: false`). [#142]
82
+ - Olle Jonsson removed an outdated Travis configuration option. [#142][]
39
83
 
40
84
  ## 3.3 / 2019-09-04
41
85
 
@@ -70,8 +114,9 @@
70
114
  to be in the same family even if strict sorting would cause an
71
115
  unregistered type to be sorted first. [#132]
72
116
 
73
- - Dillon Welch contributed a change that added `frozen_string_literal: true` to files so that modern Rubies can automatically reduce duplicate
74
- string allocations. [#135]
117
+ - Dillon Welch contributed a change that added `frozen_string_literal: true`
118
+ to files so that modern Rubies can automatically reduce duplicate string
119
+ allocations. [#135]
75
120
 
76
121
  - 2 bug fixes
77
122
 
@@ -82,7 +127,7 @@
82
127
  because when Enumerable#inject isn't provided a starting value, the first
83
128
  value is used as the default value. In every case where this error was
84
129
  happening, the result was supposed to be an array containing Set objects
85
- so they can be reduced to a single Set. [#117], [#127], [#134]
130
+ so they can be reduced to a single Set. [#117][], [#127][], [#134][]
86
131
 
87
132
  - Fixed an uncontrolled growth bug in MIME::Types::Container where a key
88
133
  miss would create a new entry with an empty Set in the container. This
@@ -104,12 +149,12 @@
104
149
  - The history file has been modified to remove all history prior to 3.0.
105
150
  This history can be found in previous commits.
106
151
 
107
- - A spelling error was corrected by Edward Betts ([#129]).
152
+ - A spelling error was corrected by Edward Betts ([#129][]).
108
153
 
109
154
  - Administrivia:
110
155
 
111
156
  - CI configuration for more modern versions of Ruby were added by Nicolas
112
- Leger ([#130]), Jun Aruga ([#125]), and Austin Ziegler. Removed
157
+ Leger ([#130][]), Jun Aruga ([#125][]), and Austin Ziegler. Removed
113
158
  ruby-head-clang and rbx (Rubinius) from CI.
114
159
 
115
160
  - Fixed tests which were asserting equality against nil, which will become
@@ -120,18 +165,18 @@
120
165
  - 1 documentation change:
121
166
 
122
167
  - Tim Smith (@tas50) updated the build badges to be SVGs to improve
123
- readability on high-density (retina) screens with pull request [#112].
168
+ readability on high-density (retina) screens with pull request [#112][].
124
169
 
125
170
  - 3 bug fixes
126
171
 
127
172
  - A test for `MIME::Types::Cache` fails under Ruby 2.3 because of frozen
128
- strings, [#118]. This has been fixed.
173
+ strings, [#118][]. This has been fixed.
129
174
 
130
175
  - The JSON data has been incorrectly encoded since the release of
131
176
  mime-types 3 on the `xrefs` field, because of the switch to using a Set
132
177
  to store cross-reference information. This has been fixed.
133
178
 
134
- - A tentative fix for [#117] has been applied, removing the only circular
179
+ - A tentative fix for [#117][] has been applied, removing the only circular
135
180
  require dependencies that exist (and for which there was code to prevent,
136
181
  but the current fix is simpler). I have no way to verify this fix and
137
182
  depending on how things are loaded by `delayed_job`, this fix may not be
@@ -146,22 +191,22 @@
146
191
  - 2 governance changes
147
192
 
148
193
  - This project and the related mime-types-data project are now exclusively
149
- MIT licensed. Resolves [#95].
194
+ MIT licensed. Resolves [#95][].
150
195
 
151
196
  - All projects under the mime-types organization now have a standard code
152
- of conduct adapted from the [Contributor Covenant]. This text can be
153
- found in the [Code-of-Conduct.md] file.
197
+ of conduct adapted from the [Contributor Covenant][]. This text can be
198
+ found in the [Code-of-Conduct.md][] file.
154
199
 
155
200
  - 3 major changes
156
201
 
157
202
  - All methods deprecated in mime-types 2.x have been removed.
158
203
 
159
204
  - mime-types now requires Ruby 2.0 compatibility or later. Resolves
160
- [#97].
205
+ [#97][].
161
206
 
162
207
  - The registry data has been removed from mime-types and put into
163
208
  mime-types-data, maintained and released separately. It can be found at
164
- [mime-types-data].
209
+ [mime-types-data][].
165
210
 
166
211
  - 17 minor changes:
167
212
 
@@ -174,8 +219,9 @@
174
219
  `x-` prefixes.
175
220
 
176
221
  - Improved initialization with an Array works so that extensions do not
177
- need to be wrapped in another array. This means that `%w(text/yaml yaml yml)` works in the same way that `['text/yaml', %w(yaml yml)]` did (and
178
- still does).
222
+ need to be wrapped in another array. This means that
223
+ `%w(text/yaml yaml yml)` works in the same way that
224
+ `['text/yaml', %w(yaml yml)]` did (and still does).
179
225
 
180
226
  - Changed `priority_compare` to conform with attributes that no longer
181
227
  exist.
@@ -183,8 +229,8 @@
183
229
  - Changed the internal implementation of extensions to use a frozen Set.
184
230
 
185
231
  - When extensions are set or modified with `add_extensions`, the primary
186
- registry will be informed of a need to reindex extensions. Resolves
187
- [#84].
232
+ registry will be informed of a need to re-index extensions. Resolves
233
+ [#84][].
188
234
 
189
235
  - The preferred extension can be set explicitly. If not set, it will be
190
236
  the first extension. If the preferred extension is not in the extension
@@ -207,7 +253,7 @@
207
253
  - Extracted the class methods to a separate file.
208
254
 
209
255
  - Changed the container implementation to use a Set instead of an Array
210
- to prevent data duplication. Resolves [#79].
256
+ to prevent data duplication. Resolves [#79][].
211
257
 
212
258
  - `MIME::Types::Cache` changes:
213
259
 
@@ -226,7 +272,7 @@
226
272
 
227
273
  - The registry is default loaded from the columnar store by default. The
228
274
  internal format of the columnar store has changed; many of the boolean
229
- flags are now loaded from a single file. Resolves [#85].
275
+ flags are now loaded from a single file. Resolves [#85][].
230
276
 
231
277
  [#79]: https://github.com/mime-types/ruby-mime-types/pull/79
232
278
  [#84]: https://github.com/mime-types/ruby-mime-types/pull/84
@@ -255,6 +301,9 @@
255
301
  [#149]: https://github.com/mime-types/ruby-mime-types/pull/149
256
302
  [#150]: https://github.com/mime-types/ruby-mime-types/pull/150
257
303
  [#153]: https://github.com/mime-types/ruby-mime-types/pull/153
304
+ [#166]: https://github.com/mime-types/ruby-mime-types/issues/166
305
+ [#167]: https://github.com/mime-types/ruby-mime-types/pull/167
306
+ [#170]: https://github.com/mime-types/ruby-mime-types/pull/170
258
307
  [code-of-conduct.md]: Code-of-Conduct_md.html
259
308
  [contributor covenant]: http://contributor-covenant.org
260
309
  [mime-types-data]: https://github.com/mime-types/mime-types-data
data/Manifest.txt CHANGED
@@ -1,3 +1,4 @@
1
+ .standard.yml
1
2
  Code-of-Conduct.md
2
3
  Contributing.md
3
4
  History.md
data/README.rdoc CHANGED
@@ -5,7 +5,7 @@ code :: https://github.com/mime-types/ruby-mime-types/
5
5
  bugs :: https://github.com/mime-types/ruby-mime-types/issues
6
6
  rdoc :: http://rdoc.info/gems/mime-types/
7
7
  clog :: https://github.com/mime-types/ruby-mime-types/blob/master/History.md
8
- continuous integration :: {<img src="https://travis-ci.org/mime-types/ruby-mime-types.svg?branch=master" alt="Build Status" />}[https://travis-ci.org/mime-types/ruby-mime-types]
8
+ continuous integration :: {<img src="https://github.com/mime-types/ruby-mime-types/actions/workflows/ci.yml/badge.svg" alt="Build Status" />}[https://github.com/mime-types/ruby-mime-types/actions/workflows/ci.yml]
9
9
  test coverage :: {<img src="https://coveralls.io/repos/mime-types/ruby-mime-types/badge.svg?branch=master&service=github" alt="Coverage Status" />}[https://coveralls.io/github/mime-types/ruby-mime-types?branch=master]
10
10
 
11
11
  == Description
data/Rakefile CHANGED
@@ -1,78 +1,40 @@
1
- # frozen_string_literal: true
2
-
3
1
  require "rubygems"
4
2
  require "hoe"
5
3
  require "rake/clean"
6
4
 
7
- # This is required until https://github.com/seattlerb/hoe/issues/112 is fixed
8
- class Hoe
9
- def with_config
10
- config = Hoe::DEFAULT_CONFIG
11
-
12
- rc = File.expand_path("~/.hoerc")
13
- homeconfig = load_config(rc)
14
- config = config.merge(homeconfig)
15
-
16
- localconfig = load_config(File.expand_path(File.join(Dir.pwd, ".hoerc")))
17
- config = config.merge(localconfig)
18
-
19
- yield config, rc
20
- end
21
-
22
- def load_config(name)
23
- File.exist?(name) ? safe_load_yaml(name) : {}
24
- end
25
-
26
- def safe_load_yaml(name)
27
- return safe_load_yaml_file(name) if YAML.respond_to?(:safe_load_file)
28
-
29
- data = IO.binread(name)
30
- YAML.safe_load(data, permitted_classes: [Regexp])
31
- rescue
32
- YAML.safe_load(data, [Regexp])
33
- end
34
-
35
- def safe_load_yaml_file(name)
36
- YAML.safe_load_file(name, permitted_classes: [Regexp])
37
- rescue
38
- YAML.safe_load_file(name, [Regexp])
39
- end
40
- end
41
-
5
+ Hoe.plugin :cov
42
6
  Hoe.plugin :doofus
43
7
  Hoe.plugin :gemspec2
44
- Hoe.plugin :git
8
+ Hoe.plugin :git2
45
9
  Hoe.plugin :minitest
46
- Hoe.plugin :email unless ENV["CI"]
10
+ Hoe.plugin :rubygems
47
11
 
48
12
  spec = Hoe.spec "mime-types" do
49
13
  developer("Austin Ziegler", "halostatue@gmail.com")
50
- self.need_tar = true
51
-
52
- require_ruby_version ">= 2.0"
53
14
 
54
15
  self.history_file = "History.md"
55
16
  self.readme_file = "README.rdoc"
56
17
 
57
18
  license "MIT"
58
19
 
20
+ require_ruby_version ">= 2.0"
21
+
22
+ spec_extras[:metadata] = ->(val) { val["rubygems_mfa_required"] = "true" }
23
+
59
24
  extra_deps << ["mime-types-data", "~> 3.2015"]
60
25
 
26
+ extra_dev_deps << ["hoe", ">= 3.0", "< 5"]
61
27
  extra_dev_deps << ["hoe-doofus", "~> 1.0"]
62
28
  extra_dev_deps << ["hoe-gemspec2", "~> 1.1"]
63
- extra_dev_deps << ["hoe-git", "~> 1.6"]
29
+ extra_dev_deps << ["hoe-git2", "~> 1.7"]
64
30
  extra_dev_deps << ["hoe-rubygems", "~> 1.0"]
65
- extra_dev_deps << ["standard", "~> 1.0"]
66
- extra_dev_deps << ["minitest", "~> 5.4"]
31
+ extra_dev_deps << ["minitest", "~> 5.0"]
67
32
  extra_dev_deps << ["minitest-autotest", "~> 1.0"]
68
- extra_dev_deps << ["minitest-focus", "~> 1.0"]
69
33
  extra_dev_deps << ["minitest-bonus-assertions", "~> 3.0"]
34
+ extra_dev_deps << ["minitest-focus", "~> 1.0"]
70
35
  extra_dev_deps << ["minitest-hooks", "~> 1.4"]
71
36
  extra_dev_deps << ["rake", ">= 10.0", "< 14.0"]
72
-
73
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.0")
74
- extra_dev_deps << ["simplecov", "~> 0.7"]
75
- end
37
+ extra_dev_deps << ["standard", "~> 1.0"]
76
38
  end
77
39
 
78
40
  namespace :benchmark do
@@ -235,9 +197,7 @@ namespace :convert do
235
197
 
236
198
  file mark => [rdoc, :setup] do |t|
237
199
  puts "#{rdoc} => #{mark}"
238
- File.open(t.name, "wb") { |target|
239
- target.write @doc_converter.convert(IO.read(t.prerequisites.first))
240
- }
200
+ File.binwrite(t.name, @doc_converter.convert(IO.read(t.prerequisites.first)))
241
201
  end
242
202
 
243
203
  CLEAN.add mark
data/lib/mime/type.rb CHANGED
@@ -93,7 +93,7 @@ class MIME::Type
93
93
  end
94
94
 
95
95
  # The released version of the mime-types library.
96
- VERSION = "3.4.0"
96
+ VERSION = "3.5.0"
97
97
 
98
98
  include Comparable
99
99
 
@@ -224,6 +224,32 @@ class MIME::Type
224
224
  other.is_a?(MIME::Type) && (self == other)
225
225
  end
226
226
 
227
+ # Returns a hash based on the #simplified value.
228
+ #
229
+ # This maintains the invariant that two #eql? instances must have the same
230
+ # #hash (although having the same #hash does *not* imply that the objects are
231
+ # #eql?).
232
+ #
233
+ # To see why, suppose a MIME::Type instance +a+ is compared to another object
234
+ # +b+, and that <code>a.eql?(b)</code> is true. By the definition of #eql?,
235
+ # we know the following:
236
+ #
237
+ # 1. +b+ is a MIME::Type instance itself.
238
+ # 2. <code>a == b</code> is true.
239
+ #
240
+ # Due to the first point, we know that +b+ should respond to the #simplified
241
+ # method. Thus, per the definition of #<=>, we know that +a.simplified+ must
242
+ # be equal to +b.simplified+, as compared by the <=> method corresponding to
243
+ # +a.simplified+.
244
+ #
245
+ # Presumably, if <code>a.simplified <=> b.simplified</code> is +0+, then
246
+ # +a.simplified+ has the same hash as +b.simplified+. So we assume it's
247
+ # suitable for #hash to delegate to #simplified in service of the #eql?
248
+ # invariant.
249
+ def hash
250
+ simplified.hash
251
+ end
252
+
227
253
  # Returns the whole MIME content-type string.
228
254
  #
229
255
  # The content type is a presentation value from the MIME type registry and
@@ -338,7 +364,7 @@ class MIME::Type
338
364
 
339
365
  # Returns the default encoding for the MIME::Type based on the media type.
340
366
  def default_encoding
341
- @media_type == "text" ? "quoted-printable" : "base64"
367
+ (@media_type == "text") ? "quoted-printable" : "base64"
342
368
  end
343
369
 
344
370
  ##
@@ -22,13 +22,13 @@ class << MIME::Types::Cache
22
22
  if cache.version == MIME::Types::Data::VERSION
23
23
  Marshal.load(cache.data)
24
24
  else
25
- MIME::Types.logger.warn <<~WARNING.chomp
25
+ MIME::Types.logger.error <<-WARNING.chomp.strip
26
26
  Could not load MIME::Types cache: invalid version
27
27
  WARNING
28
28
  nil
29
29
  end
30
30
  rescue => e
31
- MIME::Types.logger.warn <<~WARNING.chomp
31
+ MIME::Types.logger.error <<-WARNING.chomp.strip
32
32
  Could not load MIME::Types cache: #{e}
33
33
  WARNING
34
34
  nil
@@ -49,10 +49,6 @@ class << MIME::Types::Cache
49
49
 
50
50
  types ||= MIME::Types.send(:__types__)
51
51
 
52
- File.open(cache_file, "wb") do |f|
53
- f.write(
54
- Marshal.dump(new(MIME::Types::Data::VERSION, Marshal.dump(types)))
55
- )
56
- end
52
+ File.binwrite(cache_file, Marshal.dump(new(MIME::Types::Data::VERSION, Marshal.dump(types))))
57
53
  end
58
54
  end
@@ -10,22 +10,22 @@ module MIME
10
10
  def self.deprecated(klass, sym, message = nil, &block) # :nodoc:
11
11
  level =
12
12
  case klass
13
- when Class, Module
14
- "."
15
- else
16
- klass = klass.class
17
- "#"
13
+ when Class, Module
14
+ "."
15
+ else
16
+ klass = klass.class
17
+ "#"
18
18
  end
19
19
  message =
20
20
  case message
21
- when :private, :protected
22
- "and will be #{message}"
23
- when nil
24
- "and will be removed"
25
- else
26
- message
21
+ when :private, :protected
22
+ "and will be #{message}"
23
+ when nil
24
+ "and will be removed"
25
+ else
26
+ message
27
27
  end
28
- MIME::Types.logger.warn <<~WARNING.chomp
28
+ MIME::Types.logger.debug <<-WARNING.chomp.strip
29
29
  #{caller(2..2).first}: #{klass}#{level}#{sym} is deprecated #{message}.
30
30
  WARNING
31
31
 
@@ -45,7 +45,7 @@ class << MIME::Types
45
45
  def lazy_load?
46
46
  return unless ENV.key?("RUBY_MIME_TYPES_LAZY_LOAD")
47
47
 
48
- MIME::Types.logger.warn <<~WARNING.chomp
48
+ MIME::Types.logger.debug <<-WARNING.chomp.strip
49
49
  Lazy loading ($RUBY_MIME_TYPES_LAZY_LOAD) is deprecated and will be removed.
50
50
  WARNING
51
51
 
data/lib/mime/types.rb CHANGED
@@ -125,12 +125,12 @@ class MIME::Types
125
125
  def [](type_id, complete: false, registered: false)
126
126
  matches =
127
127
  case type_id
128
- when MIME::Type
129
- @type_variants[type_id.simplified]
130
- when Regexp
131
- match(type_id)
132
- else
133
- @type_variants[MIME::Type.simplified(type_id)]
128
+ when MIME::Type
129
+ @type_variants[type_id.simplified]
130
+ when Regexp
131
+ match(type_id)
132
+ else
133
+ @type_variants[MIME::Type.simplified(type_id)]
134
134
  end
135
135
 
136
136
  prune_matches(matches, complete, registered).sort { |a, b|
@@ -187,7 +187,7 @@ class MIME::Types
187
187
  # truthy value to suppress that warning.
188
188
  def add_type(type, quiet = false)
189
189
  if !quiet && @type_variants[type.simplified].include?(type)
190
- MIME::Types.logger.warn <<~WARNING
190
+ MIME::Types.logger.debug <<-WARNING.chomp.strip
191
191
  Type #{type} is already registered as a variant of #{type.simplified}.
192
192
  WARNING
193
193
  end
@@ -266,7 +266,27 @@ describe MIME::Type do
266
266
  end
267
267
 
268
268
  it "is true for an equivalent MIME::Type" do
269
- assert text_plain, mime_type("text/Plain")
269
+ assert text_plain.eql?(mime_type("text/Plain"))
270
+ end
271
+
272
+ it "is true for an equivalent subclass of MIME::Type" do
273
+ subclass = Class.new(MIME::Type)
274
+ assert text_plain.eql?(subclass.new("text/plain"))
275
+ end
276
+ end
277
+
278
+ describe "#hash" do
279
+ it "is the same between #eql? MIME::Type instances" do
280
+ assert_equal text_plain.hash, mime_type("text/plain").hash
281
+ end
282
+
283
+ it "is the same between #eql? MIME::Type instances of different classes" do
284
+ subclass = Class.new(MIME::Type)
285
+ assert_equal text_plain.hash, subclass.new("text/plain").hash
286
+ end
287
+
288
+ it "uses the #simplified value" do
289
+ assert_equal text_plain.hash, mime_type("text/Plain").hash
270
290
  end
271
291
  end
272
292
 
@@ -67,7 +67,7 @@ describe MIME::Types::Cache do
67
67
  it "outputs an error when there is a marshal file incompatibility" do
68
68
  MIME::Types::Cache.save
69
69
  data = File.binread(@cache_file).reverse
70
- File.open(@cache_file, "wb") { |f| f.write(data) }
70
+ File.binwrite(@cache_file, data)
71
71
  MIME::Types.instance_variable_set(:@__types__, nil)
72
72
  assert_output "", /incompatible marshal file format/ do
73
73
  MIME::Types["text/html"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mime-types
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.0
4
+ version: 3.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Austin Ziegler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-15 00:00:00.000000000 Z
11
+ date: 2023-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mime-types-data
@@ -30,72 +30,78 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '5.14'
33
+ version: '5.19'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '5.14'
40
+ version: '5.19'
41
41
  - !ruby/object:Gem::Dependency
42
- name: hoe-doofus
42
+ name: hoe
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.0'
47
+ version: '3.0'
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: '5'
48
51
  type: :development
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
51
54
  requirements:
52
- - - "~>"
55
+ - - ">="
53
56
  - !ruby/object:Gem::Version
54
- version: '1.0'
57
+ version: '3.0'
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '5'
55
61
  - !ruby/object:Gem::Dependency
56
- name: hoe-gemspec2
62
+ name: hoe-doofus
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: '1.1'
67
+ version: '1.0'
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: '1.1'
74
+ version: '1.0'
69
75
  - !ruby/object:Gem::Dependency
70
- name: hoe-git
76
+ name: hoe-gemspec2
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
79
  - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: '1.6'
81
+ version: '1.1'
76
82
  type: :development
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
86
  - - "~>"
81
87
  - !ruby/object:Gem::Version
82
- version: '1.6'
88
+ version: '1.1'
83
89
  - !ruby/object:Gem::Dependency
84
- name: hoe-rubygems
90
+ name: hoe-git2
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
93
  - - "~>"
88
94
  - !ruby/object:Gem::Version
89
- version: '1.0'
95
+ version: '1.7'
90
96
  type: :development
91
97
  prerelease: false
92
98
  version_requirements: !ruby/object:Gem::Requirement
93
99
  requirements:
94
100
  - - "~>"
95
101
  - !ruby/object:Gem::Version
96
- version: '1.0'
102
+ version: '1.7'
97
103
  - !ruby/object:Gem::Dependency
98
- name: standard
104
+ name: hoe-rubygems
99
105
  requirement: !ruby/object:Gem::Requirement
100
106
  requirements:
101
107
  - - "~>"
@@ -123,33 +129,33 @@ dependencies:
123
129
  - !ruby/object:Gem::Version
124
130
  version: '1.0'
125
131
  - !ruby/object:Gem::Dependency
126
- name: minitest-focus
132
+ name: minitest-bonus-assertions
127
133
  requirement: !ruby/object:Gem::Requirement
128
134
  requirements:
129
135
  - - "~>"
130
136
  - !ruby/object:Gem::Version
131
- version: '1.0'
137
+ version: '3.0'
132
138
  type: :development
133
139
  prerelease: false
134
140
  version_requirements: !ruby/object:Gem::Requirement
135
141
  requirements:
136
142
  - - "~>"
137
143
  - !ruby/object:Gem::Version
138
- version: '1.0'
144
+ version: '3.0'
139
145
  - !ruby/object:Gem::Dependency
140
- name: minitest-bonus-assertions
146
+ name: minitest-focus
141
147
  requirement: !ruby/object:Gem::Requirement
142
148
  requirements:
143
149
  - - "~>"
144
150
  - !ruby/object:Gem::Version
145
- version: '3.0'
151
+ version: '1.0'
146
152
  type: :development
147
153
  prerelease: false
148
154
  version_requirements: !ruby/object:Gem::Requirement
149
155
  requirements:
150
156
  - - "~>"
151
157
  - !ruby/object:Gem::Version
152
- version: '3.0'
158
+ version: '1.0'
153
159
  - !ruby/object:Gem::Dependency
154
160
  name: minitest-hooks
155
161
  requirement: !ruby/object:Gem::Requirement
@@ -185,19 +191,19 @@ dependencies:
185
191
  - !ruby/object:Gem::Version
186
192
  version: '14.0'
187
193
  - !ruby/object:Gem::Dependency
188
- name: simplecov
194
+ name: standard
189
195
  requirement: !ruby/object:Gem::Requirement
190
196
  requirements:
191
197
  - - "~>"
192
198
  - !ruby/object:Gem::Version
193
- version: '0.7'
199
+ version: '1.0'
194
200
  type: :development
195
201
  prerelease: false
196
202
  version_requirements: !ruby/object:Gem::Requirement
197
203
  requirements:
198
204
  - - "~>"
199
205
  - !ruby/object:Gem::Version
200
- version: '0.7'
206
+ version: '1.0'
201
207
  - !ruby/object:Gem::Dependency
202
208
  name: rdoc
203
209
  requirement: !ruby/object:Gem::Requirement
@@ -219,19 +225,19 @@ dependencies:
219
225
  - !ruby/object:Gem::Version
220
226
  version: '7'
221
227
  - !ruby/object:Gem::Dependency
222
- name: hoe
228
+ name: simplecov
223
229
  requirement: !ruby/object:Gem::Requirement
224
230
  requirements:
225
231
  - - "~>"
226
232
  - !ruby/object:Gem::Version
227
- version: '3.23'
233
+ version: '0.21'
228
234
  type: :development
229
235
  prerelease: false
230
236
  version_requirements: !ruby/object:Gem::Requirement
231
237
  requirements:
232
238
  - - "~>"
233
239
  - !ruby/object:Gem::Version
234
- version: '3.23'
240
+ version: '0.21'
235
241
  description: |-
236
242
  The mime-types library provides a library and registry for information about
237
243
  MIME content type definitions. It can be used to determine defined filename
@@ -257,6 +263,7 @@ extra_rdoc_files:
257
263
  - Manifest.txt
258
264
  - README.rdoc
259
265
  files:
266
+ - ".standard.yml"
260
267
  - Code-of-Conduct.md
261
268
  - Contributing.md
262
269
  - History.md
@@ -296,6 +303,7 @@ metadata:
296
303
  source_code_uri: https://github.com/mime-types/ruby-mime-types/
297
304
  bug_tracker_uri: https://github.com/mime-types/ruby-mime-types/issues
298
305
  changelog_uri: https://github.com/mime-types/ruby-mime-types/blob/master/History.md
306
+ rubygems_mfa_required: 'true'
299
307
  post_install_message:
300
308
  rdoc_options:
301
309
  - "--main"
@@ -313,7 +321,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
313
321
  - !ruby/object:Gem::Version
314
322
  version: '0'
315
323
  requirements: []
316
- rubygems_version: 3.1.6
324
+ rubygems_version: 3.4.10
317
325
  signing_key:
318
326
  specification_version: 4
319
327
  summary: The mime-types library provides a library and registry for information about