Ok - went for a run and thought about this some more.

I agree that expecting the user to specify the tenant_id when it already exists on the url line is stupid - and not DRY. I'll pull that off the URL when we mangle to URL and stuff it in the options hash - that way we can pass it in with the rest of the options and it will be handled properly.

IMO, the base url going forward will be the scheme+host+port. The tenant_id we'll save and pass along, and each request will then build their own url from the port number on out.