public
Description: Rouge is a JavaScript implementation of important parts of the Ruby core library.
Homepage: http://njonsson.github.com/rouge
Clone URL: git://github.com/njonsson/rouge.git
Click here to lend your support to: rouge and make a donation at www.pledgie.com !
njonsson (author)
Mon Nov 02 20:58:57 -0800 2009
commit  45bcf7cc982d31872daf9f44e889d19a79f6add2
tree    2c4cba3f72fb831578e60087f2ce68ba2da8f2a4
parent  1d302789e0350c719192c41af454b689fa4630fb
rouge /
name age message
file .gitignore Loading commit data...
file .gitmodules
file .jsdoc_config
file MIT-LICENSE
file README.textile
directory src/
README.textile

Welcome to Rouge

His code not “functional” or “elegant.”
What do Code Monkey think?
— Jonathan Coulton, “Code Monkey”

Do Ruby’s stylish core and standard libraries make your JavaScript green with envy? Tart up that dowdy JavaScript — put on some Rouge.

Rouge is a JavaScript implementation of important parts of the Ruby core library.

Usage

Rouge makes your JavaScript look and feel more like Ruby while preserving sound JavaScript style.

JavaScript Rouge Ruby
var array = [],
    i = 0;
for (; i < 10; i++) {
  array[i] = 'foo';
}
console.debug(array);
var array = Array.new(10, 'foo');
console.debug(array);
array = Array.new(10, 'foo')
puts array.inspect
var array = ['foo', 'bar'],
    i = 0;
for (; i < array.length; i++) {
  console.debug(array[i]);
}
var array = ['foo', 'bar'];
array.each(function (s) {
  console.debug(s);
});
array = %w(foo bar)
array.each do
  puts s.inspect
end
var array     = ['foo', 'bar'],
    collected = [],
    i = 0;
for (; i < array.length; i++) {
  collected[collected.length] = array[i];
}
console.debug(collected);
var array     = ['foo', 'bar'],
    collected = array.collect(function (s) {
      return 'item: ' + s;
    });
console.debug(collected);
array = %w(foo bar)
collected = array.collect do
  "item: #{s}"
end
puts collected.inspect

You should have a look at the documentation.

Test coverage

Rouge has around 500 executable specifications authored using the Screw.Unit framework. Run the specs by opening src/spec/suite.html. (Firefox works best for this.)

Credits

Rouge’s author is Nils Jonsson. Released under the MIT License.