This is about the only thing I don't like about this particular implementation.

The Fog::Service class is more or less a factory/builder that returns either the Real or Mock implementation for the service and Fog::Rackspace::Service contains additional methods I would like Real or Mock classes to contain.

I can foresee two potential solutions to this problem. 

The first and easiest is to rename Fog::Rackspace::Service to something else. (But I am not quite sure what to call it.)

The second is figure out a way to get those methods onto the Real/Mock implementation class. I could create some kind of authentication proxy that wraps the Real/Mock implementation OR I could use some kind of RubyFu. My fear with this approach is that we might lose some clarity.

Do you have any thoughts? If not, I will probably just roll with it.