<commit_before># multirb

Runs an IRB-esque prompt (but it's NOT really IRB!) over multiple Rubies using RVM.

![Screencast](http://s3.cooperpress.com.s3.amazonaws.com/multirb.gif)

Note: This is NOT the same as [multiruby](http://www.infoq.com/news/2008/02/multiruby-testing) although multiruby has similar uses for fuller scripts and may be worth checking out.

## Why is this useful?

If you're a regular developer, it's probably not very useful. But if you're researching or training people in the differences between versions and implementations of Ruby, it could be very helpful indeed.

This system was used in a different form in the [Ruby 1.9 Walkthrough](https://cooperpress.com/19walkthrough) and is now being used to develop the Ruby 2.0 Walkthrough. Multirb allows me to quickly demonstrate the ways in which different versions of Ruby handle or support various features.

## Installation

Install with:

    $ gem install multirb

You also need a complete, working [RVM](https://rvm.io/) installation. Feel free to submit pull requests to make this auto detect other Ruby version managers, such as rbenv.

Note: multirb works fine from MRI Ruby 1.9 and JRuby 1.7.x but has not been tested elsewhere yet.

## Usage

Run with:

    $ multirb

Or if you want to specify some different 'default' versions of Ruby to run:

    $ multirb 1.9.2 1.9.3 [etc..]

Then:

1. Type in expressions and press Enter.
2. Leave whitespace on the end of lines to enter more lines.
3. Add `# all` to run all versions, nothing for default.
4. Add `# version,version,version` to run specific versions (e.g. `# 1.9.2, 1.9.3`.)
5. Type `exit` on its own to exit (or use Ctrl+D.)

Currently specifies jruby, 1.8.7, 1.9.2, 1.9.3, and 2.0.0 as 'all versions'; 1.8.7, 1.9.3, and 2.0.0 as 'default versions'.

## Versions

0.0.2 (edge, not yet released as gem):
 * Uses threads to speed up results (thanks to <NAME> for initial implementation)
 
0.0.1
 * Initial version

## Contributing

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<commit_msg>Tweaked README<commit_after># multirb

Runs an IRB-esque prompt (but it's NOT really IRB!) over multiple Rubies using RVM.

![Screencast](http://s3.cooperpress.com.s3.amazonaws.com/multirb.gif)

Note: This is NOT the same as [multiruby](http://www.infoq.com/news/2008/02/multiruby-testing) although multiruby has similar uses for fuller scripts and may be worth checking out.

## Why is this useful?

If you're a regular developer, it's probably not very useful. But if you're researching or training people in the differences between versions and implementations of Ruby, it could be very helpful indeed.

This system was used in a different form in the [Ruby 1.9 Walkthrough](https://cooperpress.com/19walkthrough) and is now being used to develop the Ruby 2.0 Walkthrough. Multirb allows me to quickly demonstrate the ways in which different versions of Ruby handle or support various features.

## Installation

Install with:

    $ gem install multirb

You also need a complete, working [RVM](https://rvm.io/) installation. Feel free to submit pull requests to make this auto detect other Ruby version managers, such as rbenv.

Note: multirb works fine from MRI Ruby 1.9 and JRuby 1.7.x but has not been tested elsewhere yet.

## Usage

Run with:

    $ multirb

Or if you want to specify some different 'default' versions of Ruby to run:

    $ multirb 1.9.2 1.9.3 [etc..]

Then:

1. Type in expressions and press Enter.
2. Leave whitespace on the end of lines to enter more lines.
3. Add `# all` to run all versions, nothing for default.
4. Add `# version,version,version` to run specific versions (e.g. `# 1.9.2, 1.9.3`.)
5. Type `exit` on its own to exit (or use Ctrl+D.)

Currently specifies jruby, 1.8.7, 1.9.2, 1.9.3, and 2.0.0 as 'all versions'; 1.8.7, 1.9.3, and 2.0.0 as 'default versions'.

## Versions

0.0.3 (forthcoming):
 * rbenv support

0.0.2 (CURRENT GEM RELEASE):
 * Uses threads to speed up results (thanks to <NAME> for initial implementation)
 * Improved 'tempfile' usage to prevent errors on JRuby
 
0.0.1
 * Initial version

## Contributing

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
{'fraction_non_alphanumeric': 0.09430604982206406, 'fraction_numerical': 0.03047153024911032, 'mean_word_length': 3.7637711864406778, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2508119', 'n_tokens_mistral': 1486, 'n_tokens_neox': 1390, 'n_words': 647}