Contributing

Contribution to mime-types is encouraged in any form: a bug report, a feature request, or code contributions. There are a few DOs and DON'Ts for contributions.

Adding or Modifying MIME Types

The mime-types registry is managed in mime-types-data.

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 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.

You can run tests with code coverage analysis by running rake coverage.

Benchmarks

mime-types offers several benchmark tasks to measure different measures of performance.

There is a repeated load test, measuring how long it takes to start and load mime-types with its full registry. By default, it runs fifty loops and uses the built-in benchmark library:

There are two loaded object count benchmarks (for normal and columnar loads). These use ObjectSpace.count_objects.

Workflow

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