njonsson / rouge

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

This URL has Read+Write access

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 = [];
for (var i = 0; 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'];
for (var i = 0; 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'];
var collected = [];
for (var i = 0; i < array.length; i++) {
  collected[collected.length] = array[i];
}
console.debug(collected);
var array = ['foo', 'bar'];
var 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.