Contributing

I value any contribution to mime-types you can provide: a bug report, a feature request, or code contributions.

As mime-types is a mature codebase, there are a few guidelines:

Adding or Modifying MIME Types

The mime-types registry is loaded from a JSON file in data, but this file is not considered editable and cannot be compared in a pull request. New or modified MIME types should be edited in the appropriate YAML file under type-lists. The format is as shown below for the application/xml MIME type in type-lists/application.yml.

- !ruby/object:MIME::Type
  content-type: application/xml
  encoding: 8bit
  extensions:
  - xml
  - xsl
  references:
  - IANA
  - RFC3023
  xrefs: !ruby/hash:MIME::Types::Container
    rfc:
    - rfc3023
  registered: true

There are other fields that can be added, matching the fields discussed in the documentation for MIME::Type. Pull requests for MIME types should just contain the changes to the YAML files for the new or modified MIME types; I will convert the YAML files to JSON prior to a new release. I would rather not have to verify that the JSON matches the YAML changes, which is why it is not necessary to convert for the pull request.

If you are making a change for a private fork, use rake convert:yaml:json to convert the YAML to JSON.

Test Dependencies

mime-types uses Ryan Davis’s Hoe to manage the release process, and it adds a number of rake tasks. You will mostly be interested in:

$ rake

which runs the tests the same way that:

$ rake test
$ rake travis

will do.

To assist with the installation of the development dependencies for mime-types, I have provided the simplest possible Gemfile pointing to the (generated) mime-types.gemspec file. This will permit you to do:

$ bundle install

to get the development dependencies. If you aleady have hoe installed, you can accomplish the same thing with:

$ rake newb

This task will install any missing dependencies, run the tests/specs, and generate the RDoc.

Workflow

Here’s the most direct way to get your work merged into the project:

Contributors

Thanks to everyone else who has contributed to mime-types:

[Validate]

Generated with the Darkfish Rdoc Generator 2.