google-api-client 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,32 +16,50 @@ require 'spec_helper'
16
16
 
17
17
  require 'signet/oauth_1/client'
18
18
  require 'httpadapter/adapters/net_http'
19
+ require 'httpadapter/adapters/mock'
19
20
 
20
21
  require 'google/api_client'
21
22
  require 'google/api_client/version'
22
23
  require 'google/api_client/parsers/json_parser'
23
24
 
24
- describe Google::APIClient, 'with default configuration' do
25
- before do
26
- @client = Google::APIClient.new
25
+ shared_examples_for 'configurable user agent' do
26
+ it 'should allow the user agent to be modified' do
27
+ @client.user_agent = 'Custom User Agent/1.2.3'
28
+ @client.user_agent.should == 'Custom User Agent/1.2.3'
27
29
  end
28
30
 
29
- it 'should make its version number available' do
30
- ::Google::APIClient::VERSION::STRING.should be_instance_of(String)
31
+ it 'should allow the user agent to be set to nil' do
32
+ @client.user_agent = nil
33
+ @client.user_agent.should == nil
31
34
  end
32
35
 
33
- it 'should use the default JSON parser' do
34
- @client.parser.should be(Google::APIClient::JSONParser)
36
+ it 'should not allow the user agent to be used with bogus values' do
37
+ (lambda do
38
+ @client.user_agent = 42
39
+ @client.transmit_request(
40
+ ['GET', 'http://www.google.com/', [], []]
41
+ )
42
+ end).should raise_error(TypeError)
35
43
  end
36
44
 
37
- it 'should not use an authorization mechanism' do
38
- @client.authorization.should be_nil
45
+ it 'should transmit a User-Agent header when sending requests' do
46
+ @client.user_agent = 'Custom User Agent/1.2.3'
47
+ request = ['GET', 'http://www.google.com/', [], []]
48
+ adapter = HTTPAdapter::MockAdapter.create do |request_ary, connection|
49
+ method, uri, headers, body = request_ary
50
+ headers.should be_any { |k, v| k.downcase == 'user-agent' }
51
+ headers.each do |k, v|
52
+ v.should == @client.user_agent if k.downcase == 'user-agent'
53
+ end
54
+ [200, [], ['']]
55
+ end
56
+ @client.transmit_request(request, adapter)
39
57
  end
40
58
  end
41
59
 
42
- describe Google::APIClient, 'with default oauth configuration' do
60
+ describe Google::APIClient do
43
61
  before do
44
- @client = Google::APIClient.new(:authorization => :oauth_1)
62
+ @client = Google::APIClient.new
45
63
  end
46
64
 
47
65
  it 'should make its version number available' do
@@ -52,28 +70,60 @@ describe Google::APIClient, 'with default oauth configuration' do
52
70
  @client.parser.should be(Google::APIClient::JSONParser)
53
71
  end
54
72
 
55
- it 'should use the default OAuth1 client configuration' do
56
- @client.authorization.temporary_credential_uri.to_s.should ==
57
- 'https://www.google.com/accounts/OAuthGetRequestToken'
58
- @client.authorization.authorization_uri.to_s.should include(
59
- 'https://www.google.com/accounts/OAuthAuthorizeToken'
60
- )
61
- @client.authorization.token_credential_uri.to_s.should ==
62
- 'https://www.google.com/accounts/OAuthGetAccessToken'
63
- @client.authorization.client_credential_key.should == 'anonymous'
64
- @client.authorization.client_credential_secret.should == 'anonymous'
73
+ it 'should default to OAuth 2' do
74
+ Signet::OAuth2::Client.should === @client.authorization
65
75
  end
66
- end
67
76
 
68
- describe Google::APIClient, 'with custom pluggable parser' do
69
- before do
70
- class FakeJsonParser
77
+ it_should_behave_like 'configurable user agent'
78
+
79
+ describe 'configured for OAuth 1' do
80
+ before do
81
+ @client.authorization = :oauth_1
71
82
  end
72
83
 
73
- @client = Google::APIClient.new(:parser => FakeJsonParser.new)
84
+ it 'should use the default OAuth1 client configuration' do
85
+ @client.authorization.temporary_credential_uri.to_s.should ==
86
+ 'https://www.google.com/accounts/OAuthGetRequestToken'
87
+ @client.authorization.authorization_uri.to_s.should include(
88
+ 'https://www.google.com/accounts/OAuthAuthorizeToken'
89
+ )
90
+ @client.authorization.token_credential_uri.to_s.should ==
91
+ 'https://www.google.com/accounts/OAuthGetAccessToken'
92
+ @client.authorization.client_credential_key.should == 'anonymous'
93
+ @client.authorization.client_credential_secret.should == 'anonymous'
94
+ end
95
+
96
+ it_should_behave_like 'configurable user agent'
97
+ end
98
+
99
+ describe 'configured for OAuth 2' do
100
+ before do
101
+ @client.authorization = :oauth_2
102
+ end
103
+
104
+ # TODO
105
+ it_should_behave_like 'configurable user agent'
74
106
  end
75
107
 
76
- it 'should use the custom parser' do
77
- @client.parser.should be_instance_of(FakeJsonParser)
108
+ describe 'with custom pluggable parser' do
109
+ before do
110
+ class FakeJsonParser
111
+ def serialize(value)
112
+ return "42"
113
+ end
114
+
115
+ def parse(value)
116
+ return 42
117
+ end
118
+ end
119
+
120
+ @client.parser = FakeJsonParser.new
121
+ end
122
+
123
+ it 'should use the custom parser' do
124
+ @client.parser.should be_instance_of(FakeJsonParser)
125
+ end
126
+
127
+ it_should_behave_like 'configurable user agent'
78
128
  end
79
129
  end
@@ -20,16 +20,14 @@ namespace :gem do
20
20
  s.rdoc_options.concat ['--main', 'README']
21
21
 
22
22
  # Dependencies used in the main library
23
- s.add_runtime_dependency('signet', '>= 0.1.4')
24
- s.add_runtime_dependency('addressable', '>= 2.2.2')
25
- s.add_runtime_dependency('httpadapter', '>= 0.2.0')
26
- s.add_runtime_dependency('json', '>= 1.1.9')
23
+ s.add_runtime_dependency('signet', '~> 0.2.2')
24
+ s.add_runtime_dependency('addressable', '~> 2.2.2')
25
+ s.add_runtime_dependency('httpadapter', '~> 1.0.0')
26
+ s.add_runtime_dependency('json', '>= 1.4.6')
27
27
  s.add_runtime_dependency('extlib', '>= 0.9.15')
28
28
 
29
29
  # Dependencies used in the CLI
30
30
  s.add_runtime_dependency('launchy', '>= 0.3.2')
31
- s.add_runtime_dependency('rack', '= 1.2.0')
32
- s.add_runtime_dependency('sinatra', '>= 1.0')
33
31
 
34
32
  # Dependencies used in the examples
35
33
  s.add_runtime_dependency('liquid', '>= 2.2.2')
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-api-client
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
5
- prerelease: false
4
+ hash: 23
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
- - 1
9
- - 3
10
- version: 0.1.3
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors: []
13
13
 
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-04 00:00:00 -07:00
18
+ date: 2011-05-12 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -24,14 +24,14 @@ dependencies:
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - ">="
27
+ - - ~>
28
28
  - !ruby/object:Gem::Version
29
29
  hash: 19
30
30
  segments:
31
31
  - 0
32
- - 1
33
- - 4
34
- version: 0.1.4
32
+ - 2
33
+ - 2
34
+ version: 0.2.2
35
35
  type: :runtime
36
36
  version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency
@@ -40,7 +40,7 @@ dependencies:
40
40
  requirement: &id002 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
- - - ">="
43
+ - - ~>
44
44
  - !ruby/object:Gem::Version
45
45
  hash: 3
46
46
  segments:
@@ -56,14 +56,14 @@ dependencies:
56
56
  requirement: &id003 !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
- - - ">="
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  hash: 23
62
62
  segments:
63
+ - 1
63
64
  - 0
64
- - 2
65
65
  - 0
66
- version: 0.2.0
66
+ version: 1.0.0
67
67
  type: :runtime
68
68
  version_requirements: *id003
69
69
  - !ruby/object:Gem::Dependency
@@ -74,12 +74,12 @@ dependencies:
74
74
  requirements:
75
75
  - - ">="
76
76
  - !ruby/object:Gem::Version
77
- hash: 1
77
+ hash: 11
78
78
  segments:
79
79
  - 1
80
- - 1
81
- - 9
82
- version: 1.1.9
80
+ - 4
81
+ - 6
82
+ version: 1.4.6
83
83
  type: :runtime
84
84
  version_requirements: *id004
85
85
  - !ruby/object:Gem::Dependency
@@ -114,41 +114,10 @@ dependencies:
114
114
  version: 0.3.2
115
115
  type: :runtime
116
116
  version_requirements: *id006
117
- - !ruby/object:Gem::Dependency
118
- name: rack
119
- prerelease: false
120
- requirement: &id007 !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - "="
124
- - !ruby/object:Gem::Version
125
- hash: 31
126
- segments:
127
- - 1
128
- - 2
129
- - 0
130
- version: 1.2.0
131
- type: :runtime
132
- version_requirements: *id007
133
- - !ruby/object:Gem::Dependency
134
- name: sinatra
135
- prerelease: false
136
- requirement: &id008 !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ">="
140
- - !ruby/object:Gem::Version
141
- hash: 15
142
- segments:
143
- - 1
144
- - 0
145
- version: "1.0"
146
- type: :runtime
147
- version_requirements: *id008
148
117
  - !ruby/object:Gem::Dependency
149
118
  name: liquid
150
119
  prerelease: false
151
- requirement: &id009 !ruby/object:Gem::Requirement
120
+ requirement: &id007 !ruby/object:Gem::Requirement
152
121
  none: false
153
122
  requirements:
154
123
  - - ">="
@@ -160,11 +129,11 @@ dependencies:
160
129
  - 2
161
130
  version: 2.2.2
162
131
  type: :runtime
163
- version_requirements: *id009
132
+ version_requirements: *id007
164
133
  - !ruby/object:Gem::Dependency
165
134
  name: rake
166
135
  prerelease: false
167
- requirement: &id010 !ruby/object:Gem::Requirement
136
+ requirement: &id008 !ruby/object:Gem::Requirement
168
137
  none: false
169
138
  requirements:
170
139
  - - ">="
@@ -176,11 +145,11 @@ dependencies:
176
145
  - 3
177
146
  version: 0.7.3
178
147
  type: :development
179
- version_requirements: *id010
148
+ version_requirements: *id008
180
149
  - !ruby/object:Gem::Dependency
181
150
  name: rspec
182
151
  prerelease: false
183
- requirement: &id011 !ruby/object:Gem::Requirement
152
+ requirement: &id009 !ruby/object:Gem::Requirement
184
153
  none: false
185
154
  requirements:
186
155
  - - ~>
@@ -192,11 +161,11 @@ dependencies:
192
161
  - 9
193
162
  version: 1.2.9
194
163
  type: :development
195
- version_requirements: *id011
164
+ version_requirements: *id009
196
165
  - !ruby/object:Gem::Dependency
197
166
  name: rcov
198
167
  prerelease: false
199
- requirement: &id012 !ruby/object:Gem::Requirement
168
+ requirement: &id010 !ruby/object:Gem::Requirement
200
169
  none: false
201
170
  requirements:
202
171
  - - ">="
@@ -208,11 +177,11 @@ dependencies:
208
177
  - 9
209
178
  version: 0.9.9
210
179
  type: :development
211
- version_requirements: *id012
180
+ version_requirements: *id010
212
181
  - !ruby/object:Gem::Dependency
213
182
  name: diff-lcs
214
183
  prerelease: false
215
- requirement: &id013 !ruby/object:Gem::Requirement
184
+ requirement: &id011 !ruby/object:Gem::Requirement
216
185
  none: false
217
186
  requirements:
218
187
  - - ">="
@@ -224,7 +193,7 @@ dependencies:
224
193
  - 2
225
194
  version: 1.1.2
226
195
  type: :development
227
- version_requirements: *id013
196
+ version_requirements: *id011
228
197
  description: |
229
198
  The Google API Ruby Client makes it trivial to discover and access supported
230
199
  APIs.
@@ -238,9 +207,12 @@ extra_rdoc_files:
238
207
  - README
239
208
  files:
240
209
  - lib/google/api_client/discovery.rb
210
+ - lib/google/api_client/environment.rb
211
+ - lib/google/api_client/errors.rb
241
212
  - lib/google/api_client/parsers/json_parser.rb
242
213
  - lib/google/api_client/version.rb
243
214
  - lib/google/api_client.rb
215
+ - lib/google/inflection.rb
244
216
  - spec/google/api_client/discovery_spec.rb
245
217
  - spec/google/api_client/parsers/json_parser_spec.rb
246
218
  - spec/google/api_client_spec.rb
@@ -289,7 +261,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
289
261
  requirements: []
290
262
 
291
263
  rubyforge_project:
292
- rubygems_version: 1.3.7
264
+ rubygems_version: 1.4.1
293
265
  signing_key:
294
266
  specification_version: 3
295
267
  summary: Package Summary