Most of the tools for developing Ethereum DApps is in JavaScript and Solidity. You can write some Ruby programs that talk to your geth/eth node via HTTP JSONRPC or IPC JSONRPC (for account controls) to do some simple queries on the blockchain for example:

You can also send transactions through this interface but you will need to properly encode your transaction to call functions and send the required data. This would require figuring out the encoding process. It's basically a combination of figuring out the function signature which is the sha3 hash of:

function(paramtype1,paramtype2) along with the hex encoded versions of the required data.

You can then query the results by reading either the contract storage which can be decoded by reversing your encoding function.

With this knowledge you can actually create a DSL that can read the JSON ABI and generate Ruby classes that when instantiated into objects can be used to call your Ethereum contracts. This is actually how it's done by JavaScript based DApps but they get the benefit of being abstracted away from the function call encoding process by the web3.js library. I actually had started on similar libraries for Elixir and Ruby which I will pick back up when I have some spare time.

It would be cool to have a Ruby based interface to Ethereum as this would pave the way for interop with Rails, Sinatra, Volt, other Ruby based web frameworks, or native OS X DApps via RubyMotion.