Generic Ruby API client