google-api-client 0.4.3 → 0.4.4
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.
- data/CHANGELOG.md +6 -0
- data/Gemfile +28 -0
- data/Gemfile.lock +61 -0
- data/README.md +3 -0
- data/Rakefile +1 -1
- data/lib/google/api_client.rb +93 -40
- data/lib/google/api_client/batch.rb +296 -0
- data/lib/google/api_client/client_secrets.rb +2 -2
- data/lib/google/api_client/discovery/api.rb +15 -0
- data/lib/google/api_client/discovery/method.rb +40 -16
- data/lib/google/api_client/errors.rb +4 -0
- data/lib/google/api_client/reference.rb +12 -2
- data/lib/google/api_client/result.rb +1 -1
- data/lib/google/api_client/service_account.rb +134 -0
- data/lib/google/api_client/version.rb +1 -1
- data/spec/fixtures/files/sample.txt +33 -0
- data/spec/google/api_client/batch_spec.rb +237 -0
- data/spec/google/api_client/discovery_spec.rb +189 -1
- data/spec/google/api_client/media_spec.rb +136 -0
- data/spec/google/api_client/result_spec.rb +150 -0
- data/spec/google/api_client/service_account_spec.rb +58 -0
- data/spec/google/api_client_spec.rb +30 -0
- data/tasks/gem.rake +3 -3
- data/tasks/spec.rake +3 -3
- data/tasks/wiki.rake +1 -1
- metadata +122 -117
- data/tasks/rdoc.rake +0 -30
@@ -0,0 +1,58 @@
|
|
1
|
+
# Copyright 2012 Google Inc.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require 'spec_helper'
|
16
|
+
|
17
|
+
require 'google/api_client'
|
18
|
+
|
19
|
+
describe Google::APIClient::JWTAsserter do
|
20
|
+
|
21
|
+
before do
|
22
|
+
@key = OpenSSL::PKey::RSA.new 2048
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should generate valid JWTs' do
|
26
|
+
asserter = Google::APIClient::JWTAsserter.new('client1', 'scope1 scope2', @key)
|
27
|
+
jwt = asserter.to_jwt
|
28
|
+
jwt.should_not == nil
|
29
|
+
|
30
|
+
claim = JWT.decode(jwt, @key.public_key, true)
|
31
|
+
claim["iss"].should == 'client1'
|
32
|
+
claim["scope"].should == 'scope1 scope2'
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should send valid access token request' do
|
36
|
+
stubs = Faraday::Adapter::Test::Stubs.new do |stub|
|
37
|
+
stub.post('/o/oauth2/token') do |env|
|
38
|
+
params = Addressable::URI.form_unencode(env[:body])
|
39
|
+
JWT.decode(params.assoc("assertion").last, @key.public_key)
|
40
|
+
params.assoc("grant_type").should == ['grant_type','urn:ietf:params:oauth:grant-type:jwt-bearer']
|
41
|
+
[200, {}, '{
|
42
|
+
"access_token" : "1/abcdef1234567890",
|
43
|
+
"token_type" : "Bearer",
|
44
|
+
"expires_in" : 3600
|
45
|
+
}']
|
46
|
+
end
|
47
|
+
end
|
48
|
+
connection = Faraday.new(:url => 'https://accounts.google.com') do |builder|
|
49
|
+
builder.adapter(:test, stubs)
|
50
|
+
end
|
51
|
+
|
52
|
+
asserter = Google::APIClient::JWTAsserter.new('client1', 'scope1 scope2', @key)
|
53
|
+
auth = asserter.authorize(nil, { :connection => connection})
|
54
|
+
auth.should_not == nil?
|
55
|
+
auth.access_token.should == "1/abcdef1234567890"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
@@ -108,4 +108,34 @@ describe Google::APIClient do
|
|
108
108
|
# TODO
|
109
109
|
it_should_behave_like 'configurable user agent'
|
110
110
|
end
|
111
|
+
|
112
|
+
describe 'when executing requests' do
|
113
|
+
before do
|
114
|
+
@client.authorization = :oauth_2
|
115
|
+
@connection = Faraday.new(:url => 'https://www.googleapis.com') do |builder|
|
116
|
+
stubs = Faraday::Adapter::Test::Stubs.new do |stub|
|
117
|
+
stub.get('/test') do |env|
|
118
|
+
env[:request_headers]['Authorization'].should == 'Bearer 12345'
|
119
|
+
end
|
120
|
+
end
|
121
|
+
builder.adapter(:test, stubs)
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
it 'should use default authorization' do
|
126
|
+
@client.authorization.access_token = "12345"
|
127
|
+
@client.execute(:http_method => :get,
|
128
|
+
:uri => 'https://www.googleapis.com/test',
|
129
|
+
:connection => @connection)
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'should use request scoped authorization when provided' do
|
133
|
+
@client.authorization.access_token = "abcdef"
|
134
|
+
new_auth = Signet::OAuth2::Client.new(:access_token => '12345')
|
135
|
+
@client.execute(:http_method => :get,
|
136
|
+
:uri => 'https://www.googleapis.com/test',
|
137
|
+
:connection => @connection,
|
138
|
+
:authorization => new_auth)
|
139
|
+
end
|
140
|
+
end
|
111
141
|
end
|
data/tasks/gem.rake
CHANGED
@@ -24,12 +24,13 @@ namespace :gem do
|
|
24
24
|
s.rdoc_options.concat ['--main', 'README.md']
|
25
25
|
|
26
26
|
# Dependencies used in the main library
|
27
|
-
s.add_runtime_dependency('signet', '>= 0.3.
|
27
|
+
s.add_runtime_dependency('signet', '>= 0.3.4')
|
28
28
|
s.add_runtime_dependency('addressable', '>= 2.2.3')
|
29
29
|
s.add_runtime_dependency('autoparse', '>= 0.3.1')
|
30
30
|
s.add_runtime_dependency('faraday', '~> 0.7.0')
|
31
|
-
s.add_runtime_dependency('multi_json', '>= 1.
|
31
|
+
s.add_runtime_dependency('multi_json', '>= 1.3.0')
|
32
32
|
s.add_runtime_dependency('extlib', '>= 0.9.15')
|
33
|
+
s.add_runtime_dependency('uuidtools', '>= 2.1.0')
|
33
34
|
|
34
35
|
# Dependencies used in the CLI
|
35
36
|
s.add_runtime_dependency('launchy', '>= 2.0.0')
|
@@ -40,7 +41,6 @@ namespace :gem do
|
|
40
41
|
s.add_development_dependency('rake', '>= 0.9.0')
|
41
42
|
s.add_development_dependency('rspec', '~> 1.2.9')
|
42
43
|
s.add_development_dependency('rcov', '>= 0.9.9')
|
43
|
-
s.add_development_dependency('diff-lcs', '>= 1.1.2')
|
44
44
|
|
45
45
|
s.require_path = 'lib'
|
46
46
|
|
data/tasks/spec.rake
CHANGED
@@ -47,7 +47,7 @@ namespace :spec do
|
|
47
47
|
|
48
48
|
if RCOV_ENABLED
|
49
49
|
RCov::VerifyTask.new(:verify) do |t|
|
50
|
-
t.threshold =
|
50
|
+
t.threshold = 65.0
|
51
51
|
t.index_html = 'coverage/index.html'
|
52
52
|
end
|
53
53
|
|
@@ -76,8 +76,8 @@ namespace :spec do
|
|
76
76
|
end
|
77
77
|
|
78
78
|
if RCOV_ENABLED
|
79
|
-
desc 'Alias to spec:
|
80
|
-
task 'spec' => 'spec:
|
79
|
+
desc 'Alias to spec:rcov'
|
80
|
+
task 'spec' => 'spec:rcov'
|
81
81
|
else
|
82
82
|
desc 'Alias to spec:all'
|
83
83
|
task 'spec' => 'spec:all'
|
data/tasks/wiki.rake
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'google/api_client'
|
2
1
|
require 'rake'
|
3
2
|
require 'rake/clean'
|
4
3
|
|
@@ -18,6 +17,7 @@ the following Google APIs.
|
|
18
17
|
|
19
18
|
WIKI
|
20
19
|
preferred_apis = {}
|
20
|
+
require 'google/api_client'
|
21
21
|
client = Google::APIClient.new
|
22
22
|
for api in client.discovered_apis
|
23
23
|
if !preferred_apis.has_key?(api.name)
|
metadata
CHANGED
@@ -1,161 +1,162 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-api-client
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.4
|
4
5
|
prerelease:
|
5
|
-
version: 0.4.3
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Bob Aman
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-06-11 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: signet
|
17
|
-
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70297458293420 !ruby/object:Gem::Requirement
|
19
17
|
none: false
|
20
|
-
requirements:
|
21
|
-
- -
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.3.
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.3.4
|
24
22
|
type: :runtime
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: addressable
|
28
23
|
prerelease: false
|
29
|
-
|
24
|
+
version_requirements: *70297458293420
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: addressable
|
27
|
+
requirement: &70297458292140 !ruby/object:Gem::Requirement
|
30
28
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
34
32
|
version: 2.2.3
|
35
33
|
type: :runtime
|
36
|
-
version_requirements: *id002
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: autoparse
|
39
34
|
prerelease: false
|
40
|
-
|
35
|
+
version_requirements: *70297458292140
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: autoparse
|
38
|
+
requirement: &70297458291200 !ruby/object:Gem::Requirement
|
41
39
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
45
43
|
version: 0.3.1
|
46
44
|
type: :runtime
|
47
|
-
version_requirements: *id003
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: faraday
|
50
45
|
prerelease: false
|
51
|
-
|
46
|
+
version_requirements: *70297458291200
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: faraday
|
49
|
+
requirement: &70297458289620 !ruby/object:Gem::Requirement
|
52
50
|
none: false
|
53
|
-
requirements:
|
51
|
+
requirements:
|
54
52
|
- - ~>
|
55
|
-
- !ruby/object:Gem::Version
|
53
|
+
- !ruby/object:Gem::Version
|
56
54
|
version: 0.7.0
|
57
55
|
type: :runtime
|
58
|
-
version_requirements: *id004
|
59
|
-
- !ruby/object:Gem::Dependency
|
60
|
-
name: multi_json
|
61
56
|
prerelease: false
|
62
|
-
|
57
|
+
version_requirements: *70297458289620
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: multi_json
|
60
|
+
requirement: &70297458288680 !ruby/object:Gem::Requirement
|
63
61
|
none: false
|
64
|
-
requirements:
|
65
|
-
- -
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: 1.
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 1.3.0
|
68
66
|
type: :runtime
|
69
|
-
version_requirements: *id005
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: extlib
|
72
67
|
prerelease: false
|
73
|
-
|
68
|
+
version_requirements: *70297458288680
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: extlib
|
71
|
+
requirement: &70297458287340 !ruby/object:Gem::Requirement
|
74
72
|
none: false
|
75
|
-
requirements:
|
76
|
-
- -
|
77
|
-
- !ruby/object:Gem::Version
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
78
76
|
version: 0.9.15
|
79
77
|
type: :runtime
|
80
|
-
version_requirements: *id006
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
name: launchy
|
83
78
|
prerelease: false
|
84
|
-
|
79
|
+
version_requirements: *70297458287340
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: uuidtools
|
82
|
+
requirement: &70297458278880 !ruby/object:Gem::Requirement
|
85
83
|
none: false
|
86
|
-
requirements:
|
87
|
-
- -
|
88
|
-
- !ruby/object:Gem::Version
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: 2.1.0
|
88
|
+
type: :runtime
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *70297458278880
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: launchy
|
93
|
+
requirement: &70297458275860 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
89
98
|
version: 2.0.0
|
90
99
|
type: :runtime
|
91
|
-
version_requirements: *id007
|
92
|
-
- !ruby/object:Gem::Dependency
|
93
|
-
name: sinatra
|
94
100
|
prerelease: false
|
95
|
-
|
101
|
+
version_requirements: *70297458275860
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: sinatra
|
104
|
+
requirement: &70297458274500 !ruby/object:Gem::Requirement
|
96
105
|
none: false
|
97
|
-
requirements:
|
98
|
-
- -
|
99
|
-
- !ruby/object:Gem::Version
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
100
109
|
version: 1.2.0
|
101
110
|
type: :development
|
102
|
-
version_requirements: *id008
|
103
|
-
- !ruby/object:Gem::Dependency
|
104
|
-
name: rake
|
105
111
|
prerelease: false
|
106
|
-
|
112
|
+
version_requirements: *70297458274500
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: rake
|
115
|
+
requirement: &70297458273640 !ruby/object:Gem::Requirement
|
107
116
|
none: false
|
108
|
-
requirements:
|
109
|
-
- -
|
110
|
-
- !ruby/object:Gem::Version
|
117
|
+
requirements:
|
118
|
+
- - ! '>='
|
119
|
+
- !ruby/object:Gem::Version
|
111
120
|
version: 0.9.0
|
112
121
|
type: :development
|
113
|
-
version_requirements: *id009
|
114
|
-
- !ruby/object:Gem::Dependency
|
115
|
-
name: rspec
|
116
122
|
prerelease: false
|
117
|
-
|
123
|
+
version_requirements: *70297458273640
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: rspec
|
126
|
+
requirement: &70297458272260 !ruby/object:Gem::Requirement
|
118
127
|
none: false
|
119
|
-
requirements:
|
128
|
+
requirements:
|
120
129
|
- - ~>
|
121
|
-
- !ruby/object:Gem::Version
|
130
|
+
- !ruby/object:Gem::Version
|
122
131
|
version: 1.2.9
|
123
132
|
type: :development
|
124
|
-
version_requirements: *id010
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: rcov
|
127
133
|
prerelease: false
|
128
|
-
|
134
|
+
version_requirements: *70297458272260
|
135
|
+
- !ruby/object:Gem::Dependency
|
136
|
+
name: rcov
|
137
|
+
requirement: &70297458264380 !ruby/object:Gem::Requirement
|
129
138
|
none: false
|
130
|
-
requirements:
|
131
|
-
- -
|
132
|
-
- !ruby/object:Gem::Version
|
139
|
+
requirements:
|
140
|
+
- - ! '>='
|
141
|
+
- !ruby/object:Gem::Version
|
133
142
|
version: 0.9.9
|
134
143
|
type: :development
|
135
|
-
version_requirements: *id011
|
136
|
-
- !ruby/object:Gem::Dependency
|
137
|
-
name: diff-lcs
|
138
144
|
prerelease: false
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version: 1.1.2
|
145
|
-
type: :development
|
146
|
-
version_requirements: *id012
|
147
|
-
description: |
|
148
|
-
The Google API Ruby Client makes it trivial to discover and access supported
|
145
|
+
version_requirements: *70297458264380
|
146
|
+
description: ! 'The Google API Ruby Client makes it trivial to discover and access
|
147
|
+
supported
|
148
|
+
|
149
149
|
APIs.
|
150
150
|
|
151
|
+
'
|
151
152
|
email: bobaman@google.com
|
152
|
-
executables:
|
153
|
+
executables:
|
153
154
|
- google-api
|
154
155
|
extensions: []
|
155
|
-
|
156
|
-
extra_rdoc_files:
|
156
|
+
extra_rdoc_files:
|
157
157
|
- README.md
|
158
|
-
files:
|
158
|
+
files:
|
159
|
+
- lib/google/api_client/batch.rb
|
159
160
|
- lib/google/api_client/client_secrets.rb
|
160
161
|
- lib/google/api_client/discovery/api.rb
|
161
162
|
- lib/google/api_client/discovery/media.rb
|
@@ -168,52 +169,56 @@ files:
|
|
168
169
|
- lib/google/api_client/media.rb
|
169
170
|
- lib/google/api_client/reference.rb
|
170
171
|
- lib/google/api_client/result.rb
|
172
|
+
- lib/google/api_client/service_account.rb
|
171
173
|
- lib/google/api_client/version.rb
|
172
174
|
- lib/google/api_client.rb
|
173
175
|
- lib/google/inflection.rb
|
176
|
+
- spec/fixtures/files/sample.txt
|
177
|
+
- spec/google/api_client/batch_spec.rb
|
174
178
|
- spec/google/api_client/discovery_spec.rb
|
179
|
+
- spec/google/api_client/media_spec.rb
|
180
|
+
- spec/google/api_client/result_spec.rb
|
181
|
+
- spec/google/api_client/service_account_spec.rb
|
175
182
|
- spec/google/api_client_spec.rb
|
176
183
|
- spec/spec.opts
|
177
184
|
- spec/spec_helper.rb
|
178
185
|
- tasks/gem.rake
|
179
186
|
- tasks/git.rake
|
180
187
|
- tasks/metrics.rake
|
181
|
-
- tasks/rdoc.rake
|
182
188
|
- tasks/spec.rake
|
183
189
|
- tasks/wiki.rake
|
184
190
|
- tasks/yard.rake
|
185
191
|
- CHANGELOG.md
|
192
|
+
- Gemfile
|
193
|
+
- Gemfile.lock
|
186
194
|
- LICENSE
|
187
195
|
- Rakefile
|
188
196
|
- README.md
|
189
197
|
- bin/google-api
|
190
198
|
homepage: http://code.google.com/p/google-api-ruby-client/
|
191
199
|
licenses: []
|
192
|
-
|
193
200
|
post_install_message:
|
194
|
-
rdoc_options:
|
201
|
+
rdoc_options:
|
195
202
|
- --main
|
196
203
|
- README.md
|
197
|
-
require_paths:
|
204
|
+
require_paths:
|
198
205
|
- lib
|
199
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
206
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
200
207
|
none: false
|
201
|
-
requirements:
|
202
|
-
- -
|
203
|
-
- !ruby/object:Gem::Version
|
204
|
-
version:
|
205
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
208
|
+
requirements:
|
209
|
+
- - ! '>='
|
210
|
+
- !ruby/object:Gem::Version
|
211
|
+
version: '0'
|
212
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
206
213
|
none: false
|
207
|
-
requirements:
|
208
|
-
- -
|
209
|
-
- !ruby/object:Gem::Version
|
210
|
-
version:
|
214
|
+
requirements:
|
215
|
+
- - ! '>='
|
216
|
+
- !ruby/object:Gem::Version
|
217
|
+
version: '0'
|
211
218
|
requirements: []
|
212
|
-
|
213
219
|
rubyforge_project:
|
214
|
-
rubygems_version: 1.8.
|
220
|
+
rubygems_version: 1.8.10
|
215
221
|
signing_key:
|
216
222
|
specification_version: 3
|
217
223
|
summary: Package Summary
|
218
224
|
test_files: []
|
219
|
-
|