## 3.2.2 / 2018-08-12
* Hiroto Fukui removed a stray `debugger` statement that I had used in
producing v3.2.1. [#137][]
## 3.2.1 / 2018-08-12
* A few bugs related to MIME::Types::Container and its use in the
mime-types-data helper tools reared their head because I released 3.2
before verifying against mime-types-data.
## 3.2 / 2018-08-12
* 2 minor enhancements
* Janko Marohnić contributed a change to `MIME::Type#priority_order` that
should improve on strict sorting when dealing with MIME types that
appear to be in the same family even if strict sorting would cause an
unregistered type to be sorted first. [#132][]
* Dillon Welch contributed a change that added `frozen_string_literal:
true` to files so that modern Rubies can automatically reduce duplicate
string allocations. [#135][]
* 2 bug fixes
* Burke Libbey fixed a problem with cached data loading. [#126][]
* Resolved an issue where Enumerable#inject returns +nil+ when provided
an empty enumerable and a default value has not been provided. This is
because when Enumerable#inject isn't provided a starting value, the
first value is used as the default value. In every case where this
error was happening, the result was supposed to be an array containing
Set objects so they can be reduced to a single Set. [#117][], [#127][],
[#134][].
* Fixed an uncontrolled growth bug in MIME::Types::Container where a key
miss would create a new entry with an empty Set in the container. This
was working as designed (this particular feature was heavily used
during MIME::Type registry construction), but the design was flawed in
that it did not have any way of determining the difference between
construction and querying. This would mean that, if you have a function
in your web app that queries the MIME::Types registry by extension, the
extension registry would grow uncontrollably. [#136][]
* Deprecations:
* Lazy loading (`$RUBY_MIME_TYPES_LAZY_LOAD`) has been deprecated.
* Documentation Changes:
* Supporting files are now Markdown instead of rdoc, except for the
README.
* The history file has been modified to remove all history prior to 3.0.
This history can be found in previous commits.
* A spelling error was corrected by Edward Betts ([#129][]).
* Administrivia:
* CI configuration for more modern versions of Ruby were added by Nicolas
Leger ([#130][]), Jun Aruga ([#125][]), and Austin Ziegler. Removed
ruby-head-clang and rbx (Rubinius) from CI.
* Fixed tests which were asserting equality against nil, which will
become an error in Minitest 6.
== 3.1 / 2016-05-22
* 1 documentation change:
* Tim Smith (@tas50) updated the build badges to be SVGs to improve
readability on high-density (retina) screens with pull request
{#112}[https://github.com/mime-types/ruby-mime-types/pull/112].
* 3 bug fixes
* A test for MIME::Types::Cache fails under Ruby 2.3 because of frozen
strings, {#118}[https://github.com/mime-types/ruby-mime-types/issues/118].
This has been fixed.
* The JSON data has been incorrectly encoded since the release of mime-types
3 on the +xrefs+ field, because of the switch to using a Set to store
cross-reference information. This has been fixed.
* A tentative fix for
{#117}[https://github.com/mime-types/ruby-mime-types/issues/117] has been
applied, removing the only circular require dependencies that exist (and
for which there was code to prevent, but the current fix is simpler).
I have no way to verify this fix and depending on how things are loaded by
+delayed_job+, this fix may not be sufficient.
* 1 governance change
* Updated to {Contributor Covenant 1.4}[Code-of-Conduct_rdoc.html].
== 3.0 / 2015-11-21
* 2 governance changes
* This project and the related mime-types-data project are now exclusively
MIT licensed. Resolves
{#95}[https://github.com/mime-types/ruby-mime-types/issues/95].
* All projects under the mime-types organization now have a standard code of
conduct adapted from the {Contributor
Covenant}[http://contributor-covenant.org]. This text can be found in the
{Code-of-Conduct.rdoc}[Code-of-Conduct_rdoc.html] file.
* 3 major changes
* All methods deprecated in mime-types 2.x have been removed.
* mime-types now requires Ruby 2.0 compatibility or later. Resolves
{#97}[https://github.com/mime-types/ruby-mime-types/issues/97].
* The registry data has been removed from mime-types and put into
mime-types-data, maintained and released separately. It can be found at
{mime-types-data}[https://github.com/mime-types/mime-types-data].
* 17 minor changes:
* MIME::Type changes:
* Changed the way that simplified types representations are creatd to
reflect the fact that +x-+ prefixes are no longer considered special
according to IANA. A simplified MIME type is case-folded to lowercase. A
new keyword parameter, +remove_x_prefix+, can be provided to remove +x-+
prefixes.
* Improved initialization with an Array works so that extensions do not
need to be wrapped in another array. This means that <tt>%w(text/yaml
yaml yml)</tt> works in the same way that <tt>['text/yaml', %w(yaml
yml)]</tt> did (and still does).
* Changed +priority_compare+ to conform with attributes that no longer
exist.
* Changed the internal implementation of extensions to use a frozen Set.
* When extensions are set or modified with +add_extensions+, the primary
registry will be informed of a need to reindex extensions. Resolves
{#84}[https://github.com/mime-types/ruby-mime-types/issues/84].
* The preferred extension can be set explicitly. If not set, it will be the
first extension. If the preferred extension is not in the extension list,
it will be added.
* Improved how xref URLs are generated.
* Converted +obsolete+, +registered+ and +signature+ to attr_accessors.
* MIME::Types changes:
* Modified MIME::Types.new to track instances of MIME::Types so that they
can be told to reindex the extensions as necessary.
* Removed +data_version+ attribute.
* Changed #[] so that the +complete+ and +registered+ flags are keywords
instead of a generic options parameter.
* Extracted the class methods to a separate file.
* Changed the container implementation to use a Set instead of an Array to
prevent data duplication. Resolves
{#79}[https://github.com/mime-types/ruby-mime-types/issues/79].
* MIME::Types::Cache changes:
* Caching is now based on the data gem version instead of the mime-types
version.
* Caching is compatible with columnar registry stores.
* MIME::Types::Loader changes:
* MIME::Types::Loader::PATH has been removed and replaced with
MIME::Types::Data::PATH from the mime-types-data gem. The environment
variable RUBY_MIME_TYPES_DATA is still used.
* Support for the long-deprecated mime-types v1 format has been removed.
* The registry is default loaded from the columnar store by default. The
internal format of the columnar store has changed; many of the boolean
flags are now loaded from a single file. Resolves
{#85}[https://github.com/mime-types/ruby-mime-types/85].
== 2.6.2 / 2015-09-13
* Bugs:
* Emilio Losada (@losadaem) fixed an error where +each_with_object+'s block
parameters are the inverse of those used by +inject+. Resolves
{#107}[https://github.com/mime-types/ruby-mime-types/issues/107] with pull
request {#108}[https://github.com/mime-types/ruby-mime-types/pull/108].
* Matt Beedle (@mattbeedle) fixed a typo in MIME::Type::Columnar negatively
affecting people who use the +use_instead+ functionality. Resolved in
{#109}[https://github.com/mime-types/ruby-mime-types/pull/109].
* Documentation:
* Juanito Fatas (@JuanitoFatas) fixed a documentation issue with the README
not properly linking internally on the generated rdoc source. Resolved with
{#105}[https://github.com/mime-types/ruby-mime-types/pull/105].
* Development:
* Fixed a minor issue in the IANA registry parser that would generate empty
+text+ xrefs if the +text+ section was empty.
== 1.25 / 2013-08-30
* New Features:
* Adding lazy loading and caching functionality to the default data based on
work done by Greg Brockman (gdb).
* Bugs:
* Force the default internal application encoding to be used when reading the
MIME types database. Based on a change by briangamble, found in the rapid7
fork.
* New extensions:
* mjpeg (video/x-motion-jpeg) based on a change by punkrats, found in the
vidibus fork.
* Modernized MiniTest configuration.
== 1.24 / 2013-08-14
* Code Climate:
* Working on improving the quality of the mime-types codebase through the use
of Code Climate. https://codeclimate.com/github/halostatue/mime-types
* Simplified MIME::Type.from_array to make more assumptions about assignment.
* Documentation:
* LeoYoung <mrleoyoung@gmail.com> pointed out that the README.rdoc contained
examples that could never possibly work because MIME::Types#[] returns (for
all the versions I have handy) an array, not a single type. I have updated
README.rdoc to reflect this.
* Removed Nokogiri as a declared development dependency. It is still required
if you're going to use the IANA parser functionality, but it is not necessary
for most development purposes. This has been removed to ensure that Travis CI
passes on Ruby 1.8.7.
* New MIME Types:
* 7zip (application/x-7z-compressed). Fixes a request by kodram.
https://github.com/halostatue/mime-types/issues/32
* application/x-www-form-urlencoded. Fixes a request by alexkwolfe.
https://github.com/halostatue/mime-types/issues/39
* Various new MIME types from IANA:
* application/mbms-schedule\+xml from 3GPP and Turcotte.
* application/provenance\+xml from W3C and Herman.
* application/session-info from 3GPP and Firmin.
* application/urc-grpsheet\+xml, application/urc-targetdesc\+xml,
application/uisocketdesc\+xml from Zimmermann.
* application/api\+json from Klabnik.
* application/vnd.etsi.pstn\+xml from Han and Belling.
* application/vnd.fujixerox.docuworks.container from Tashiro.
* application/vnd.windows.devicepairing from Dandawate.
* video/vnd.radgamettools.bink and video/vnd.radgamettools.smacker from
Andersson.
* Updated MIME Types:
* RFC 6960 was adopted (application/ocsp-request and application/ocsp-response).
== 1.23 / 2013-04-20
* New Feature:
* Arnaud Meuret (ameuret) suggested that it could be useful if the MIME type
collection was enumerable, so he implemented it in #30. Thanks for the
contribution! https://github.com/halostatue/mime-types/pull/30
* Updated MIME Types:
* RFC6910 was adopted (application/call-completion).
* RFC6902 was adopted (application/json-patch\+json).
* RFC6917 was adopted (application/mrb-consumer\+xml,
application/mrb-publish\+xml).
* RFC6922 was adopted (application/sql).
* RFC2560 is being
{updated}[http://tools.ietf.org/html/draft-ietf-pkix-rfc2560bis].
* Administrivia:
* The gemspec now includes information about the licenses under which the
mime-types gem is available.
* Using hoe-gemspec2 instead of hoe-gemspec.
== 1.22 / 2013-03-30
* New MIME Types:
* Added support for 3FR (Hasselblad raw images) files. MIME-Type was obtained
by looking at exif data with exiftool. Thanks to cgat for these changes.
https://github.com/halostatue/mime-types/pull/27
* Updated MIME Types:
* Pulled the latest updates from the IANA MIME-Type registry.
* Added support for Ruby 2.0 with Travis CI.
== 1.21 / 2013-02-09
* New MIME Types:
* Various new or updated MIME types by Garret Alfert:
application/vnd.ms-fontobject, .eot; application/x-chrome-extension, .crx;
application/x-web-app-manifest\+json, .webapp; application/x-xpinstall,
.xpi; image/svg\+xml, .svg, .svgz; image/webp, .webp; text/cache-manifest,
.appcache, .manifest. https://github.com/halostatue/mime-types/pull/24
* Fixed some Manifest.txt related madness on Travis.
== 1.20.1 / 2013-01-26
* New MIME Types:
* Apple iWork document types added by Hans de Graaff
(application/x-iwork-keynote-sffkey, .key;
application/x-iwork-pages-sffpages, .pages;
application/x-iwork-numbers-sffnumbers, .numbers).
https://github.com/halostatue/mime-types/issue/20
* epub, ibooks, mobi, and DMG content types by Mauricio
Linhares (mac:application/x-apple-diskimage, .dmg; application/epub\+zip,
.epub; application/x-ibooks\+zip, .ibooks; application/x-mobipocket-ebook,
.mobi). https://github.com/halostatue/mime-types/issue/22
* rss content type by Garret Alfert (application/rss\+xml, .rss).
https://github.com/halostatue/mime-types/issue/23
* Added or updated MIME types from the latest IANA list.
* Fixed MIME Types:
* Excel macro-enabled spreadsheets had an incorrect extension. Thanks to
Rafael Belvederese for reporting this issue.
https://github.com/halostatue/mime-types/issue/21
* Enabled for use with travis.
* Enabled gem signing.
* Fixed an error related to MIME type downloads.
* This was previously published as 1.20, but I had forgotten some attributions.
== MIME::Types 1.18 / 2012-03-20
* New MIME Types:
* Types reported in Issue #6
(https://github.com/halostatue/mime-types/issues/6):
* CoffeeScript (text/x-coffeescript; .coffee; 8bit).
* AIR
(application/vnd.adobe.air-applicationinstaller-package+zip, .air;
base64).
* WOFF (application/font-woff; .woff; base64).
* TrueType (application/x-font-truetype; .ttf; base64).
* OpenType (application/x-font-opentype; .otf; base64).
* WebM (audio/webm, video/webm; .webm). Issue #11
(https://github.com/halostatue/mime-types/issues/11).
* New extensions:
* f4v/f4p (video/mp4, used by Adobe); f4a/fb4 (audio/mp4, used by Adobe).
* Bug Fixes:
* It was pointed out that Licence.txt was incorrectly named. Fixed by
renaming to Licence.rdoc (from Issue/Pull Request #8,
https://github.com/halostatue/mime-types/issues/8).
* It was pointed out that a plan to have the test output generated
automatically never went through. Issue #10
(https://github.com/halostatue/mime-types/issues/10)
* Add LICENSE.
* Remove default value of GEM_BUILD.
== MIME::Types 1.16
* Made compatible with Ruby 1.8.6, 1.8.7, and 1.9.1.
* Switched to the 'hoe' gem system and added a lot of build-time tools.
* Updated the MIME types to the list based on the values in the Perl library
version 1.27. Also updated based on external source information and bug
reports.
* This is the last planned version of MIME::Types 1.x. Work will be
starting soon on MIME::Types 2.x with richer data querying mechanisms
and support for external data sources.
This library allows for the identification of a file's likely MIME
content type. The identification of MIME content type is based on a
file's filename extensions.