In a previous post, I introduced SPQR and presented a couple of examples of how one could use SPQR to publish Ruby objects over QMF. Sometimes, though, you aren’t starting from an application – instead, you’re starting from an XML QMF schema document. SPQR includes spqr-gen, a tool designed to automatically generate a skeleton SPQR application from a QMF schema. In this post, we’ll see an example of spqr-gen in action.
First, let’s look at a simple QMF schema for a class that exposes one method, echo, which returns its argument (note that the code examples may not show up if you’re viewing this in a feed reader):
<schemapackage="examples.codegen"><classname="EchoAgent"><methodname="echo"desc="returns its argument"><argname="arg"dir="IO"type="lstr"/></method></class></schema>
Running spqr-gen on this example produces two files: agent-app.rb and examples/codegen/EchoAgent.rb. As you can see, these two files contain all of the boilerplate we need to start implementing these QMF methods — and, by chance, the boilerplate methods actually have the behavior that our agent is meant to!