Ça faisait un certain temps que je voulais essayer Opal.rb, un compilateur Ruby vers Javascript.

C’est fait ! Voici donc un Hello world! avec Opal.rb.

Tout d’abord, on installe la gem:

gem install opal

Ensuite, on se fait un fichier hello.rb avec le contenu suivant:

puts 'Hello world!'

Bon jusque là, c’est simple ;) Maintenant on arrive au passage que j’aime le moins. Je n’ai pas trouvé de commande pour compiler un fichier Ruby. Il faut se l’écrire soi-même, bizarre. En voici un possible:

require 'opal'

puts Opal.compile(IO.read(ARGV[0]))

Voici ce que ça donne:

$ ruby rb2js.rb hello.rb
/* Generated by Opal 0.6.2 */
(function($opal) {
  var self = $opal.top, $scope = $opal, nil = $opal.nil, $breaker = $opal.breaker, $slice = $opal.slice;

  $opal.add_stubs(['$puts']);
  return self.$puts("Hello world!")
})(Opal);

On va s’enregistrer ça dans un fichier hello.js:

$ ruby rb2js.rb hello.rb > hello.js

Reste à se faire un fichier HTML pour voir ce que ça donne:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <script src="lib/opal.min.js"></script>
    <script src="lib/opal-parser.min.js"></script>
  </head>
  <body>
    <script src="hello.js"></script>
  </body>
</html>

On peut ouvrir index.html avec see index.html si on est sous Linux, ou bien open index.html si on est sous OS X. Et enfin, dans la console, on peut voir notre Hello world!.

À demain.