Client libraries for Ruby/Rails?

Hope I’m asking a valid question, but I would like to provide a Ruby/
Rails client library for a web service I’ve created. I’m not a
proficient Ruby/Rails developer so I’m not even certain the metaphor
of “client library” applies.

I have programmatic familiarity with supplying the appropriate bits
for Java, PHP, Microsoft, etc. I want to support Ruby/Rails
development against our service, but am not quite sure what to provide
or supply.

If someone could point me in the right direction (or to the right
documentation), I’d be greatly appreciative.

cheers,
jro

Hi Jeff

In the rails world, we talk about plugins.
You could just google for ‘rails plugins’ .

On 10/11/07, JeffRo [email protected] wrote:

If someone could point me in the right direction (or to the right
documentation), I’d be greatly appreciative.

Rails is a server application framework. Ruby is a general purpose
scripting language. Rails is written in Ruby.

Your client library should provide an API to your service. It should
be written in Ruby and packaged as a gem. Gems (rubygems.org) are the
standard packaging system now. RubyForge (rubyforge.org) is the place
to host development of your client library. If you publish a gem at
your RubyForge project, any Ruby installation can install it with a
simple “gem install jeff-lib”. There is quite a bit in the Ruby
standard library and in 3rd party gems to support all kinds of
networking and web service protocols, so you want to leverage those of
course.

Rails plugins are a different beast. They are extensions to the Rails
framework, to assist with development of Rails applications. You don’t
want to lock yourself into a plugin; however, if Rails server
applications need to interact with your service as a client, you might
have a plugin that provides some “glue” between Rails and your client
lib gem.

Bob -

Thanks for your comments, this is super helpful. Are there any
suggested gems worth looking at for guidance? Maybe a gem for working
with Amazon web services, as an example?