Reorganized some of the code and removed unnecessary stuff.
git-svn-id: https://google-api-ruby-client.googlecode.com/svn/trunk@35 c1d61fac-ed7f-fcc1-18f7-ff78120a04ef
This commit is contained in:
		
							parent
							
								
									3a9d58108a
								
							
						
					
					
						commit
						f96412cf23
					
				
							
								
								
									
										16
									
								
								README
								
								
								
								
							
							
						
						
									
										16
									
								
								README
								
								
								
								
							|  | @ -15,7 +15,21 @@ The Google API Ruby Client makes it trivial to discover and access supported API | ||||||
| 
 | 
 | ||||||
| == Example Usage | == Example Usage | ||||||
| 
 | 
 | ||||||
|   # Some code goes here. |     require 'google/api_client' | ||||||
|  |     client = Google::APIClient.new(:service => 'buzz') | ||||||
|  |     client.authorization.fetch_temporary_credential!( | ||||||
|  |       :additional_parameters => { | ||||||
|  |         'scope' => 'https://www.googleapis.com/auth/buzz' | ||||||
|  |       } | ||||||
|  |     ) | ||||||
|  |     client.authorization.authorization_uri | ||||||
|  |     # Redirect user here | ||||||
|  |     client.authorization.fetch_token_credential!(:verifier => '12345') | ||||||
|  |     response = client.execute( | ||||||
|  |       'buzz.activities.list', | ||||||
|  |       'scope' => '@self', 'userId' => '@me', 'alt' => 'json' | ||||||
|  |     ) | ||||||
|  |     status, headers, body = response | ||||||
| 
 | 
 | ||||||
| == Requirements | == Requirements | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -15,7 +15,7 @@ | ||||||
| require 'httpadapter' | require 'httpadapter' | ||||||
| require 'json' | require 'json' | ||||||
| 
 | 
 | ||||||
| require 'google/api_client/discovery/service' | require 'google/api_client/discovery' | ||||||
| 
 | 
 | ||||||
| module Google #:nodoc: | module Google #:nodoc: | ||||||
|   ## |   ## | ||||||
|  | @ -32,9 +32,9 @@ module Google #:nodoc: | ||||||
|     # Returns the parser used by the client. |     # Returns the parser used by the client. | ||||||
|     def parser |     def parser | ||||||
|       unless @options[:parser] |       unless @options[:parser] | ||||||
|         require 'google/api_client/parser/json_parser' |         require 'google/api_client/parsers/json_parser' | ||||||
|         # NOTE: Do not rely on this default value, as it may change |         # NOTE: Do not rely on this default value, as it may change | ||||||
|         @options[:parser] = JSONParser.new |         @options[:parser] = JSONParser | ||||||
|       end |       end | ||||||
|       return @options[:parser] |       return @options[:parser] | ||||||
|     end |     end | ||||||
|  | @ -72,9 +72,9 @@ module Google #:nodoc: | ||||||
|       return @options[:discovery_uri] ||= (begin |       return @options[:discovery_uri] ||= (begin | ||||||
|         if @options[:service] |         if @options[:service] | ||||||
|           service_id = @options[:service] |           service_id = @options[:service] | ||||||
|           service_version = @options[:service_version] || '1.0' |           service_version = @options[:service_version] || 'v1' | ||||||
|           "http://www.googleapis.com/discovery/0.1/describe" + |           "http://www.googleapis.com/discovery/0.1/describe" + | ||||||
|           "?api=#{service_id}&apiVersion=#{service_version}" |           "?api=#{service_id}" | ||||||
|         else |         else | ||||||
|           raise ArgumentError, |           raise ArgumentError, | ||||||
|             'Missing required configuration value, :discovery_uri.' |             'Missing required configuration value, :discovery_uri.' | ||||||
|  | @ -107,10 +107,9 @@ module Google #:nodoc: | ||||||
|         services = [] |         services = [] | ||||||
|         for service_name in service_names |         for service_name in service_names | ||||||
|           versions = self.discovery_document['data'][service_name] |           versions = self.discovery_document['data'][service_name] | ||||||
|           for version_name in versions.keys() |           for service_version in versions.keys() | ||||||
|             service_description = |             service_description = | ||||||
|               self.discovery_document['data'][service_name][version_name] |               self.discovery_document['data'][service_name][service_version] | ||||||
|             service_version = "%.1f" % version_name.gsub(/^v/, '').to_f |  | ||||||
|             services << ::Google::APIClient::Service.new( |             services << ::Google::APIClient::Service.new( | ||||||
|               service_name, |               service_name, | ||||||
|               service_version, |               service_version, | ||||||
|  | @ -122,7 +121,7 @@ module Google #:nodoc: | ||||||
|       end) |       end) | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     def discovered_service(service_name, service_version='1.0') |     def discovered_service(service_name, service_version='v1') | ||||||
|       for service in self.discovered_services |       for service in self.discovered_services | ||||||
|         if service.name == service_name && |         if service.name == service_name && | ||||||
|             service.version.to_s == service_version.to_s |             service.version.to_s == service_version.to_s | ||||||
|  | @ -132,7 +131,7 @@ module Google #:nodoc: | ||||||
|       return nil |       return nil | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     def discovered_method(rpc_name, service_version='1.0') |     def discovered_method(rpc_name, service_version='v1') | ||||||
|       for service in self.discovered_services |       for service in self.discovered_services | ||||||
|         # This looks kinda weird, but is not a real problem because there's |         # This looks kinda weird, but is not a real problem because there's | ||||||
|         # almost always only one service, and this is memoized anyhow. |         # almost always only one service, and this is memoized anyhow. | ||||||
|  | @ -143,11 +142,24 @@ module Google #:nodoc: | ||||||
|       return nil |       return nil | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|  |     def latest_service(service_name) | ||||||
|  |       versions = {} | ||||||
|  |       for service in self.discovered_services | ||||||
|  |         next if service.name != service_name | ||||||
|  |         sortable_version = service.version.gsub(/^v/, '').split('.').map do |v| | ||||||
|  |           v.to_i | ||||||
|  |         end | ||||||
|  |         versions[sortable_version] = service | ||||||
|  |       end | ||||||
|  |       return versions[versions.keys.sort.last] | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|     def generate_request( |     def generate_request( | ||||||
|         api_method, parameters={}, body='', headers=[], options={}) |         api_method, parameters={}, body='', headers=[], options={}) | ||||||
|       options={ |       options={ | ||||||
|         :signed => true, |         :signed => true, | ||||||
|         :service_version => '1.0' |         :parser => self.parser, | ||||||
|  |         :service_version => 'v1' | ||||||
|       }.merge(options) |       }.merge(options) | ||||||
|       if api_method.kind_of?(String) |       if api_method.kind_of?(String) | ||||||
|         api_method = self.discovered_method( |         api_method = self.discovered_method( | ||||||
|  | @ -172,8 +184,8 @@ module Google #:nodoc: | ||||||
|       return self.transmit_request(request) |       return self.transmit_request(request) | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     def transmit_request(request) |     def transmit_request(request, adapter=self.http_adapter) | ||||||
|       ::HTTPAdapter.transmit(request, self.http_adapter) |       ::HTTPAdapter.transmit(request, adapter) | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     def sign_request(request) |     def sign_request(request) | ||||||
|  |  | ||||||
|  | @ -1,87 +0,0 @@ | ||||||
| # Copyright 2010 Google Inc. |  | ||||||
| # |  | ||||||
| # Licensed under the Apache License, Version 2.0 (the "License"); |  | ||||||
| # you may not use this file except in compliance with the License. |  | ||||||
| # You may obtain a copy of the License at |  | ||||||
| # |  | ||||||
| #      http://www.apache.org/licenses/LICENSE-2.0 |  | ||||||
| # |  | ||||||
| # Unless required by applicable law or agreed to in writing, software |  | ||||||
| # distributed under the License is distributed on an "AS IS" BASIS, |  | ||||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |  | ||||||
| # See the License for the specific language governing permissions and |  | ||||||
| # limitations under the License. |  | ||||||
| 
 |  | ||||||
| require 'json' |  | ||||||
| require 'addressable/template' |  | ||||||
| 
 |  | ||||||
| module Google #:nodoc: |  | ||||||
|   class APIClient #:nodoc: |  | ||||||
|     ## |  | ||||||
|     # A discovery document handler. |  | ||||||
|     class Discovery |  | ||||||
| 
 |  | ||||||
|       ## |  | ||||||
|       # The default discovery configuration values.  These may be overrided |  | ||||||
|       # simply by passing in the same key to the constructor. |  | ||||||
|       DEFAULTS = { |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       ## |  | ||||||
|       # A set of default configuration values specific to each service.  These |  | ||||||
|       # may be overrided simply by passing in the same key to the constructor. |  | ||||||
|       SERVICE_DEFAULTS = { |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       ## |  | ||||||
|       # Creates a new API discovery handler. |  | ||||||
|       # |  | ||||||
|       # @param [Hash] options |  | ||||||
|       #   <code>:service</code>:: |  | ||||||
|       #     The name of the service. |  | ||||||
|       #   <code>:service_version</code>:: |  | ||||||
|       #     The version of the service. |  | ||||||
|       #   <code>:discovery_uri</code>:: |  | ||||||
|       #     The URI of the discovery document. |  | ||||||
|       # |  | ||||||
|       # @return [Google::APIClient::Discovery] The API discovery handler. |  | ||||||
|       def initialize(options={}) |  | ||||||
|         if options[:service] && SERVICE_DEFAULTS[options[:service]] |  | ||||||
|           @options = DEFAULTS.merge(SERVICE_DEFAULTS[options[:service]]) |  | ||||||
|         else |  | ||||||
|           @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 |  | ||||||
| 
 |  | ||||||
|       ## |  | ||||||
|       # Returns the configuration of the handler.  Configuration options that |  | ||||||
|       # are not recognized by the handler are ignored. |  | ||||||
|       # |  | ||||||
|       # @return [Hash] The configuration options. |  | ||||||
|       def options |  | ||||||
|         return @options |  | ||||||
|       end |  | ||||||
| 
 |  | ||||||
|       ## |  | ||||||
|       # Returns the URI of the discovery document. |  | ||||||
|       # |  | ||||||
|       # @return [String] The URI of the discovery document. |  | ||||||
|       def discovery_uri |  | ||||||
|         return @options[:discovery_uri] |  | ||||||
|       end |  | ||||||
|     end |  | ||||||
|   end |  | ||||||
| end |  | ||||||
|  | @ -16,26 +16,24 @@ require 'json' | ||||||
| 
 | 
 | ||||||
| module Google #:nodoc: | module Google #:nodoc: | ||||||
|   class APIClient #:nodoc: |   class APIClient #:nodoc: | ||||||
| 
 |  | ||||||
|     ## |     ## | ||||||
|     # Provides a consistent interface by which to parse request and response |     # Provides a consistent interface by which to parse request and response | ||||||
|     # content. |     # content. | ||||||
|     # TODO(mattpok): ensure floats, URLs, dates are parsed correctly |     # TODO(mattpok): ensure floats, URLs, dates are parsed correctly | ||||||
|     class JSONParser |     module JSONParser | ||||||
| 
 | 
 | ||||||
|       def generate(hash) |       def self.serialize(hash) | ||||||
|         # JSON parser used can accept arrays as well, but we will limit |         # JSON parser used can accept arrays as well, but we will limit | ||||||
|         # to only allow hash to JSON string parsing to keep a simple interface |         # to only allow hash to JSON string parsing to keep a simple interface | ||||||
|         unless hash.instance_of? Hash |         unless hash.instance_of? Hash | ||||||
|           raise ArgumentError, |           raise ArgumentError, | ||||||
|             "JSON generate expected a Hash but got a #{hash.class}." |             "JSON generate expected a Hash but got a #{hash.class}." | ||||||
|         end |         end | ||||||
| 
 |         return JSON.generate(hash) | ||||||
|         return JSON.generate hash |  | ||||||
|       end |       end | ||||||
| 
 | 
 | ||||||
|       def parse(json_string) |       def self.parse(json_string) | ||||||
|         return JSON.parse json_string |         return JSON.parse(json_string) | ||||||
|       end |       end | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
|  | @ -1,28 +0,0 @@ | ||||||
| # Copyright 2010 Google Inc. |  | ||||||
| # |  | ||||||
| # Licensed under the Apache License, Version 2.0 (the "License"); |  | ||||||
| # you may not use this file except in compliance with the License. |  | ||||||
| # You may obtain a copy of the License at |  | ||||||
| # |  | ||||||
| #      http://www.apache.org/licenses/LICENSE-2.0 |  | ||||||
| # |  | ||||||
| # Unless required by applicable law or agreed to in writing, software |  | ||||||
| # distributed under the License is distributed on an "AS IS" BASIS, |  | ||||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |  | ||||||
| # See the License for the specific language governing permissions and |  | ||||||
| # limitations under the License. |  | ||||||
| 
 |  | ||||||
| module Google #:nodoc: |  | ||||||
|   class APIClient #:nodoc: |  | ||||||
| 
 |  | ||||||
|     ## |  | ||||||
|     # A simple request abstraction for API requests.  This is the primary |  | ||||||
|     # request object that users will interact with. |  | ||||||
|     # |  | ||||||
|     class APIRequest |  | ||||||
| 
 |  | ||||||
|       def execute |  | ||||||
|       end |  | ||||||
|     end |  | ||||||
|   end |  | ||||||
| end |  | ||||||
|  | @ -1,29 +0,0 @@ | ||||||
| # Copyright 2010 Google Inc. |  | ||||||
| # |  | ||||||
| # Licensed under the Apache License, Version 2.0 (the "License"); |  | ||||||
| # you may not use this file except in compliance with the License. |  | ||||||
| # You may obtain a copy of the License at |  | ||||||
| # |  | ||||||
| #      http://www.apache.org/licenses/LICENSE-2.0 |  | ||||||
| # |  | ||||||
| # Unless required by applicable law or agreed to in writing, software |  | ||||||
| # distributed under the License is distributed on an "AS IS" BASIS, |  | ||||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |  | ||||||
| # See the License for the specific language governing permissions and |  | ||||||
| # limitations under the License. |  | ||||||
| 
 |  | ||||||
| module Google #:nodoc: |  | ||||||
|   class APIClient #:nodoc: |  | ||||||
| 
 |  | ||||||
|     ## |  | ||||||
|     # A simple response abstraction for API requests. Encapsulates raw repsonse |  | ||||||
|     # data and allows user to parse response as a hash or model class. |  | ||||||
|     # This is the primary response object that users will interact with. |  | ||||||
|     # |  | ||||||
|     class APIResponse |  | ||||||
| 
 |  | ||||||
|       def parse |  | ||||||
|       end |  | ||||||
|     end |  | ||||||
|   end |  | ||||||
| end |  | ||||||
|  | @ -1,46 +0,0 @@ | ||||||
| # Copyright 2010 Google Inc. |  | ||||||
| # |  | ||||||
| # Licensed under the Apache License, Version 2.0 (the "License"); |  | ||||||
| # you may not use this file except in compliance with the License. |  | ||||||
| # You may obtain a copy of the License at |  | ||||||
| # |  | ||||||
| #      http://www.apache.org/licenses/LICENSE-2.0 |  | ||||||
| # |  | ||||||
| # Unless required by applicable law or agreed to in writing, software |  | ||||||
| # distributed under the License is distributed on an "AS IS" BASIS, |  | ||||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |  | ||||||
| # See the License for the specific language governing permissions and |  | ||||||
| # limitations under the License. |  | ||||||
| 
 |  | ||||||
| require 'spec_helper' |  | ||||||
| 
 |  | ||||||
| require 'oauth' |  | ||||||
| require 'google/api_client/discovery/discovery' |  | ||||||
| 
 |  | ||||||
| describe Google::APIClient::Discovery, 'configured for use with a service' do |  | ||||||
|   before do |  | ||||||
|     @discovery = Google::APIClient::Discovery.new(:service => :magic) |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
|   it 'should have the correct discovery document URI' do |  | ||||||
|     @discovery.discovery_uri.should == |  | ||||||
|       'http://www.googleapis.com/discovery/0.1/describe' + |  | ||||||
|       '?api=magic&apiVersion=1.0' |  | ||||||
|   end |  | ||||||
| end |  | ||||||
| 
 |  | ||||||
| describe Google::APIClient::Discovery, |  | ||||||
|     'configured for use with a specific service version' do |  | ||||||
|   before do |  | ||||||
|     @discovery = Google::APIClient::Discovery.new( |  | ||||||
|       :service => :magic, |  | ||||||
|       :service_version => 42.0 |  | ||||||
|     ) |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
|   it 'should have the correct discovery document URI' do |  | ||||||
|     @discovery.discovery_uri.should == |  | ||||||
|       'http://www.googleapis.com/discovery/0.1/describe' + |  | ||||||
|       '?api=magic&apiVersion=42.0' |  | ||||||
|   end |  | ||||||
| end |  | ||||||
|  | @ -0,0 +1,71 @@ | ||||||
|  | # Copyright 2010 Google Inc. | ||||||
|  | # | ||||||
|  | # Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  | # you may not use this file except in compliance with the License. | ||||||
|  | # You may obtain a copy of the License at | ||||||
|  | # | ||||||
|  | #      http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  | # | ||||||
|  | # Unless required by applicable law or agreed to in writing, software | ||||||
|  | # distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  | # See the License for the specific language governing permissions and | ||||||
|  | # limitations under the License. | ||||||
|  | 
 | ||||||
|  | require 'spec_helper' | ||||||
|  | 
 | ||||||
|  | require 'signet/oauth_1/client' | ||||||
|  | require 'httpadapter/adapters/net_http' | ||||||
|  | 
 | ||||||
|  | require 'google/api_client' | ||||||
|  | require 'google/api_client/version' | ||||||
|  | require 'google/api_client/parsers/json_parser' | ||||||
|  | 
 | ||||||
|  | describe Google::APIClient, 'configured for the prediction API' do | ||||||
|  |   before do | ||||||
|  |     @client = Google::APIClient.new(:service => 'prediction') | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   it 'should have multiple versions available' do | ||||||
|  |     @client.discovered_services.size.should > 1 | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   it 'should correctly determine the latest version' do | ||||||
|  |     @client.latest_service('prediction').version.should_not == 'v1' | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   it 'should correctly determine the latest version' do | ||||||
|  |     # Sanity check the algorithm | ||||||
|  |     @client.discovered_services.clear | ||||||
|  |     @client.discovered_services << | ||||||
|  |       Google::APIClient::Service.new('magic', 'v1', {}) | ||||||
|  |     @client.discovered_services << | ||||||
|  |       Google::APIClient::Service.new('magic', 'v1.1', {}) | ||||||
|  |     @client.discovered_services << | ||||||
|  |       Google::APIClient::Service.new('magic', 'v1.10', {}) | ||||||
|  |     @client.discovered_services << | ||||||
|  |       Google::APIClient::Service.new('magic', 'v10.1', {}) | ||||||
|  |     @client.discovered_services << | ||||||
|  |       Google::APIClient::Service.new('magic', 'v2.1', {}) | ||||||
|  |     @client.discovered_services << | ||||||
|  |       Google::APIClient::Service.new('magic', 'v10.0', {}) | ||||||
|  |     @client.latest_service('magic').version.should == 'v10.1' | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   it 'should correctly determine the latest version' do | ||||||
|  |     # Sanity check the algorithm | ||||||
|  |     @client.discovered_services.clear | ||||||
|  |     @client.discovered_services << | ||||||
|  |       Google::APIClient::Service.new('one', 'v3', {}) | ||||||
|  |     @client.discovered_services << | ||||||
|  |       Google::APIClient::Service.new('two', 'v1', {}) | ||||||
|  |     @client.discovered_services << | ||||||
|  |       Google::APIClient::Service.new('two', 'v2', {}) | ||||||
|  |     @client.latest_service('two').version.should == 'v2' | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   it 'should return nil for bogus service names' do | ||||||
|  |     # Sanity check the algorithm | ||||||
|  |     @client.latest_service('bogus').should == nil | ||||||
|  |   end | ||||||
|  | end | ||||||
|  | @ -15,25 +15,28 @@ | ||||||
| require 'spec_helper' | require 'spec_helper' | ||||||
| 
 | 
 | ||||||
| require 'json' | require 'json' | ||||||
| require 'google/api_client/parser/json_parser' | require 'google/api_client/parsers/json_parser' | ||||||
| 
 | 
 | ||||||
| describe Google::APIClient::JSONParser, 'generates json from hash' do | describe Google::APIClient::JSONParser, 'generates json from hash' do | ||||||
|   before do |   before do | ||||||
|     @parser = Google::APIClient::JSONParser.new |     @parser = Google::APIClient::JSONParser | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   it 'should translate simple hash to JSON string' do |   it 'should translate simple hash to JSON string' do | ||||||
|     @parser.generate('test' => 23).should == "{\"test\":23}" |     @parser.serialize('test' => 23).should == '{"test":23}' | ||||||
|   end |   end | ||||||
|  | 
 | ||||||
|   it 'should translate simple nested into to nested JSON string' do |   it 'should translate simple nested into to nested JSON string' do | ||||||
|     @parser.generate({'test' => 23, 'test2' => {'foo' => 'baz', 12 => 3.14 }}).should == |     @parser.serialize({ | ||||||
|         "{\"test2\":{\"12\":3.14,\"foo\":\"baz\"},\"test\":23}" |       'test' => 23, 'test2' => {'foo' => 'baz', 12 => 3.14 } | ||||||
|  |     }).should == | ||||||
|  |       '{"test2":{"12":3.14,"foo":"baz"},"test":23}' | ||||||
|   end |   end | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
| describe Google::APIClient::JSONParser, 'parses json string into hash' do | describe Google::APIClient::JSONParser, 'parses json string into hash' do | ||||||
|   before do |   before do | ||||||
|     @parser = Google::APIClient::JSONParser.new |     @parser = Google::APIClient::JSONParser | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   it 'should parse simple json string into hash' do |   it 'should parse simple json string into hash' do | ||||||
|  | @ -41,8 +44,8 @@ describe Google::APIClient::JSONParser, 'parses json string into hash' do | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   it 'should parse nested json object into hash' do |   it 'should parse nested json object into hash' do | ||||||
|     @parser.parse('{"test":23, "test2":{"bar":"baz", "foo":3.14}}').should == |     @parser.parse('{"test":23, "test2":{"bar":"baz", "foo":3.14}}').should == { | ||||||
|         {'test' => 23, 'test2' => {'bar' => 'baz', 'foo' => 3.14}} |       'test' => 23, 'test2' => {'bar' => 'baz', 'foo' => 3.14} | ||||||
|  |     } | ||||||
|   end |   end | ||||||
| end | end | ||||||
| 
 |  | ||||||
|  | @ -19,7 +19,7 @@ require 'httpadapter/adapters/net_http' | ||||||
| 
 | 
 | ||||||
| require 'google/api_client' | require 'google/api_client' | ||||||
| require 'google/api_client/version' | require 'google/api_client/version' | ||||||
| require 'google/api_client/parser/json_parser' | require 'google/api_client/parsers/json_parser' | ||||||
| 
 | 
 | ||||||
| describe Google::APIClient, 'with default configuration' do | describe Google::APIClient, 'with default configuration' do | ||||||
|   before do |   before do | ||||||
|  | @ -31,7 +31,7 @@ describe Google::APIClient, 'with default configuration' do | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   it 'should use the default JSON parser' do |   it 'should use the default JSON parser' do | ||||||
|     @client.parser.should be_instance_of(Google::APIClient::JSONParser) |     @client.parser.should be(Google::APIClient::JSONParser) | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   it 'should use the default OAuth1 client configuration' do |   it 'should use the default OAuth1 client configuration' do | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue