AMQP-Processing
Ruby-Processing, Internet-enabled.
Installation
Install JRuby, if you haven’t done so already. This is most easily done with rvm :
$ bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head ) $ rvm install jruby
Then switch to your JRuby environment, and install the AMQP-Processing gem:
$ rvm use jruby $ gem install amqp-processing
Connecting to a Server
Once installation is complete, the “amqpp” executable should be available in your $PATH. Run it like so:
$ amqpp <server_address>
Where server_address is the address of an AMQP server (like RabbitMQ). You can provide a port number as a second argument if the server isn’t using the standard AMQP port (5672).
Drawing
When the prompt appears, call Processing::App methods on the proxy object stored in $client. The call will be duplicated on all clients currently connected to the server.
>> $client.stroke 100, 255, 50, 128 => nil >> $client.oval 100, 100, 300, 200 => nil
Here are a few basic method calls:
#Draw an opaque yellow line around shapes, 10 pixels wide. red, green, blue, alpha = 128, 128, 0, 255 $client.stroke(red, green, blue, alpha) $client.stroke_width 10 #Fill shapes with semi-transparent purple. red, green, blue, alpha = 255, 0, 255, 128 $client.fill(red, green, blue, alpha) #Draw shapes. x, y = 200, 100 width, height = 400, 300 $client.rect(x, y, width, height) $client.oval(x, y, width, height)
You can find more examples to get you started here:
Samples from the Ruby-Processing project
The full Processing API is supported; you can read up on the various methods here:
API reference at processing.org
You can call your local Processing::App directly (without sending the call to other clients) via $client.app. In this example, oval() would be sent over the wire, but mouse_x() and mouse_y() would not:
loop do x = $client.app.mouse_x y = $client.app.mouse_y $client.oval(x, y, 100, 100) end
If you don’t want to prepend “$client” to everything, you can switch to the client’s context in IRB:
>> irb $client >> oval 99, 99, 99, 99
Copyright
Copyright © 2010-2011 Jay McGavren. Released under the MIT license. See the LICENSE file for details.