google-ads-common 0.11.0 → 0.11.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NDliZjJiZGQzMGJjMTUyMGU0ODc3MGNkZDlhZjRjZWNjZDYzZGRjMA==
5
- data.tar.gz: !binary |-
6
- OTVmZjM4ZGQxZGU5M2RlMTYxZTZjZGQzMTA5ODkwYWM1NzNmNjY3ZA==
2
+ SHA1:
3
+ metadata.gz: aca8bb491bb1979f93711715859c97790db6fdf9
4
+ data.tar.gz: 78ffbb5fa2fbda4985340f38a8ad9632756e5ce9
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- MTRmMWZiZTg2OTBmZmNlZThiM2RiZWNjZjE3ZDA0YWJiMmE5ZTYxMzkyMWVh
10
- YjcyZmI2OGM5MjdlOTNkMzc1ZmFiOGI1MDQ0ZTViMTYyYzY5OTBiNTMxODcy
11
- YWIwODViYTFjZGExMzgyYzIzYTdmNzJlMTk0OGU2ZjM3N2IwOWU=
12
- data.tar.gz: !binary |-
13
- NzJkZTkxZWRkZmM1MGZlMTlhZmIzZmE3ZTM2OWE1YWJlODc0NzIxODEyMGI1
14
- ZGQ3ODBiODVjZWY0NGE2OTQxNjUwN2U5MmI1MzYyOTQzZmE1MzcwMzZiNmY3
15
- NzNmODIyYTY4NDJjMWZiYzcxZDU3NmQxZTI5MmRhZjIzMGJlN2U=
6
+ metadata.gz: 2a2daef0667e200028665475490329dfe8cba0b90d737d9b07ef77819e42922d0f2a30fb5243192ae259137fefb53f8c3e40f95906db823740bd766a14bf7f39
7
+ data.tar.gz: 96ec439dbabb8ad81b4085460f2329e8d6ecebb8635fe0103471dc892423277d32dd3a5086aea4e3f724cb46a443fe373609f19cf94e54669dc294d397aaf909
data/ChangeLog CHANGED
@@ -1,3 +1,8 @@
1
+ 0.11.1:
2
+ - Added streaming get and post options to AdsCommon::Http.
3
+ - Added ability to support put requests to AdsCommon::Http.
4
+ - Added support for additional scopes when generating OAuth2 tokens.
5
+
1
6
  0.11.0:
2
7
  - Updated to use 'ads_savon' library over 'savon'.
3
8
  - Add support for services to return SOAP XML without making a request. This
@@ -46,7 +46,11 @@ module AdsCommon
46
46
  #
47
47
  def initialize(config, scope)
48
48
  super(config)
49
- @scope, @client = scope, nil
49
+ @scopes = []
50
+ @scopes << scope unless scope.nil?
51
+ additional_scopes = @config.read('authentication.oauth2_extra_scopes')
52
+ @scopes += additional_scopes if additional_scopes.is_a?(Array)
53
+ @client = nil
50
54
  end
51
55
 
52
56
  # Invalidates the stored token if the required credential has changed.
@@ -112,7 +116,7 @@ module AdsCommon
112
116
  # - AdsCommon::Errors::AuthError if validation fails
113
117
  #
114
118
  def validate_credentials(credentials)
115
- if @scope.nil?
119
+ if @scopes.empty?
116
120
  raise AdsCommon::Errors::AuthError, 'Scope is not specified.'
117
121
  end
118
122
 
@@ -163,7 +167,7 @@ module AdsCommon
163
167
  oauth_options = OAUTH2_CONFIG.merge({
164
168
  :client_id => credentials[:oauth2_client_id],
165
169
  :client_secret => credentials[:oauth2_client_secret],
166
- :scope => @scope,
170
+ :scope => @scopes.join(' '),
167
171
  :redirect_uri => credentials[:oauth2_callback] || DEFAULT_CALLBACK,
168
172
  :state => credentials[:oauth2_state]
169
173
  }).reject {|k, v| v.nil?}
@@ -42,7 +42,11 @@ module AdsCommon
42
42
  #
43
43
  def initialize(config, scope)
44
44
  super(config)
45
- @scope, @client = scope, nil
45
+ @scopes = []
46
+ @scopes << scope unless scope.nil?
47
+ additional_scopes = @config.read('authentication.oauth2_extra_scopes')
48
+ @scopes += additional_scopes if additional_scopes.is_a?(Array)
49
+ @client = nil
46
50
  end
47
51
 
48
52
  # Invalidates the stored token if the required credential has changed.
@@ -101,7 +105,7 @@ module AdsCommon
101
105
  # - AdsCommon::Errors::AuthError if validation fails
102
106
  #
103
107
  def validate_credentials(credentials)
104
- if @scope.nil?
108
+ if @scopes.empty?
105
109
  raise AdsCommon::Errors::AuthError, 'Scope is not specified.'
106
110
  end
107
111
 
@@ -172,7 +176,7 @@ module AdsCommon
172
176
  :issuer => credentials[:oauth2_issuer],
173
177
  :signing_key => credentials[:oauth2_key],
174
178
  :person => credentials[:oauth2_prn],
175
- :scope => @scope,
179
+ :scope => @scopes.join(' '),
176
180
  })
177
181
  return Signet::OAuth2::Client.new(oauth_options)
178
182
  end
@@ -43,6 +43,15 @@ module AdsCommon
43
43
  return get_response(url, config, headers).body
44
44
  end
45
45
 
46
+ # Performs a get on a URL, using all of the connection options in the
47
+ # client library, sending the response piecemeal to the given block.
48
+ def self.get_stream(url, config, headers = nil, &block)
49
+ request = prepare_request(url, config, headers)
50
+ request.on_body(&block)
51
+ HTTPI.get(request)
52
+ return nil
53
+ end
54
+
46
55
  # Performs a post on a URL, using all of the connection options in the
47
56
  # client library, returning a HTTPI::Response.
48
57
  def self.post_response(url, data, config, headers = nil)
@@ -56,6 +65,28 @@ module AdsCommon
56
65
  return post_response(url, data, config, headers).body
57
66
  end
58
67
 
68
+ # Performs a post on a URL, using all of the connection options in the
69
+ # client library, sending the response piecemeal to the given block.
70
+ def self.post_stream(url, data, config, headers = nil, &block)
71
+ request = prepare_request(url, config, headers, data)
72
+ request.on_body(&block)
73
+ HTTPI.post(request)
74
+ return nil
75
+ end
76
+
77
+ # Performs a put on a URL, using all of the connection options in the
78
+ # client library, returning a HTTPI::Response.
79
+ def self.put_response(url, data, config, headers = nil)
80
+ request = prepare_request(url, config, headers, data)
81
+ return HTTPI.put(request)
82
+ end
83
+
84
+ # Performs a put on a URL, using all of the connection options in the
85
+ # client library, returning the response body as a string.
86
+ def self.put(url, data, config, headers = nil)
87
+ return put_response(url, data, config, headers).body
88
+ end
89
+
59
90
  private
60
91
 
61
92
  # Returns a suitably configured request object for a given URL and options.
@@ -19,6 +19,6 @@
19
19
 
20
20
  module AdsCommon
21
21
  module ApiConfig
22
- CLIENT_LIB_VERSION = '0.11.0'
22
+ CLIENT_LIB_VERSION = '0.11.1'
23
23
  end
24
24
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-ads-common
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.11.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergio Gomes
@@ -10,62 +10,62 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-10-08 00:00:00.000000000 Z
13
+ date: 2015-11-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: google-ads-savon
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ~>
19
+ - - "~>"
20
20
  - !ruby/object:Gem::Version
21
21
  version: 1.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - ~>
26
+ - - "~>"
27
27
  - !ruby/object:Gem::Version
28
28
  version: 1.0.0
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: httpi
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - ~>
33
+ - - "~>"
34
34
  - !ruby/object:Gem::Version
35
35
  version: '2.3'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - ~>
40
+ - - "~>"
41
41
  - !ruby/object:Gem::Version
42
42
  version: '2.3'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: signet
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ~>
47
+ - - "~>"
48
48
  - !ruby/object:Gem::Version
49
49
  version: 0.6.0
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - ~>
54
+ - - "~>"
55
55
  - !ruby/object:Gem::Version
56
56
  version: 0.6.0
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: rake
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - ! '>='
61
+ - - ">="
62
62
  - !ruby/object:Gem::Version
63
63
  version: 10.4.2
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
- - - ! '>='
68
+ - - ">="
69
69
  - !ruby/object:Gem::Version
70
70
  version: 10.4.2
71
71
  description: Essential utilities shared by all Ads Ruby client libraries
@@ -119,17 +119,17 @@ require_paths:
119
119
  - lib
120
120
  required_ruby_version: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ! '>='
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  required_rubygems_version: !ruby/object:Gem::Requirement
126
126
  requirements:
127
- - - ! '>='
127
+ - - ">="
128
128
  - !ruby/object:Gem::Version
129
129
  version: 1.3.6
130
130
  requirements: []
131
131
  rubyforge_project: google-ads-common
132
- rubygems_version: 2.2.2
132
+ rubygems_version: 2.4.8
133
133
  signing_key:
134
134
  specification_version: 4
135
135
  summary: Common code for Google Ads APIs