Mergit is a way to merge a bunch of required files into one file.

This is useful to distribute single-file ruby executables, such as administration scripts, simple tools, etc. Yet allows you to break files out for easy design, programming and testing.


Mergit uses simple text processing, therefore it can be tripped up. Some known problems include:

  • require statements nested in code instead of at outermost scope of a file.


Add this line to your application's Gemfile:

gem 'mergit'

And then execute:

$ bundle

Or install it yourself as:

$ gem install mergit


Command Line Tool

The command line tool, mergit, is pretty self-explanatory.

You specify the ruby file you want requires merged into on the command line (via standard in, if you specify -) and any library directories you want required from.

You can specify the --lib flag multiple times.

Use the --output flag to send the resulting output to someplace other than stdout.

Library API

Simple usage:

search_path = [ '/path/to/lib', '/path/to/other/lib' ]
mergit = => search_path)

string_of_merged_file = mergit.process_file('/path/to/file')
# or
string_of_merged_string = mergit.process(some_string)


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request