Fork me on GitHub

Rouge

A Clojure implementation on Ruby.

Get the code ( )

Explore the code or open a Pull Request on GitHub »

All development is taking place on GitHub. You can see active development by checking the open pull requests—even my own work is done in running pull requests, to ease review before merge and ensure that I don't destabilise master.

Here's how to get started quickly:

Try Rouge in your browser

Open the Try Rouge site »

A quick and easy way to get a feel for what it's like to use Rouge.

It's still alpha-quality, like Rouge, so please don't be surprised if it's not quite working as you'd totally expect.

Want to help? It's on GitHub!

$ git clone git://github.com/rouge-lang/rouge
Cloning into 'rouge'...
[…]
$ cd rouge
$ bin/rouge
user=> (+ 1 2 3)
6
user=> RUBY_VERSION
"1.9.3"
user=> (var RUBY_VERSION)
#'ruby/RUBY_VERSION
user=> (require "irb")
true
user=> (.start IRB)
1.9.3p194 :001 >

Example: Mechanize

See the example on GitHub »

Here's a small example of using Ruby's Mechanize library in Rouge.

The combination of Ruby interop forms and Clojure macros can be seen, as well as how we call a Ruby function with a "block".

(ns test
  (:require mechanize)
  (:use rouge.core ruby))

(def agent (Mechanize.))
(def page (.get agent "http://github.com"))

(.each (.links page) | [link]
  (puts (.text link)))

(def page
  (-> (.links page)
      (.find | [l] (= (.text l) "Explore GitHub"))
      (.click)))

(puts (.inspect page))

Have a chat

Subscribe or view archives on Google Groups »

You can send an email to rouge-talk@googlegroups.com, or mail me directly at ar@len.me.