google-cloud-pubsub 2.7.1 → 2.9.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +45 -0
- data/CONTRIBUTING.md +328 -115
- data/LOGGING.md +93 -1
- data/OVERVIEW.md +2 -2
- data/lib/google/cloud/pubsub/project.rb +12 -2
- data/lib/google/cloud/pubsub/service.rb +25 -11
- data/lib/google/cloud/pubsub/subscription.rb +21 -4
- data/lib/google/cloud/pubsub/topic.rb +38 -1
- data/lib/google/cloud/pubsub/version.rb +1 -1
- data/lib/google/cloud/pubsub.rb +4 -4
- data/lib/google-cloud-pubsub.rb +3 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b184f3a91a168ccf824158c3b3d394c3bc92802f8086219c2f08b5f4c26217f7
|
4
|
+
data.tar.gz: 06a0cbe8c150187217d4926f4c31c786359299b792bad5b8e00c5213231a3eaf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86f12e34cb73f559ccd778ef42c5bc31b0e1609b3d8d40be473a2f2a389949978dba7051d77747623408fa84ce18d347ad0509725239e7f257e5a943312f6d05
|
7
|
+
data.tar.gz: 982195c58d4909f682dbcff79529b33570f6808459f813ffa0fecedec9fb3e6c81f811f7ecc01ff986b934abf686646839db80aac1da2fb028e7224a17885453
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,50 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
+
### 2.9.1 / 2022-01-11
|
4
|
+
|
5
|
+
#### Documentation
|
6
|
+
|
7
|
+
* Update contributing docs
|
8
|
+
* Add section on gRPC interceptors to the logging docs
|
9
|
+
|
10
|
+
### 2.9.0 / 2021-10-28
|
11
|
+
|
12
|
+
#### Features
|
13
|
+
|
14
|
+
* Expand timeout type from Integer to Numeric
|
15
|
+
* feat: Expand timeout type from Integer to Numeric. This is backwards-compatible.
|
16
|
+
* Change timeout from Integer to Numeric in Google::Cloud.pubsub
|
17
|
+
* Change timeout from Integer to Numeric in Google::Cloud#pubsub
|
18
|
+
* Change timeout from Integer to Numeric in Google::Cloud::PubSub.configure
|
19
|
+
* Change timeout from Integer to Numeric in Google::Cloud::PubSub.new
|
20
|
+
* fix: Propagate timeout to client RPC configs.
|
21
|
+
|
22
|
+
#### Documentation
|
23
|
+
|
24
|
+
* Add documentation for quota_project Configuration attribute
|
25
|
+
* Fix documentation for PubSub.configure
|
26
|
+
* Remove retries property that does not exist in code.
|
27
|
+
|
28
|
+
### 2.8.1 / 2021-09-22
|
29
|
+
|
30
|
+
#### Bug Fixes
|
31
|
+
|
32
|
+
* Change IAM and Schema client metadata hash keys to symbols
|
33
|
+
|
34
|
+
#### Documentation
|
35
|
+
|
36
|
+
* Fix typo in Emulator guide links
|
37
|
+
|
38
|
+
### 2.8.0 / 2021-08-30
|
39
|
+
|
40
|
+
#### Features
|
41
|
+
|
42
|
+
* Add Pub/Sub topic retention fields
|
43
|
+
* Add retention to Project#create_topic
|
44
|
+
* Add Topic#retention
|
45
|
+
* Add Topic#retention=
|
46
|
+
* Add Subscription#topic_retention
|
47
|
+
|
3
48
|
### 2.7.1 / 2021-07-08
|
4
49
|
|
5
50
|
#### Documentation
|
data/CONTRIBUTING.md
CHANGED
@@ -1,187 +1,400 @@
|
|
1
1
|
# Contributing to Google Cloud Pub/Sub
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
Thank you for your interest in making a contribution to google-cloud-ruby. Community contributions are an essential part
|
4
|
+
of open source, and we want to make contributing easy for you. If you have any suggestions for how to improve this
|
5
|
+
guide, please [open an issue](https://github.com/googleapis/google-cloud-ruby/issues) and let us know!
|
6
6
|
|
7
|
-
|
7
|
+
### Code of Conduct
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
Please note that this project is covered by a Contributor Code of Conduct. By participating in this project you agree to
|
10
|
+
abide by its terms. See {file:CODE_OF_CONDUCT.md Code of Conduct} for more information.
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
## Overview
|
13
|
+
|
14
|
+
1. [Open an issue](#open-an-issue)
|
15
|
+
1. [Sign Contributor License Agreement](#sign-contributor-license-agreement)
|
16
|
+
1. [Set up environment](#set-up-environment)
|
17
|
+
1. [Run CI](#run-ci)
|
18
|
+
1. [Make changes](#make-changes)
|
19
|
+
1. [Commit changes](#commit-changes)
|
20
|
+
1. [Run CI again](#run-ci-again)
|
21
|
+
1. [Submit your pull request](#submit-your-pull-request)
|
22
|
+
|
23
|
+
## Open an issue
|
24
|
+
|
25
|
+
Pull requests should generally be directed by an existing issue, otherwise you risk working on something that the
|
26
|
+
maintainers might not be able to accept into the project. Please take a look through [the repository
|
27
|
+
issues](https://github.com/googleapis/google-cloud-ruby/issues?q=is%3Aissue+label%3A%22api%3A+pubsub%22), and if you
|
28
|
+
do not see an existing issue for your problem or feature, please open one using one of the provided templates.
|
29
|
+
|
30
|
+
## Sign Contributor License Agreement
|
31
|
+
|
32
|
+
Before we can accept your pull requests you'll need to sign a Contributor License Agreement (CLA):
|
33
|
+
|
34
|
+
- **If you are an individual writing original source code** and **you own the intellectual property**, then you'll need
|
35
|
+
to sign an [individual CLA](https://developers.google.com/open-source/cla/individual).
|
36
|
+
- **If you work for a company that wants to allow you to contribute your work**, then you'll need to sign a [corporate
|
17
37
|
CLA](https://developers.google.com/open-source/cla/corporate).
|
18
38
|
|
19
|
-
You can sign these electronically
|
20
|
-
|
39
|
+
You can sign these electronically. After that, we'll be able to accept your pull requests.
|
40
|
+
|
41
|
+
## Set up environment
|
42
|
+
|
43
|
+
Before you start on a pull request, you should prepare your work environment for development, acceptance testing and the
|
44
|
+
interactive console (optional).
|
21
45
|
|
22
|
-
|
46
|
+
### Local development setup
|
23
47
|
|
24
|
-
|
25
|
-
there is a small amount of setup:
|
48
|
+
To set up your local development environment:
|
26
49
|
|
27
|
-
1. Install
|
28
|
-
|
29
|
-
[
|
30
|
-
[chruby](https://github.com/postmodern/chruby).
|
50
|
+
1. Install a [supported version](google-cloud-pubsub.gemspec) (or versions) of Ruby. (You may choose to manage your
|
51
|
+
Ruby and gem installations with [RVM](https://rvm.io/), [rbenv](https://github.com/rbenv/rbenv),
|
52
|
+
[chruby](https://github.com/postmodern/chruby) or a similar tool.)
|
31
53
|
|
32
|
-
|
54
|
+
1. Install [Bundler](http://bundler.io/).
|
33
55
|
|
34
56
|
```sh
|
35
57
|
$ gem install bundler
|
36
58
|
```
|
37
59
|
|
38
|
-
|
60
|
+
1. [Fork](https://docs.github.com/en/github/collaborating-with-pull-requests/working-with-forks) the
|
61
|
+
[google-cloud-ruby](https://github.com/googleapis/google-cloud-ruby) repo, clone your fork, and configure the
|
62
|
+
`upstream`
|
63
|
+
[remote](https://docs.github.com/en/github/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-for-a-fork):
|
64
|
+
|
65
|
+
```bash
|
66
|
+
git clone https://github.com/<your-username>/google-cloud-ruby.git
|
67
|
+
cd google-cloud-ruby
|
68
|
+
git remote add upstream git@github.com:googleapis/google-cloud-ruby.git
|
69
|
+
```
|
70
|
+
|
71
|
+
1. If your fork and clone are not brand new, get the latest changes from `upstream`:
|
72
|
+
|
73
|
+
```bash
|
74
|
+
git checkout main
|
75
|
+
git pull upstream main
|
76
|
+
```
|
77
|
+
|
78
|
+
1. Change to the library's sub-directory in the repo:
|
39
79
|
|
40
80
|
```sh
|
41
|
-
$
|
81
|
+
$ cd google-cloud-pubsub
|
42
82
|
```
|
43
83
|
|
44
|
-
|
84
|
+
1. Install (or update) the library dependencies:
|
45
85
|
|
46
86
|
```sh
|
47
|
-
$
|
48
|
-
$ bundle install
|
87
|
+
$ bundle update
|
49
88
|
```
|
50
89
|
|
51
|
-
|
90
|
+
1. Create a new topic branch off of the `main` branch:
|
52
91
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
described in the {file:AUTHENTICATION.md Authentication Guide}. An IRB console
|
57
|
-
can be created with:
|
92
|
+
```bash
|
93
|
+
git checkout -b <topic-branch>
|
94
|
+
```
|
58
95
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
96
|
+
### Acceptance tests setup
|
97
|
+
|
98
|
+
To set up your acceptance test credentials:
|
99
|
+
|
100
|
+
1. If needed, create a Google Cloud project. In the Google Cloud Console, on the project selector page, select or create
|
101
|
+
a project.
|
102
|
+
|
103
|
+
1. Ensure that billing is enabled for your project.
|
104
|
+
|
105
|
+
1. Ensure that the Cloud Pub/Sub API is enabled for your project.
|
63
106
|
|
64
|
-
|
107
|
+
1. Follow the instructions for [Creating a Service Account](AUTHENTICATION.md#creating-a-service-account) in
|
108
|
+
`AUTHENTICATION.md`, including downloading and securely storing a JSON key file.
|
65
109
|
|
66
|
-
|
67
|
-
|
110
|
+
1. Set the `GCLOUD_TEST_KEYFILE` environment variable to the path of the JSON key file that you downloaded in the
|
111
|
+
previous step:
|
68
112
|
|
69
|
-
|
70
|
-
|
113
|
+
``` sh
|
114
|
+
$ export GCLOUD_TEST_KEYFILE=/path/to/keyfile.json
|
115
|
+
```
|
116
|
+
|
117
|
+
If you are already using the `GCLOUD_TEST_KEYFILE` environment variable, and wish to test this library with a
|
118
|
+
different key file, you may set the `PUBSUB_TEST_KEYFILE` environment variable instead:
|
119
|
+
|
120
|
+
``` sh
|
121
|
+
$ export PUBSUB_TEST_KEYFILE=/path/to/keyfile.json
|
122
|
+
```
|
123
|
+
|
124
|
+
1. Set the `GCLOUD_TEST_PROJECT` environment variable to your Google Cloud project ID:
|
125
|
+
|
126
|
+
``` sh
|
127
|
+
$ export GCLOUD_TEST_PROJECT=my-project-id
|
128
|
+
```
|
129
|
+
|
130
|
+
If you are already using the `GCLOUD_TEST_PROJECT` environment variable, and wish to test this library with a
|
131
|
+
different project, you may set the `PUBSUB_TEST_PROJECT` environment variable instead:
|
132
|
+
|
133
|
+
``` sh
|
134
|
+
$ export PUBSUB_TEST_PROJECT=my-project-id
|
135
|
+
```
|
136
|
+
|
137
|
+
### Interactive console setup (optional)
|
138
|
+
|
139
|
+
To set up your interactive console credentials:
|
140
|
+
|
141
|
+
1. Set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable to the path of your service account JSON key file (see
|
142
|
+
above):
|
143
|
+
|
144
|
+
``` sh
|
145
|
+
$ export GOOGLE_APPLICATION_CREDENTIALS=/path/to/keyfile.json
|
146
|
+
```
|
147
|
+
|
148
|
+
If you are already using the `GOOGLE_APPLICATION_CREDENTIALS` environment variable, and wish to test this library
|
149
|
+
with a different key file, you may set the `PUBSUB_CREDENTIALS` environment variable instead:
|
150
|
+
|
151
|
+
``` sh
|
152
|
+
$ export PUBSUB_CREDENTIALS=/path/to/keyfile.json
|
153
|
+
```
|
154
|
+
|
155
|
+
1. Set the `GOOGLE_CLOUD_PROJECT` environment variable to your Google Cloud project ID:
|
156
|
+
|
157
|
+
``` sh
|
158
|
+
$ export GOOGLE_CLOUD_PROJECT=my-project-id
|
159
|
+
```
|
160
|
+
|
161
|
+
If you are already using the `GOOGLE_CLOUD_PROJECT` environment variable, and wish to test this library with a
|
162
|
+
different project, you may set the `PUBSUB_PROJECT` environment variable instead:
|
163
|
+
|
164
|
+
``` sh
|
165
|
+
$ export PUBSUB_PROJECT=my-project-id
|
166
|
+
```
|
167
|
+
|
168
|
+
|
169
|
+
## Run CI
|
170
|
+
|
171
|
+
You are now ready to run local CI checks for the library, which you should do **before** you make any changes. Doing so
|
172
|
+
ensures that everything is OK with your local environment and the latest dependency versions. You don't want any
|
173
|
+
surprises later.
|
174
|
+
|
175
|
+
If you haven't already done so, change to the library's sub-directory in the repo:
|
176
|
+
|
177
|
+
```sh
|
178
|
+
$ cd google-cloud-pubsub
|
179
|
+
```
|
180
|
+
|
181
|
+
To run the code style checks, documentation tests, and unit tests together, use the `ci` task:
|
71
182
|
|
72
183
|
``` sh
|
73
|
-
$ cd google-cloud-pubsub/
|
74
184
|
$ bundle exec rake ci
|
75
185
|
```
|
76
186
|
|
77
|
-
To run the command above, plus all acceptance tests, use `rake ci:acceptance` or
|
78
|
-
|
187
|
+
To run the command above, plus all acceptance tests, use `rake ci:acceptance` or its handy alias, `rake ci:a`. Keep in
|
188
|
+
mind that the acceptance tests typically take longer than the other CI checks and require authentication credentials.
|
189
|
+
See the [Acceptance tests](#Acceptance-tests) section below for more information.
|
79
190
|
|
80
|
-
|
191
|
+
The Rake tasks aggregated in the commands above can be run individually to streamline your workflow when developing or
|
192
|
+
debugging.
|
81
193
|
|
194
|
+
| CI check | Command |
|
195
|
+
|-----------------------------------------------|------------------ |
|
196
|
+
| [Static code analysis](#Static-code-analysis) | `rake rubocop` |
|
197
|
+
| [Documentation tests](#Documentation-tests) | `rake doctest` |
|
198
|
+
| [Unit tests](#Unit-tests) | `rake test` |
|
199
|
+
| [Acceptance tests](#Acceptance-tests) | `rake acceptance` |
|
82
200
|
|
83
|
-
The
|
84
|
-
including [specs](https://github.com/seattlerb/minitest#specs),
|
85
|
-
[mocks](https://github.com/seattlerb/minitest#mocks) and
|
86
|
-
[minitest-autotest](https://github.com/seattlerb/minitest-autotest).
|
201
|
+
The subsections below describe the individual CI checks.
|
87
202
|
|
88
|
-
|
203
|
+
### Static code analysis
|
89
204
|
|
90
|
-
|
91
|
-
|
92
|
-
|
205
|
+
The project uses [Rubocop](https://github.com/rubocop/rubocop) configured with the shared
|
206
|
+
[googleapis/ruby-style](https://github.com/googleapis/ruby-style) rules to ensure that your code adheres to
|
207
|
+
Google's Ruby style. The style is largely based on [The Ruby Style
|
208
|
+
Guide](https://github.com/bbatsov/ruby-style-guide) with a few exceptions:
|
209
|
+
|
210
|
+
* Avoid parentheses when possible, including in method definitions.
|
211
|
+
* Use double-quoted strings.
|
212
|
+
|
213
|
+
You can check your code against these rules by running the Rubocop Rake task:
|
214
|
+
|
215
|
+
```sh
|
216
|
+
$ bundle exec rake rubocop
|
93
217
|
```
|
94
218
|
|
95
|
-
|
219
|
+
In the rare case that you need to override the existing Rubocop configuration for this library in order to accommodate
|
220
|
+
your changes, you can do so by updating [.rubocop.yml](.rubocop.yml).
|
96
221
|
|
97
|
-
|
98
|
-
[YARD](https://github.com/lsegal/yard)-based documentation.
|
222
|
+
### Documentation tests
|
99
223
|
|
100
|
-
|
101
|
-
|
102
|
-
[
|
103
|
-
|
224
|
+
When adding a new feature, you should almost always add one or more in-line documentation code examples demonstrating
|
225
|
+
the use of the feature, using [YARD](https://github.com/lsegal/yard)'s
|
226
|
+
[`@example`](http://www.rubydoc.info/gems/yard/file/docs/Tags.md#example) tag. Be sure to write a complete, executable
|
227
|
+
example that includes the library `require` statement and client initialization.
|
104
228
|
|
105
|
-
|
229
|
+
The project uses [yard-doctest](https://github.com/p0deje/yard-doctest) to execute each sample as a unit test:
|
106
230
|
|
107
231
|
``` sh
|
108
|
-
$ cd google-cloud-pubsub/
|
109
232
|
$ bundle exec rake doctest
|
110
233
|
```
|
111
234
|
|
112
|
-
If you add, remove or modify documentation examples
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
[`@example`](http://www.rubydoc.info/gems/yard/file/docs/Tags.md#example) tag.
|
117
|
-
If you alter an example's title, you may encounter breaking tests.
|
235
|
+
If you add, remove or modify documentation examples, you may need to update the setup for the tests. The fixtures, stubs
|
236
|
+
and mocks required to run the tests are located in [support/doctest_helper.rb](support/doctest_helper.rb). Please note
|
237
|
+
that much of the setup is matched to its corresponding example by the title of the `@example` tag. If you alter an
|
238
|
+
example's title, you may encounter broken tests.
|
118
239
|
|
119
|
-
|
240
|
+
There are generally no assertions or mock verifications in these tests. They simply check that the examples are
|
241
|
+
syntactically correct and execute against the library source code without error.
|
120
242
|
|
121
|
-
|
122
|
-
instructions in the {file:AUTHENTICATION.md Authentication Guide} for enabling
|
123
|
-
the Pub/Sub API. Occasionally, some API features may not yet be generally
|
124
|
-
available, making it difficult for some contributors to successfully run the
|
125
|
-
entire acceptance test suite. However, please ensure that you do successfully
|
126
|
-
run acceptance tests for any code areas covered by your pull request.
|
243
|
+
### Unit tests
|
127
244
|
|
128
|
-
|
129
|
-
|
130
|
-
|
245
|
+
The project uses the [minitest](https://github.com/seattlerb/minitest) library, including
|
246
|
+
[specs](https://github.com/seattlerb/minitest#specs-), [mocks](https://github.com/seattlerb/minitest#mocks-),
|
247
|
+
[minitest-autotest](https://github.com/seattlerb/minitest-autotest), and
|
248
|
+
[minitest-focus](https://github.com/seattlerb/minitest-focus).
|
131
249
|
|
132
|
-
|
133
|
-
used in the tests.
|
134
|
-
|
135
|
-
#### Running the Pub/Sub acceptance tests
|
136
|
-
|
137
|
-
To run the Pub/Sub acceptance tests:
|
250
|
+
To run the unit tests:
|
138
251
|
|
139
252
|
``` sh
|
140
|
-
$
|
141
|
-
$ bundle exec rake acceptance[\\{my-project-id},\\{/path/to/keyfile.json}]
|
253
|
+
$ bundle exec rake test
|
142
254
|
```
|
143
255
|
|
144
|
-
|
145
|
-
`
|
256
|
+
Although the unit tests are intended to run quickly, during development or debugging you may want to isolate one or more
|
257
|
+
of the tests by placing the `focus` keyword just above the test declaration. (See
|
258
|
+
[minitest-focus](https://github.com/seattlerb/minitest-focus) for details.)
|
146
259
|
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
260
|
+
### Acceptance Tests
|
261
|
+
|
262
|
+
The acceptance tests (a.k.a. integration tests) ensure that the library works correctly against the live service API.
|
263
|
+
To configure your Google Cloud project, see [Acceptance tests setup](#acceptance-tests-setup) above.
|
264
|
+
|
265
|
+
**Warning: You may incur charges while running the acceptance tests against your Google Cloud project.**
|
153
266
|
|
154
|
-
|
155
|
-
|
156
|
-
|
267
|
+
Like the unit tests, the acceptance tests are based on the [minitest](https://github.com/seattlerb/minitest) library,
|
268
|
+
including [specs](https://github.com/seattlerb/minitest#specs-) and
|
269
|
+
[minitest-focus](https://github.com/seattlerb/minitest-focus). Mocks are not generally used in acceptance tests.
|
270
|
+
|
271
|
+
Because the acceptance test suite is often time-consuming to run in its entirety, during development or debugging you
|
272
|
+
may want to isolate one or more of the tests by placing the `focus` keyword just above the test declaration. (See
|
273
|
+
[minitest-focus](https://github.com/seattlerb/minitest-focus) for details.)
|
274
|
+
|
275
|
+
To run the acceptance tests:
|
157
276
|
|
158
277
|
``` sh
|
159
|
-
$ cd google-cloud-pubsub/
|
160
|
-
$ export PUBSUB_TEST_PROJECT=\\{my-project-id}
|
161
|
-
$ export PUBSUB_TEST_KEYFILE=\\{/path/to/keyfile.json}
|
162
278
|
$ bundle exec rake acceptance
|
163
279
|
```
|
164
280
|
|
165
|
-
|
281
|
+
Some acceptance tests may depend on API features that are not yet generally available, and will fail unless your project
|
282
|
+
is added to an internal allowlist. There may also be tests that usually pass but fail occasionally due to issues like
|
283
|
+
eventual consistency. However, please ensure that you do successfully run acceptance tests for any code areas covered by
|
284
|
+
your pull request.
|
285
|
+
|
286
|
+
## Make changes
|
166
287
|
|
167
|
-
|
168
|
-
largely based on [The Ruby Style
|
169
|
-
Guide](https://github.com/bbatsov/ruby-style-guide) with a few exceptions based
|
170
|
-
on seattle-style:
|
288
|
+
All contributions should include new or updated tests to ensure that the contributed code behaves as expected.
|
171
289
|
|
172
|
-
|
173
|
-
|
174
|
-
|
290
|
+
When starting work on a new feature, it often makes sense to begin with a basic acceptance test to ensure that the new
|
291
|
+
feature is present in the live service API and is available to your project. To run your new test exclusively,
|
292
|
+
temporarily add the `focus` keyword just above the test declaration. (See
|
293
|
+
[minitest-focus](https://github.com/seattlerb/minitest-focus) for details.) Also, the acceptance tests have a retry
|
294
|
+
mechanism that can sometimes make it hard to see the correct error when things go wrong. To disable retries while
|
295
|
+
debugging errors, temporarily comment out or remove the `run_one_method` method definition in
|
296
|
+
[acceptance/pubsub_helper.rb](acceptance/pubsub_helper.rb).
|
175
297
|
|
176
|
-
|
298
|
+
When you are done developing, be sure to remove any usages of the `focus` keyword from your tests and restore the
|
299
|
+
`run_one_method` method definition if you removed it.
|
300
|
+
|
301
|
+
### Console
|
302
|
+
|
303
|
+
The project includes a Rake task that automatically loads `google-cloud-pubsub` and its dependencies in IRB. To
|
304
|
+
configure your Google Cloud project for IRB, see [Interactive console setup](#interactive-console-setup-optional) above.
|
305
|
+
|
306
|
+
**Warning: You may incur charges while using the library with your Google Cloud project.**
|
307
|
+
|
308
|
+
If you haven't already done so, change to the library's sub-directory in the repo:
|
177
309
|
|
178
310
|
```sh
|
179
|
-
$ cd google-cloud-pubsub
|
180
|
-
|
311
|
+
$ cd google-cloud-pubsub
|
312
|
+
```
|
313
|
+
|
314
|
+
The preloaded IRB console can be used as follows:
|
315
|
+
|
316
|
+
```sh
|
317
|
+
$ bundle exec rake console
|
318
|
+
irb(main):001:0> require "google/cloud/pubsub"
|
319
|
+
=> true
|
320
|
+
irb(main):002:0> pubsub = Google::Cloud::PubSub.new
|
181
321
|
```
|
182
322
|
|
183
|
-
|
323
|
+
Using the console provides an interactive alternative to acceptance testing that may make it easier to explore usage and
|
324
|
+
debug problems.
|
325
|
+
|
326
|
+
## Commit changes
|
327
|
+
|
328
|
+
Commit your changes using [conventional commits](https://www.conventionalcommits.org/), making sure to include the
|
329
|
+
associated GitHub issue number. Below is an example of a `feat` type commit that will result in a semver `minor`
|
330
|
+
release. Notice how it is scoped to the short name of the library, contains a bulleted list of public API changes, and
|
331
|
+
ends with the `closes` GitHub keyword. If this is the only new commit in your branch when you open your pull request,
|
332
|
+
the commit body including the `closes` phrase will be copied to your PR description. If you have multiple commits, you
|
333
|
+
should copy the body of this anchor commit manually to the PR description, so that GitHub will [automatically close the
|
334
|
+
related issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue).
|
335
|
+
|
336
|
+
```bash
|
337
|
+
git commit -am "feat(pubsub): Add my new feature
|
338
|
+
|
339
|
+
* Add MyClass#my_method
|
340
|
+
|
341
|
+
closes: #123"
|
342
|
+
```
|
343
|
+
|
344
|
+
The messages for any subsequent commits you may add do not necessarily need to follow the conventional commits format,
|
345
|
+
as these messages will be manually dropped or added as bullet points to the original message when the PR is squashed and
|
346
|
+
merged.
|
347
|
+
|
348
|
+
## Run CI again
|
349
|
+
|
350
|
+
|
351
|
+
1. If you haven't already done so, change to the library's sub-directory in the repo:
|
352
|
+
|
353
|
+
```sh
|
354
|
+
$ cd google-cloud-pubsub
|
355
|
+
```
|
356
|
+
|
357
|
+
1. Rebase your topic branch on the upstream `main` branch:
|
358
|
+
|
359
|
+
```bash
|
360
|
+
git pull --rebase upstream main
|
361
|
+
```
|
362
|
+
|
363
|
+
1. Run the `ci` task:
|
364
|
+
|
365
|
+
``` sh
|
366
|
+
$ bundle exec rake ci
|
367
|
+
```
|
368
|
+
|
369
|
+
1. Run the `acceptance` task:
|
370
|
+
|
371
|
+
``` sh
|
372
|
+
$ bundle exec rake acceptance
|
373
|
+
```
|
374
|
+
|
375
|
+
Ensure that everything is passing in `rake ci` and `rake acceptance`, or at least that `rake ci` is green and you
|
376
|
+
haven't broken anything new in `rake acceptance`, before you open your pull request.
|
377
|
+
|
378
|
+
## Submit your pull request
|
379
|
+
|
380
|
+
1. Rebase your topic branch on the upstream `main` branch:
|
381
|
+
|
382
|
+
```bash
|
383
|
+
git pull --rebase upstream main
|
384
|
+
```
|
385
|
+
|
386
|
+
1. Push your topic branch to your fork:
|
387
|
+
|
388
|
+
```bash
|
389
|
+
git push origin -u
|
390
|
+
```
|
391
|
+
|
392
|
+
1. Open a [pull
|
393
|
+
request](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)
|
394
|
+
using the first line of your conventional commit as the title, and with the associated GitHub issue in the
|
395
|
+
description. By convention in this project, the assignee of the pull request will be the maintainer who will merge it
|
396
|
+
once it is approved. If you are a maintainer of the project, typically you should assign the pull request to
|
397
|
+
yourself.
|
398
|
+
|
399
|
+
1. Ensure that all of the GitHub checks are passing.
|
184
400
|
|
185
|
-
Please note that this project is released with a Contributor Code of Conduct. By
|
186
|
-
participating in this project you agree to abide by its terms. See
|
187
|
-
{file:CODE_OF_CONDUCT.md Code of Conduct} for more information.
|
data/LOGGING.md
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# Logging
|
2
|
+
|
3
|
+
## Enabling gRPC Logging
|
2
4
|
|
3
5
|
To enable logging for this library, set the logger for the underlying
|
4
6
|
[gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) library. The logger
|
@@ -17,6 +19,7 @@ Configuring a Ruby stdlib logger:
|
|
17
19
|
|
18
20
|
```ruby
|
19
21
|
require "logger"
|
22
|
+
require "grpc"
|
20
23
|
|
21
24
|
module MyLogger
|
22
25
|
LOGGER = Logger.new $stderr, level: Logger::WARN
|
@@ -30,3 +33,92 @@ module GRPC
|
|
30
33
|
extend MyLogger
|
31
34
|
end
|
32
35
|
```
|
36
|
+
|
37
|
+
## Adding gRPC interceptors
|
38
|
+
|
39
|
+
[gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) accepts [Ruby-language
|
40
|
+
interceptors](https://github.com/grpc/proposal/blob/master/L11-ruby-interceptors.md) that allow you to insert your own
|
41
|
+
custom logging into a client's RPC calls. (gRPC interceptors are also useful for auth, metrics, tracing and similar
|
42
|
+
use cases.)
|
43
|
+
|
44
|
+
This library performs RPCs using the following [gapic](https://github.com/googleapis/gapic-generator-ruby) clients from
|
45
|
+
the underlying
|
46
|
+
[google-cloud-pubsub-v1](https://github.com/googleapis/google-cloud-ruby/tree/main/google-cloud-pubsub-v1) library:
|
47
|
+
|
48
|
+
* [`Google::Cloud::PubSub::V1::IAMPolicy::Client`](https://googleapis.dev/ruby/google-cloud-pubsub-v1/latest/Google/Cloud/PubSub/V1/IAMPolicy/Client.html)
|
49
|
+
* [`Google::Cloud::PubSub::V1::Publisher::Client`](https://googleapis.dev/ruby/google-cloud-pubsub-v1/latest/Google/Cloud/PubSub/V1/Publisher/Client.html)
|
50
|
+
* [`Google::Cloud::PubSub::V1::SchemaService::Client`](https://googleapis.dev/ruby/google-cloud-pubsub-v1/latest/Google/Cloud/PubSub/V1/SchemaService/Client.html)
|
51
|
+
* [`Google::Cloud::PubSub::V1::Subscriber::Client`](https://googleapis.dev/ruby/google-cloud-pubsub-v1/latest/Google/Cloud/PubSub/V1/Subscriber/Client.html)
|
52
|
+
|
53
|
+
To add a gRPC interceptor to one or more of these clients, first implement your logic as a subclass of
|
54
|
+
[`GRPC::ClientInterceptor`](https://www.rubydoc.info/gems/grpc/GRPC/ClientInterceptor). The example below logs all four
|
55
|
+
types of gRPC calls (unary, client streaming, server streaming, and bi-directional streaming.) It also demonstrates how
|
56
|
+
to set a metadata field.
|
57
|
+
|
58
|
+
```ruby
|
59
|
+
require "grpc"
|
60
|
+
require "logger"
|
61
|
+
require "securerandom"
|
62
|
+
|
63
|
+
class MyInterceptor < GRPC::ClientInterceptor
|
64
|
+
attr_reader :name
|
65
|
+
|
66
|
+
def initialize name
|
67
|
+
@name = name
|
68
|
+
end
|
69
|
+
|
70
|
+
def request_response(request:, call:, method:, metadata:)
|
71
|
+
logger.info "[#{name}] Sending unary request/response to #{method}"
|
72
|
+
metadata["request_id"] = generate_request_id
|
73
|
+
yield
|
74
|
+
end
|
75
|
+
|
76
|
+
def client_streamer(requests:, call:, method:, metadata:)
|
77
|
+
logger.info "[#{name}] Sending client streamer to #{method}"
|
78
|
+
metadata["request_id"] = generate_request_id
|
79
|
+
yield
|
80
|
+
end
|
81
|
+
|
82
|
+
def server_streamer(request:, call:, method:, metadata:)
|
83
|
+
logger.info "[#{name}] Sending server streamer to #{method}"
|
84
|
+
metadata["request_id"] = generate_request_id
|
85
|
+
yield
|
86
|
+
end
|
87
|
+
|
88
|
+
def bidi_streamer(requests:, call:, method:, metadata:)
|
89
|
+
logger.info "[#{name}] Sending bidi streamer to #{method}"
|
90
|
+
metadata["request_id"] = generate_request_id
|
91
|
+
yield
|
92
|
+
end
|
93
|
+
|
94
|
+
private
|
95
|
+
|
96
|
+
def logger
|
97
|
+
@logger ||= Logger.new(STDOUT)
|
98
|
+
end
|
99
|
+
|
100
|
+
def generate_request_id
|
101
|
+
SecureRandom.uuid
|
102
|
+
end
|
103
|
+
end
|
104
|
+
```
|
105
|
+
|
106
|
+
Next, use the block yielded by a `Client.configure` method to add an instance of your class to the `interceptors`
|
107
|
+
configuration of one or more of the generated clients listed above.
|
108
|
+
|
109
|
+
Note that the `Google::Cloud::PubSub::V1` configurations must be performed **before** the `Google::Cloud::PubSub` client
|
110
|
+
is instantiated.
|
111
|
+
|
112
|
+
```ruby
|
113
|
+
require "google/cloud/pubsub"
|
114
|
+
|
115
|
+
Google::Cloud::PubSub::V1::Publisher::Client.configure do |config|
|
116
|
+
config.interceptors = [MyInterceptor.new("MyPublisherInterceptor")]
|
117
|
+
end
|
118
|
+
|
119
|
+
Google::Cloud::PubSub::V1::Subscriber::Client.configure do |config|
|
120
|
+
config.interceptors = [MyInterceptor.new("MySubscriberInterceptor")]
|
121
|
+
end
|
122
|
+
|
123
|
+
pubsub = Google::Cloud::PubSub.new
|
124
|
+
```
|
data/OVERVIEW.md
CHANGED
@@ -452,7 +452,7 @@ if your account has limited access to the Pub/Sub API. In particular, the role
|
|
452
452
|
`roles/pubsub.subscriber` does not have the permission
|
453
453
|
`pubsub.subscriptions.get`, which is required to retrieve a subscription
|
454
454
|
resource. See [Access Control -
|
455
|
-
Roles](https://cloud.google.com/pubsub/docs/access-control#
|
455
|
+
Roles](https://cloud.google.com/pubsub/docs/access-control#roles) for the
|
456
456
|
complete list of Pub/Sub roles and permissions.
|
457
457
|
|
458
458
|
## Creating a snapshot and using seek
|
@@ -524,5 +524,5 @@ sub.topic.name #=> "projects/other-project-id/topics/other-topic"
|
|
524
524
|
## Additional information
|
525
525
|
|
526
526
|
Google Cloud Pub/Sub can be configured to use an emulator or to enable gRPC's
|
527
|
-
logging. To learn more, see the {file:EMULATOR.md Emulator guide}
|
527
|
+
logging. To learn more, see the {file:EMULATOR.md Emulator guide} and
|
528
528
|
{file:LOGGING.md Logging guide}.
|
@@ -238,6 +238,14 @@ module Google
|
|
238
238
|
# * `JSON` - JSON encoding.
|
239
239
|
# * `BINARY` - Binary encoding, as defined by the schema type. For some
|
240
240
|
# schema types, binary encoding may not be available.
|
241
|
+
# @param [Numeric] retention Indicates the minimum number of seconds to retain a message
|
242
|
+
# after it is published to the topic. If this field is set, messages published
|
243
|
+
# to the topic within the `retention` number of seconds are always available to
|
244
|
+
# subscribers. For instance, it allows any attached subscription to [seek to a
|
245
|
+
# timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
|
246
|
+
# that is up to `retention` number of seconds in the past. If this field is
|
247
|
+
# not set, message retention is controlled by settings on individual
|
248
|
+
# subscriptions. Cannot be less than 600 (10 minutes) or more than 604,800 (7 days).
|
241
249
|
#
|
242
250
|
# @return [Google::Cloud::PubSub::Topic]
|
243
251
|
#
|
@@ -253,14 +261,16 @@ module Google
|
|
253
261
|
persistence_regions: nil,
|
254
262
|
async: nil,
|
255
263
|
schema_name: nil,
|
256
|
-
message_encoding: nil
|
264
|
+
message_encoding: nil,
|
265
|
+
retention: nil
|
257
266
|
ensure_service!
|
258
267
|
grpc = service.create_topic topic_name,
|
259
268
|
labels: labels,
|
260
269
|
kms_key_name: kms_key,
|
261
270
|
persistence_regions: persistence_regions,
|
262
271
|
schema_name: schema_name,
|
263
|
-
message_encoding: message_encoding
|
272
|
+
message_encoding: message_encoding,
|
273
|
+
retention: retention
|
264
274
|
Topic.from_grpc grpc, service, async: async
|
265
275
|
end
|
266
276
|
alias new_topic create_topic
|
@@ -51,7 +51,7 @@ module Google
|
|
51
51
|
return mocked_subscriber if mocked_subscriber
|
52
52
|
@subscriber ||= V1::Subscriber::Client.new do |config|
|
53
53
|
config.credentials = credentials if credentials
|
54
|
-
config
|
54
|
+
override_client_config_timeouts config if timeout
|
55
55
|
config.endpoint = host if host
|
56
56
|
config.lib_name = "gccl"
|
57
57
|
config.lib_version = Google::Cloud::PubSub::VERSION
|
@@ -64,7 +64,7 @@ module Google
|
|
64
64
|
return mocked_publisher if mocked_publisher
|
65
65
|
@publisher ||= V1::Publisher::Client.new do |config|
|
66
66
|
config.credentials = credentials if credentials
|
67
|
-
config
|
67
|
+
override_client_config_timeouts config if timeout
|
68
68
|
config.endpoint = host if host
|
69
69
|
config.lib_name = "gccl"
|
70
70
|
config.lib_version = Google::Cloud::PubSub::VERSION
|
@@ -77,11 +77,11 @@ module Google
|
|
77
77
|
return mocked_iam if mocked_iam
|
78
78
|
@iam ||= V1::IAMPolicy::Client.new do |config|
|
79
79
|
config.credentials = credentials if credentials
|
80
|
-
config
|
80
|
+
override_client_config_timeouts config if timeout
|
81
81
|
config.endpoint = host if host
|
82
82
|
config.lib_name = "gccl"
|
83
83
|
config.lib_version = Google::Cloud::PubSub::VERSION
|
84
|
-
config.metadata = { "google-cloud-resource-prefix"
|
84
|
+
config.metadata = { "google-cloud-resource-prefix": "projects/#{@project}" }
|
85
85
|
end
|
86
86
|
end
|
87
87
|
attr_accessor :mocked_iam
|
@@ -90,11 +90,11 @@ module Google
|
|
90
90
|
return mocked_schemas if mocked_schemas
|
91
91
|
@schemas ||= V1::SchemaService::Client.new do |config|
|
92
92
|
config.credentials = credentials if credentials
|
93
|
-
config
|
93
|
+
override_client_config_timeouts config if timeout
|
94
94
|
config.endpoint = host if host
|
95
95
|
config.lib_name = "gccl"
|
96
96
|
config.lib_version = Google::Cloud::PubSub::VERSION
|
97
|
-
config.metadata = { "google-cloud-resource-prefix"
|
97
|
+
config.metadata = { "google-cloud-resource-prefix": "projects/#{@project}" }
|
98
98
|
end
|
99
99
|
end
|
100
100
|
attr_accessor :mocked_schemas
|
@@ -127,6 +127,7 @@ module Google
|
|
127
127
|
persistence_regions: nil,
|
128
128
|
schema_name: nil,
|
129
129
|
message_encoding: nil,
|
130
|
+
retention: nil,
|
130
131
|
options: {}
|
131
132
|
if persistence_regions
|
132
133
|
message_storage_policy = Google::Cloud::PubSub::V1::MessageStoragePolicy.new(
|
@@ -145,11 +146,12 @@ module Google
|
|
145
146
|
end
|
146
147
|
|
147
148
|
publisher.create_topic \
|
148
|
-
name:
|
149
|
-
labels:
|
150
|
-
kms_key_name:
|
151
|
-
message_storage_policy:
|
152
|
-
schema_settings:
|
149
|
+
name: topic_path(topic_name, options),
|
150
|
+
labels: labels,
|
151
|
+
kms_key_name: kms_key_name,
|
152
|
+
message_storage_policy: message_storage_policy,
|
153
|
+
schema_settings: schema_settings,
|
154
|
+
message_retention_duration: Convert.number_to_duration(retention)
|
153
155
|
end
|
154
156
|
|
155
157
|
def update_topic topic_obj, *fields
|
@@ -459,6 +461,18 @@ module Google
|
|
459
461
|
|
460
462
|
protected
|
461
463
|
|
464
|
+
# Set the timeout in the client config.
|
465
|
+
# Override the default timeout in each individual RPC config as well, since when they are non-nil, these
|
466
|
+
# defaults have precedence over the top-level config.timeout. See Gapic::CallOptions#apply_defaults.
|
467
|
+
def override_client_config_timeouts config
|
468
|
+
config.timeout = timeout
|
469
|
+
rpc_names = config.rpcs.methods - Object.methods
|
470
|
+
rpc_names.each do |rpc_name|
|
471
|
+
rpc = config.rpcs.send rpc_name
|
472
|
+
rpc.timeout = timeout if rpc.respond_to? :timeout=
|
473
|
+
end
|
474
|
+
end
|
475
|
+
|
462
476
|
def a_time? obj
|
463
477
|
return false unless obj.respond_to? :to_time
|
464
478
|
# Rails' String#to_time returns nil if the string doesn't parse.
|
@@ -168,9 +168,8 @@ module Google
|
|
168
168
|
# backlog, from the moment a message is published. If
|
169
169
|
# {#retain_acked} is `true`, then this also configures the retention of
|
170
170
|
# acknowledged messages, and thus configures how far back in time a
|
171
|
-
# {#seek} can be done. Cannot be
|
172
|
-
#
|
173
|
-
# days).
|
171
|
+
# {#seek} can be done. Cannot be less than 600 (10 minutes) or more
|
172
|
+
# than 604,800 (7 days). Default is 604,800 seconds (7 days).
|
174
173
|
#
|
175
174
|
# Makes an API call to retrieve the retention value when called on a
|
176
175
|
# reference object. See {#reference?}.
|
@@ -195,6 +194,24 @@ module Google
|
|
195
194
|
@resource_name = nil
|
196
195
|
end
|
197
196
|
|
197
|
+
##
|
198
|
+
# Indicates the minimum duration for which a message is retained after
|
199
|
+
# it is published to the subscription's topic. If this field is set,
|
200
|
+
# messages published to the subscription's topic in the last
|
201
|
+
# `topic_message_retention_duration` are always available to subscribers.
|
202
|
+
# Output only. See {Topic#retention}.
|
203
|
+
#
|
204
|
+
# Makes an API call to retrieve the retention value when called on a
|
205
|
+
# reference object. See {#reference?}.
|
206
|
+
#
|
207
|
+
# @return [Numeric, nil] The topic message retention duration in seconds,
|
208
|
+
# or `nil` if not set.
|
209
|
+
#
|
210
|
+
def topic_retention
|
211
|
+
ensure_grpc!
|
212
|
+
Convert.duration_to_number @grpc.topic_message_retention_duration
|
213
|
+
end
|
214
|
+
|
198
215
|
##
|
199
216
|
# Returns the URL locating the endpoint to which messages should be
|
200
217
|
# pushed. For example, a Webhook endpoint might use
|
@@ -408,7 +425,7 @@ module Google
|
|
408
425
|
# Sets the {Topic} to which dead letter messages for the subscription should be published. Dead lettering is
|
409
426
|
# done on a best effort basis. The same message might be dead lettered multiple times.
|
410
427
|
# The Cloud Pub/Sub service account associated with the enclosing subscription's parent project (i.e.,
|
411
|
-
# `service
|
428
|
+
# `service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com`) must have permission to Publish() to this
|
412
429
|
# topic.
|
413
430
|
#
|
414
431
|
# The operation will fail if the topic does not exist. Users should ensure that there is a subscription attached
|
@@ -305,6 +305,43 @@ module Google
|
|
305
305
|
message_encoding.to_s.upcase == "JSON"
|
306
306
|
end
|
307
307
|
|
308
|
+
##
|
309
|
+
# Indicates the minimum number of seconds to retain a message after it is
|
310
|
+
# published to the topic. If this field is set, messages published to the topic
|
311
|
+
# within the `retention` number of seconds are always available to subscribers.
|
312
|
+
# For instance, it allows any attached subscription to [seek to a
|
313
|
+
# timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
|
314
|
+
# that is up to `retention` number of seconds in the past. If this field is
|
315
|
+
# not set, message retention is controlled by settings on individual
|
316
|
+
# subscriptions. Cannot be less than 600 (10 minutes) or more than 604,800 (7 days).
|
317
|
+
# See {#retention=}.
|
318
|
+
#
|
319
|
+
# Makes an API call to retrieve the retention value when called on a
|
320
|
+
# reference object. See {#reference?}.
|
321
|
+
#
|
322
|
+
# @return [Numeric, nil] The message retention duration in seconds, or `nil` if not set.
|
323
|
+
#
|
324
|
+
def retention
|
325
|
+
ensure_grpc!
|
326
|
+
Convert.duration_to_number @grpc.message_retention_duration
|
327
|
+
end
|
328
|
+
|
329
|
+
##
|
330
|
+
# Sets the message retention duration in seconds. If set to a positive duration
|
331
|
+
# between 600 (10 minutes) and 604,800 (7 days), inclusive, the message retention
|
332
|
+
# duration is changed. If set to `nil`, this clears message retention duration
|
333
|
+
# from the topic. See {#retention}.
|
334
|
+
#
|
335
|
+
# @param [Numeric, nil] new_retention The new message retention duration value.
|
336
|
+
#
|
337
|
+
def retention= new_retention
|
338
|
+
new_retention_duration = Convert.number_to_duration new_retention
|
339
|
+
update_grpc = Google::Cloud::PubSub::V1::Topic.new name: name,
|
340
|
+
message_retention_duration: new_retention_duration
|
341
|
+
@grpc = service.update_topic update_grpc, :message_retention_duration
|
342
|
+
@resource_name = nil
|
343
|
+
end
|
344
|
+
|
308
345
|
##
|
309
346
|
# Permanently deletes the topic.
|
310
347
|
#
|
@@ -373,7 +410,7 @@ module Google
|
|
373
410
|
# @param [Topic] dead_letter_topic The {Topic} to which dead letter messages for the subscription should be
|
374
411
|
# published. Dead lettering is done on a best effort basis. The same message might be dead lettered multiple
|
375
412
|
# times. The Cloud Pub/Sub service account associated with the enclosing subscription's parent project (i.e.,
|
376
|
-
# `service
|
413
|
+
# `service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com`) must have permission to Publish() to
|
377
414
|
# this topic.
|
378
415
|
#
|
379
416
|
# The operation will fail if the topic does not exist. Users should ensure that there is a subscription
|
data/lib/google/cloud/pubsub.rb
CHANGED
@@ -54,7 +54,7 @@ module Google
|
|
54
54
|
# The default scope is:
|
55
55
|
#
|
56
56
|
# * `https://www.googleapis.com/auth/pubsub`
|
57
|
-
# @param [
|
57
|
+
# @param [Numeric] timeout Default timeout to use in requests. Optional.
|
58
58
|
# @param [String] endpoint Override of the endpoint host name. Optional.
|
59
59
|
# If the param is nil, uses the default endpoint.
|
60
60
|
# @param [String] emulator_host Pub/Sub emulator host. Optional.
|
@@ -121,9 +121,9 @@ module Google
|
|
121
121
|
# parameter `keyfile` is considered deprecated, but may also be used.)
|
122
122
|
# * `scope` - (String, Array<String>) The OAuth 2.0 scopes controlling
|
123
123
|
# the set of resources and operations that the connection can access.
|
124
|
-
# * `
|
125
|
-
#
|
126
|
-
# * `timeout` - (
|
124
|
+
# * `quota_project` - (String) The project ID for a project that can be
|
125
|
+
# used by client libraries for quota and billing purposes.
|
126
|
+
# * `timeout` - (Numeric) Default timeout to use in requests.
|
127
127
|
# * `endpoint` - (String) Override of the endpoint host name, or `nil`
|
128
128
|
# to use the default endpoint.
|
129
129
|
# * `emulator_host` - (String) Host name of the emulator. Defaults to
|
data/lib/google-cloud-pubsub.rb
CHANGED
@@ -41,7 +41,7 @@ module Google
|
|
41
41
|
# The default scope is:
|
42
42
|
#
|
43
43
|
# * `https://www.googleapis.com/auth/pubsub`
|
44
|
-
# @param [
|
44
|
+
# @param [Numeric] timeout Default timeout to use in requests. Optional.
|
45
45
|
#
|
46
46
|
# @return [Google::Cloud::PubSub::Project]
|
47
47
|
#
|
@@ -87,7 +87,7 @@ module Google
|
|
87
87
|
# The default scope is:
|
88
88
|
#
|
89
89
|
# * `https://www.googleapis.com/auth/pubsub`
|
90
|
-
# @param [
|
90
|
+
# @param [Numeric] timeout Default timeout to use in requests. Optional.
|
91
91
|
#
|
92
92
|
# @return [Google::Cloud::PubSub::Project]
|
93
93
|
#
|
@@ -133,7 +133,7 @@ Google::Cloud.configure.add_config! :pubsub do |config|
|
|
133
133
|
config.add_alias! :keyfile, :credentials
|
134
134
|
config.add_field! :scope, default_scopes, match: [String, Array]
|
135
135
|
config.add_field! :quota_project, nil, match: String
|
136
|
-
config.add_field! :timeout, nil, match:
|
136
|
+
config.add_field! :timeout, nil, match: Numeric
|
137
137
|
config.add_field! :emulator_host, default_emulator, match: String, allow_nil: true
|
138
138
|
config.add_field! :on_error, nil, match: Proc
|
139
139
|
config.add_field! :endpoint, "pubsub.googleapis.com", match: String
|
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: 2.
|
4
|
+
version: 2.9.1
|
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:
|
12
|
+
date: 2022-01-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: concurrent-ruby
|
@@ -276,7 +276,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
276
276
|
- !ruby/object:Gem::Version
|
277
277
|
version: '0'
|
278
278
|
requirements: []
|
279
|
-
rubygems_version: 3.
|
279
|
+
rubygems_version: 3.3.4
|
280
280
|
signing_key:
|
281
281
|
specification_version: 4
|
282
282
|
summary: API Client library for Google Cloud Pub/Sub
|