About Ruby
Ruby is a general-purpose object-oriented programming language designed from the outset to enhance productivity and at the same time be extremely fun to use.
It's an interpreted language which means that it can run immediately. There's no need to wait while your code compiles, you can see the effects straight away.
These two aspects alone make it a perfect partner for FlowStone which is all about rapid development with immediate results.
Equation Editor
The new Ruby component in FlowStone makes the perfect equation editor. Even if you have no programming experience, you will most likely have come across equations and formulae and the Ruby component allows you to easily specify these in FlowStone.
Mathematical equations are one of the areas where graphical programming can become more of a hinderence than a help. Now you can simply enter the formula directly. It's quicker and much more descriptive.
Scripted Graphics
Ruby is an extendable language so we've used this to provide a set of graphics functions and objects that give you everything you need to create amazing graphics inside FlowStone.
Drawing complex graphics often requires calculations to be performed during the drawing process. This is hard to do in the graphical programming world but is far simpler with a bit of code.
In addition to graphics we've also added mouse handling so that you can respond to all the usual mouse events all within a single Ruby component.
External API Calls
You can now call functions in external DLLs using Ruby and the Win32API class. You can pass data to the function and have it pass data back to FlowStone. This makes it easy to use proprietry code that you already have or to do intensive processing in an external optimised DLL.
Arrays
Ruby has extensive support for arrays and other collection classes.
FlowStone array types convert directly to and from Ruby arrays. Since array manipulation is so incredibly easy in Ruby, all you need to do is pass your FlowStone Float, Int or String array into a Ruby component, manipulate it and pass the result out.
Strings
With a wealth of string manipulation features in Ruby you'll never find yourself stuck again. There's comprehensive support for pattern matching, substitution and element access. There's just about any string feature you'll ever need.
Doubles
All floating point numbers in Ruby are double precision so you can now perform high precision floating point calculations right inside FlowStone.
This is ideal for something like a counter where the increment is tiny. You can maintain a core counter value at double precision so if you pass this value to FlowStone, whilst it will get converted to single precision, you won't get any drift.