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 21:00:33 -0800 2009
commit  5f6a7eaef69db7aac0e8294e2c7e2e798a9b39b9
tree    ffd0ccb966ee1cdff93c530a0c0dd67402b684fe
parent  88e8de479f7d76debc735da351f65c2a97c7780e
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.