From 25786356d321efb88af4b71951589b1b2776ff87 Mon Sep 17 00:00:00 2001 From: "bobaman@google.com" Date: Sat, 14 Aug 2010 01:26:01 +0000 Subject: [PATCH] Added code to determine the location of the discovery document. git-svn-id: https://google-api-ruby-client.googlecode.com/svn/trunk@11 c1d61fac-ed7f-fcc1-18f7-ff78120a04ef --- lib/google/api_client/auth/oauth_1.rb | 2 ++ lib/google/api_client/discovery/discovery.rb | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/lib/google/api_client/auth/oauth_1.rb b/lib/google/api_client/auth/oauth_1.rb index cca3d3363..ac9c2e69a 100644 --- a/lib/google/api_client/auth/oauth_1.rb +++ b/lib/google/api_client/auth/oauth_1.rb @@ -52,6 +52,8 @@ module Google #:nodoc: # # @param [Hash] options # The configuration options. + # :service:: + # The name of the service. # :request_token_uri:: # The OAuth endpoint for obtaining a request token. # :authorization_uri:: diff --git a/lib/google/api_client/discovery/discovery.rb b/lib/google/api_client/discovery/discovery.rb index 64fb0705c..0041825d9 100644 --- a/lib/google/api_client/discovery/discovery.rb +++ b/lib/google/api_client/discovery/discovery.rb @@ -34,6 +34,12 @@ module Google #:nodoc: # Creates a new API discovery handler. # # @param [Hash] options + # :service:: + # The name of the service. + # :service_version:: + # The version of the service. + # :discovery_uri:: + # The URI of the discovery document. # # @return [Google::APIClient::Discovery] The API discovery handler. def initialize(options={}) @@ -43,6 +49,17 @@ module Google #:nodoc: @options = DEFAULTS.clone end @options.merge!(options) + if @options[:service] && !@options[:discovery_uri] + service_id = @options[:service] + service_version = @options[:service_version] || "1.0" + @options[:discovery_uri] = + "http://www.googleapis.com/discovery/0.1/describe" + + "?api=#{service_id}&apiVersion=#{service_version}" + end + unless @options[:discovery_uri] + raise ArgumentError, + "Missing required configuration value, :discovery_uri." + end # Handle any remaining configuration here end