google-cloud-pubsub 0.24.0 → 0.25.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.
@@ -100,6 +100,17 @@ module Google
100
100
  # @param [Integer] deadline The maximum number of seconds after a
101
101
  # subscriber receives a message before the subscriber should
102
102
  # acknowledge the message.
103
+ # @param [Boolean] retain_acked Indicates whether to retain acknowledged
104
+ # messages. If `true`, then messages are not expunged from the
105
+ # subscription's backlog, even if they are acknowledged, until they
106
+ # fall out of the `retention_duration` window. Default is `false`.
107
+ # @param [Numeric] retention How long to retain unacknowledged messages
108
+ # in the subscription's backlog, from the moment a message is
109
+ # published. If `retain_acked` is `true`, then this also configures
110
+ # the retention of acknowledged messages, and thus configures how far
111
+ # back in time a {#seek} can be done. Cannot be more than 604,800
112
+ # seconds (7 days) or less than 600 seconds (10 minutes). Default is
113
+ # 604,800 seconds (7 days).
103
114
  # @param [String] endpoint A URL locating the endpoint to which messages
104
115
  # should be pushed.
105
116
  #
@@ -112,7 +123,7 @@ module Google
112
123
  #
113
124
  # topic = pubsub.topic "my-topic"
114
125
  # sub = topic.subscribe "my-topic-sub"
115
- # puts sub.name # => "my-topic-sub"
126
+ # sub.name # => "my-topic-sub"
116
127
  #
117
128
  # @example Wait 2 minutes for acknowledgement and push all to endpoint:
118
129
  # require "google/cloud/pubsub"
@@ -124,9 +135,11 @@ module Google
124
135
  # deadline: 120,
125
136
  # endpoint: "https://example.com/push"
126
137
  #
127
- def subscribe subscription_name, deadline: nil, endpoint: nil
138
+ def subscribe subscription_name, deadline: nil, retain_acked: false,
139
+ retention: nil, endpoint: nil
128
140
  ensure_service!
129
- options = { deadline: deadline, endpoint: endpoint }
141
+ options = { deadline: deadline, retain_acked: retain_acked,
142
+ retention: retention, endpoint: endpoint }
130
143
  grpc = service.create_subscription name, subscription_name, options
131
144
  Subscription.from_grpc grpc, service
132
145
  end
@@ -151,17 +164,20 @@ module Google
151
164
  # pubsub = Google::Cloud::Pubsub.new
152
165
  #
153
166
  # topic = pubsub.topic "my-topic"
154
- # subscription = topic.subscription "my-topic-subscription"
155
- # puts subscription.name
167
+ #
168
+ # sub = topic.subscription "my-topic-sub"
169
+ # sub.name #=> "projects/my-project/subscriptions/my-topic-sub"
156
170
  #
157
171
  # @example Skip the lookup against the service with `skip_lookup`:
158
172
  # require "google/cloud/pubsub"
159
173
  #
160
174
  # pubsub = Google::Cloud::Pubsub.new
161
175
  #
176
+ # topic = pubsub.topic "my-topic"
177
+ #
162
178
  # # No API call is made to retrieve the subscription information.
163
- # subscription = pubsub.subscription "my-sub", skip_lookup: true
164
- # puts subscription.name
179
+ # sub = topic.subscription "my-topic-sub", skip_lookup: true
180
+ # sub.name #=> "projects/my-project/subscriptions/my-topic-sub"
165
181
  #
166
182
  def subscription subscription_name, skip_lookup: nil
167
183
  ensure_service!
@@ -190,7 +206,7 @@ module Google
190
206
  # pubsub = Google::Cloud::Pubsub.new
191
207
  #
192
208
  # topic = pubsub.topic "my-topic"
193
- # subscription = topic.subscriptions
209
+ # subscriptions = topic.subscriptions
194
210
  # subscriptions.each do |subscription|
195
211
  # puts subscription.name
196
212
  # end
@@ -201,7 +217,7 @@ module Google
201
217
  # pubsub = Google::Cloud::Pubsub.new
202
218
  #
203
219
  # topic = pubsub.topic "my-topic"
204
- # subscription = topic.subscriptions
220
+ # subscriptions = topic.subscriptions
205
221
  # subscriptions.all do |subscription|
206
222
  # puts subscription.name
207
223
  # end
@@ -234,7 +250,7 @@ module Google
234
250
  # pubsub = Google::Cloud::Pubsub.new
235
251
  #
236
252
  # topic = pubsub.topic "my-topic"
237
- # msg = topic.publish "new-message"
253
+ # msg = topic.publish "task completed"
238
254
  #
239
255
  # @example A message can be published using a File object:
240
256
  # require "google/cloud/pubsub"
@@ -250,7 +266,7 @@ module Google
250
266
  # pubsub = Google::Cloud::Pubsub.new
251
267
  #
252
268
  # topic = pubsub.topic "my-topic"
253
- # msg = topic.publish "new-message",
269
+ # msg = topic.publish "task completed",
254
270
  # foo: :bar,
255
271
  # this: :that
256
272
  #
@@ -261,9 +277,9 @@ module Google
261
277
  #
262
278
  # topic = pubsub.topic "my-topic"
263
279
  # msgs = topic.publish do |t|
264
- # t.publish "new-message-1", foo: :bar
265
- # t.publish "new-message-2", foo: :baz
266
- # t.publish "new-message-3", foo: :bif
280
+ # t.publish "task 1 completed", foo: :bar
281
+ # t.publish "task 2 completed", foo: :baz
282
+ # t.publish "task 3 completed", foo: :bif
267
283
  # end
268
284
  #
269
285
  def publish data = nil, attributes = {}
@@ -281,11 +297,6 @@ module Google
281
297
  # @see https://cloud.google.com/pubsub/docs/reference/rpc/google.iam.v1#iampolicy
282
298
  # google.iam.v1.IAMPolicy
283
299
  #
284
- # @param [Boolean] force Force the latest policy to be retrieved from
285
- # the Pub/Sub service when `true`. Otherwise the policy will be
286
- # memoized to reduce the number of API calls made to the Pub/Sub
287
- # service. The default is `false`.
288
- #
289
300
  # @yield [policy] A block for updating the policy. The latest policy
290
301
  # will be read from the Pub/Sub service and passed to the block. After
291
302
  # the block completes, the modified policy will be written to the
@@ -295,23 +306,13 @@ module Google
295
306
  #
296
307
  # @return [Policy] the current Cloud IAM Policy for this topic
297
308
  #
298
- # @example Policy values are memoized to reduce the number of API calls:
299
- # require "google/cloud/pubsub"
300
- #
301
- # pubsub = Google::Cloud::Pubsub.new
302
- # topic = pubsub.topic "my-topic"
303
- #
304
- # policy = topic.policy # API call
305
- # policy_2 = topic.policy # No API call
306
- #
307
- # @example Use `force` to retrieve the latest policy from the service:
309
+ # @example
308
310
  # require "google/cloud/pubsub"
309
311
  #
310
312
  # pubsub = Google::Cloud::Pubsub.new
311
313
  # topic = pubsub.topic "my-topic"
312
314
  #
313
- # policy = topic.policy force: true # API call
314
- # policy_2 = topic.policy force: true # API call
315
+ # policy = topic.policy
315
316
  #
316
317
  # @example Update the policy by passing a block:
317
318
  # require "google/cloud/pubsub"
@@ -319,21 +320,17 @@ module Google
319
320
  # pubsub = Google::Cloud::Pubsub.new
320
321
  # topic = pubsub.topic "my-topic"
321
322
  #
322
- # policy = topic.policy do |p|
323
+ # topic.policy do |p|
323
324
  # p.add "roles/owner", "user:owner@example.com"
324
- # end # 2 API calls
325
- #
326
- def policy force: nil
327
- @policy = nil if force || block_given?
328
- @policy ||= begin
329
- ensure_service!
330
- grpc = service.get_topic_policy name
331
- Policy.from_grpc grpc
332
- end
333
- return @policy unless block_given?
334
- p = @policy.deep_dup
335
- yield p
336
- self.policy = p
325
+ # end
326
+ #
327
+ def policy
328
+ ensure_service!
329
+ grpc = service.get_topic_policy name
330
+ policy = Policy.from_grpc grpc
331
+ return policy unless block_given?
332
+ yield policy
333
+ self.policy = policy
337
334
  end
338
335
 
339
336
  ##
@@ -351,6 +348,8 @@ module Google
351
348
  # @param [Policy] new_policy a new or modified Cloud IAM Policy for this
352
349
  # topic
353
350
  #
351
+ # @return [Policy] the policy returned by the API update operation
352
+ #
354
353
  # @example
355
354
  # require "google/cloud/pubsub"
356
355
  #
@@ -27,9 +27,9 @@ module Google
27
27
  #
28
28
  # topic = pubsub.topic "my-topic"
29
29
  # msgs = topic.publish do |t|
30
- # t.publish "new-message-1", foo: :bar
31
- # t.publish "new-message-2", foo: :baz
32
- # t.publish "new-message-3", foo: :bif
30
+ # t.publish "task 1 completed", foo: :bar
31
+ # t.publish "task 2 completed", foo: :baz
32
+ # t.publish "task 3 completed", foo: :bif
33
33
  # end
34
34
  class Publisher
35
35
  ##
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Pubsub
19
- VERSION = "0.24.0"
19
+ VERSION = "0.25.0"
20
20
  end
21
21
  end
22
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-pubsub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.24.0
4
+ version: 0.25.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Moore
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-04-01 00:00:00.000000000 Z
12
+ date: 2017-06-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-cloud-core
@@ -198,6 +198,8 @@ files:
198
198
  - lib/google/cloud/pubsub/project.rb
199
199
  - lib/google/cloud/pubsub/received_message.rb
200
200
  - lib/google/cloud/pubsub/service.rb
201
+ - lib/google/cloud/pubsub/snapshot.rb
202
+ - lib/google/cloud/pubsub/snapshot/list.rb
201
203
  - lib/google/cloud/pubsub/subscription.rb
202
204
  - lib/google/cloud/pubsub/subscription/list.rb
203
205
  - lib/google/cloud/pubsub/topic.rb
@@ -215,7 +217,7 @@ files:
215
217
  - lib/google/cloud/pubsub/version.rb
216
218
  - lib/google/pubsub/v1/pubsub_pb.rb
217
219
  - lib/google/pubsub/v1/pubsub_services_pb.rb
218
- homepage: http://googlecloudplatform.github.io/google-cloud-ruby/
220
+ homepage: https://github.com/GoogleCloudPlatform/google-cloud-ruby/tree/master/google-cloud-pubsub
219
221
  licenses:
220
222
  - Apache-2.0
221
223
  metadata: {}
@@ -235,7 +237,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
235
237
  version: '0'
236
238
  requirements: []
237
239
  rubyforge_project:
238
- rubygems_version: 2.6.11
240
+ rubygems_version: 2.6.12
239
241
  signing_key:
240
242
  specification_version: 4
241
243
  summary: API Client library for Google Cloud Pub/Sub