A Guide for anyone wishing to develop a ruby wrapper for processing
The first thing to understand is that vanilla processing is essentially a java project, hiding behind an ide and an antlr pre-processor. Historically it is interesting to understand that
ruby-processing pre-dated both
processing.js (since superseded by
processing.py. JRubyArt and propane require JRuby to run but in the case of
JRubyArt jruby-complete.jar can be used instead of system installed version (similar to ruby-processing).
A good working knowledge of your system environment is essential (this unfortunately disqualifies most Windows users and probably the majority of Mac users) you should at least be familiar with common system commands, or be prepared to learn. Knowledge, experience of java programming is much more important than ruby, preferably familiarity with jruby (documentation is not all it should be so be prepared to learn as you go).
A means of swapping java environments (eg
update-alternatives for Debian ubuntu, or
A java ide, netbeans is a good choice
A ruby editor, atom is an excellent choice for git support, and ability to run sketches from the editor (further you can preview markdown).
Minitest is preferred over rspec for testing
An independent maven install (ie separate from ide that will also include maven support).
If at all possible avoid rvm, and probably rbenv they will only cause grief and confusion (neither handle jruby versioning too well)
Tricks of the trade
Run a sketch.pde in the processing ide, and somewhere it outputs the sketch.java and sketch.class artefacts in the case of linux this will be in folders in the
/tmp directory. The sketch.java sketch can be transferred to your java ide and with right setup (added libraries) you should be able to run the sketch from the java ide. Do this and you are well on your way being able translate processing sketches to ruby, but mere translation should not be considered good enough it should look like ruby code.
Clone the repositories, read the project code (propane is simpler to start with, neither code base is particularly big and I’ve tried to keep it modular), see if it makes sense, there could be scope for improvement.
The simplest, safest place to contribute to is the documentation, start by contributing to Wiki, otherwise learn jekyll and github markdown.