[DEFUNCT] A JavaScript implementation of important parts of the Ruby core library
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
.gitignore
.gitmodules
.jsdoc_config
MIT-LICENSE
README.textile

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.