google-cloud-datastore 1.5.1 → 1.5.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 72ce967e2225a7f45b099b3183e72b450e2a424540423ccdbcecd3f04d4df5a7
4
- data.tar.gz: 7bc5dc5ef826d16c6e3732ed496deacb53e239c3a0583fa46babeeb5253bc91c
3
+ metadata.gz: 264365e0f5bcb539fbcb7400f635ce7846da49d69d40ebd0dd4bd01e8337f82a
4
+ data.tar.gz: b63520b3c479e80a74d3f5343cecf957e369f99bf2b9aba687cef9d732c3aa46
5
5
  SHA512:
6
- metadata.gz: 0babd961bc284b94502cb3dcccfa5da0fea60fd6277ca5c8da2a5527e9cde189d0d18eb1ac6d3b66f0f1676e81d0eddfdd5e068cbfe3a3da0c1f07e05651fb34
7
- data.tar.gz: 03d6099865662209ce9824bfd3601391b78996d62377b34d80bbaff2c8f9b25fe04ff8c8563aa8fcdf24a000850d20df1243ddd96b963ca80a2906475ea1f421
6
+ metadata.gz: 388076fda8dfc3ee025da5346cd390d5db31659f8d859f6da73dd7621ecfd5e16a0c9edc90e8e83d3f4f8847a15cc05557ac8b5c06f939b566a1b87ee5b1de7f
7
+ data.tar.gz: 790522bf2b042596ed3c4196a37f8a40b5fd96221fae6c97046e02f59f4ef269e7aaf0c89418db385532a456654aade40fd09d88c413b351985faf9a5a67b246
data/AUTHENTICATION.md CHANGED
@@ -2,20 +2,39 @@
2
2
 
3
3
  In general, the google-cloud-datastore library uses [Service
4
4
  Account](https://cloud.google.com/iam/docs/creating-managing-service-accounts)
5
- credentials to connect to Google Cloud services. When running on Compute Engine
5
+ credentials to connect to Google Cloud services. When running within [Google
6
+ Cloud Platform environments](#google-cloud-platform-environments)
6
7
  the credentials will be discovered automatically. When running on other
7
8
  environments, the Service Account credentials can be specified by providing the
8
9
  path to the [JSON
9
10
  keyfile](https://cloud.google.com/iam/docs/managing-service-account-keys) for
10
- the account (or the JSON itself) in environment variables. Additionally, Cloud
11
- SDK credentials can also be discovered automatically, but this is only
12
- recommended during development.
11
+ the account (or the JSON itself) in [environment
12
+ variables](#environment-variables). Additionally, Cloud SDK credentials can also
13
+ be discovered automatically, but this is only recommended during development.
14
+
15
+ ## Quickstart
16
+
17
+ 1. [Create a service account and credentials](#creating-a-service-account).
18
+ 2. Set the [environment variable](#environment-variables).
19
+
20
+ ```sh
21
+ export DATASTORE_CREDENTIALS=/path/to/json`
22
+ ```
23
+
24
+ 3. Initialize the client.
25
+
26
+ ```ruby
27
+ require "google/cloud/datastore"
28
+
29
+ client = Google::Cloud::Datastore.new
30
+ ```
13
31
 
14
32
  ## Project and Credential Lookup
15
33
 
16
- The google-cloud-datastore library aims to make authentication as simple as
17
- possible, and provides several mechanisms to configure your system without
18
- providing **Project ID** and **Service Account Credentials** directly in code.
34
+ The google-cloud-datastore library aims to make authentication
35
+ as simple as possible, and provides several mechanisms to configure your system
36
+ without providing **Project ID** and **Service Account Credentials** directly in
37
+ code.
19
38
 
20
39
  **Project ID** is discovered in the following order:
21
40
 
@@ -23,6 +42,7 @@ providing **Project ID** and **Service Account Credentials** directly in code.
23
42
  2. Specify project ID in configuration
24
43
  3. Discover project ID in environment variables
25
44
  4. Discover GCE project ID
45
+ 5. Discover project ID in credentials JSON
26
46
 
27
47
  **Credentials** are discovered in the following order:
28
48
 
@@ -73,12 +93,12 @@ environment variable, or the **Credentials JSON** itself can be stored for
73
93
  environments such as Docker containers where writing files is difficult or not
74
94
  encouraged.
75
95
 
76
- The environment variables that Datastore checks for project ID are:
96
+ The environment variables that google-cloud-datastore checks for project ID are:
77
97
 
78
98
  1. `DATASTORE_PROJECT`
79
99
  2. `GOOGLE_CLOUD_PROJECT`
80
100
 
81
- The environment variables that Datastore checks for credentials are configured on {Google::Cloud::Datastore::V1::Credentials}:
101
+ The environment variables that google-cloud-datastore checks for credentials are configured on {Google::Cloud::Datastore::V1::Credentials}:
82
102
 
83
103
  1. `DATASTORE_CREDENTIALS` - Path to JSON file, or JSON contents
84
104
  2. `DATASTORE_KEYFILE` - Path to JSON file, or JSON contents
@@ -92,7 +112,7 @@ require "google/cloud/datastore"
92
112
  ENV["DATASTORE_PROJECT"] = "my-project-id"
93
113
  ENV["DATASTORE_CREDENTIALS"] = "path/to/keyfile.json"
94
114
 
95
- datastore = Google::Cloud::Datastore.new
115
+ client = Google::Cloud::Datastore.new
96
116
  ```
97
117
 
98
118
  ### Configuration
@@ -107,7 +127,7 @@ Google::Cloud::Datastore.configure do |config|
107
127
  config.credentials = "path/to/keyfile.json"
108
128
  end
109
129
 
110
- datastore = Google::Cloud::Datastore.new
130
+ client = Google::Cloud::Datastore.new
111
131
  ```
112
132
 
113
133
  ### Cloud SDK
@@ -140,7 +160,8 @@ Google Cloud requires a **Project ID** and **Service Account Credentials** to
140
160
  connect to the APIs. You will use the **Project ID** and **JSON key file** to
141
161
  connect to most services with google-cloud-datastore.
142
162
 
143
- If you are not running this client on Google Compute Engine, you need a Google
163
+ If you are not running this client within [Google Cloud Platform
164
+ environments](#google-cloud-platform-environments), you need a Google
144
165
  Developers service account.
145
166
 
146
167
  1. Visit the [Google Developers Console][dev-console].
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Release History
2
2
 
3
+ ### 1.5.2 / 2019-04-29
4
+
5
+ * Add AUTHENTICATION.md guide.
6
+ * Update generated documentation.
7
+ * Extract gRPC header values from request.
8
+
3
9
  ### 1.5.1 / 2019-02-13
4
10
 
5
11
  * Add `ReadOnlyTransaction` convenience methods:
@@ -63,7 +63,7 @@ module Google
63
63
 
64
64
  # @private byte array as a string
65
65
  def to_grpc
66
- Convert.decode_bytes(@cursor)
66
+ Convert.decode_bytes @cursor
67
67
  end
68
68
 
69
69
  # @private byte array as a string
@@ -296,7 +296,7 @@ module Google
296
296
  returned_keys = commit_res.mutation_results.map(&:key)
297
297
  returned_keys.each_with_index do |key, index|
298
298
  next if entities[index].nil?
299
- entities[index].key = Key.from_grpc(key) unless key.nil?
299
+ entities[index].key = Key.from_grpc key unless key.nil?
300
300
  end
301
301
  entities.each { |e| e.key.freeze unless e.persisted? }
302
302
  entities
@@ -540,7 +540,7 @@ module Google
540
540
  raise err if Time.now - start_time > deadline
541
541
 
542
542
  # Sleep with incremental backoff
543
- sleep(backoff *= 1.3)
543
+ sleep backoff *= 1.3
544
544
 
545
545
  # Create new transaction and retry the block
546
546
  tx = Transaction.new service, previous_transaction: tx.id
@@ -170,7 +170,7 @@ module Google
170
170
  def all request_limit: nil
171
171
  request_limit = request_limit.to_i if request_limit
172
172
  unless block_given?
173
- return enum_for(:all, request_limit: request_limit)
173
+ return enum_for :all, request_limit: request_limit
174
174
  end
175
175
  results = self
176
176
  loop do
@@ -211,7 +211,7 @@ module Google
211
211
  # end
212
212
  #
213
213
  def each_with_cursor
214
- return enum_for(:each_with_cursor) unless block_given?
214
+ return enum_for :each_with_cursor unless block_given?
215
215
  zip(cursors).each { |r, c| yield [r, c] }
216
216
  end
217
217
 
@@ -269,7 +269,7 @@ module Google
269
269
  def all request_limit: nil
270
270
  request_limit = request_limit.to_i if request_limit
271
271
  unless block_given?
272
- return enum_for(:all, request_limit: request_limit)
272
+ return enum_for :all, request_limit: request_limit
273
273
  end
274
274
  results = self
275
275
  loop do
@@ -338,7 +338,7 @@ module Google
338
338
  def all_with_cursor request_limit: nil
339
339
  request_limit = request_limit.to_i if request_limit
340
340
  unless block_given?
341
- return enum_for(:all_with_cursor, request_limit: request_limit)
341
+ return enum_for :all_with_cursor, request_limit: request_limit
342
342
  end
343
343
  results = self
344
344
 
@@ -277,9 +277,9 @@ module Google
277
277
  elsif pe_id_or_name.is_a? String
278
278
  path_args[:name] = pe_id_or_name unless pe_id_or_name.empty?
279
279
  end
280
- Google::Datastore::V1::Key::PathElement.new(path_args)
280
+ Google::Datastore::V1::Key::PathElement.new path_args
281
281
  end
282
- grpc = Google::Datastore::V1::Key.new(path: grpc_path)
282
+ grpc = Google::Datastore::V1::Key.new path: grpc_path
283
283
  if project || namespace
284
284
  grpc.partition_id = Google::Datastore::V1::PartitionId.new(
285
285
  project_id: project.to_s, namespace_id: namespace.to_s
@@ -305,7 +305,7 @@ module Google
305
305
  key.project = key_grpc.partition_id.project_id
306
306
  key.namespace = key_grpc.partition_id.namespace_id
307
307
  end
308
- key.parent = Key.from_grpc(key_grpc) if key_grpc.path.count > 0
308
+ key.parent = Key.from_grpc key_grpc if key_grpc.path.count > 0
309
309
  # Freeze the key to make it immutable.
310
310
  key.freeze
311
311
  key
@@ -298,7 +298,7 @@ module Google
298
298
  # tasks = datastore.run query
299
299
  #
300
300
  def limit num
301
- @grpc.limit = Google::Protobuf::Int32Value.new(value: num)
301
+ @grpc.limit = Google::Protobuf::Int32Value.new value: num
302
302
 
303
303
  self
304
304
  end
@@ -333,7 +333,7 @@ module Google
333
333
  returned_keys = commit_res.mutation_results.map(&:key)
334
334
  returned_keys.each_with_index do |key, index|
335
335
  next if entities[index].nil?
336
- entities[index].key = Key.from_grpc(key) unless key.nil?
336
+ entities[index].key = Key.from_grpc key unless key.nil?
337
337
  end
338
338
  # Make sure all entity keys are frozen so all show as persisted
339
339
  entities.each { |e| e.key.freeze unless e.persisted? }
@@ -169,37 +169,58 @@ module Google
169
169
  @lookup = Google::Gax.create_api_call(
170
170
  @datastore_stub.method(:lookup),
171
171
  defaults["lookup"],
172
- exception_transformer: exception_transformer
172
+ exception_transformer: exception_transformer,
173
+ params_extractor: proc do |request|
174
+ {'project_id' => request.project_id}
175
+ end
173
176
  )
174
177
  @run_query = Google::Gax.create_api_call(
175
178
  @datastore_stub.method(:run_query),
176
179
  defaults["run_query"],
177
- exception_transformer: exception_transformer
180
+ exception_transformer: exception_transformer,
181
+ params_extractor: proc do |request|
182
+ {'project_id' => request.project_id}
183
+ end
178
184
  )
179
185
  @begin_transaction = Google::Gax.create_api_call(
180
186
  @datastore_stub.method(:begin_transaction),
181
187
  defaults["begin_transaction"],
182
- exception_transformer: exception_transformer
188
+ exception_transformer: exception_transformer,
189
+ params_extractor: proc do |request|
190
+ {'project_id' => request.project_id}
191
+ end
183
192
  )
184
193
  @commit = Google::Gax.create_api_call(
185
194
  @datastore_stub.method(:commit),
186
195
  defaults["commit"],
187
- exception_transformer: exception_transformer
196
+ exception_transformer: exception_transformer,
197
+ params_extractor: proc do |request|
198
+ {'project_id' => request.project_id}
199
+ end
188
200
  )
189
201
  @rollback = Google::Gax.create_api_call(
190
202
  @datastore_stub.method(:rollback),
191
203
  defaults["rollback"],
192
- exception_transformer: exception_transformer
204
+ exception_transformer: exception_transformer,
205
+ params_extractor: proc do |request|
206
+ {'project_id' => request.project_id}
207
+ end
193
208
  )
194
209
  @allocate_ids = Google::Gax.create_api_call(
195
210
  @datastore_stub.method(:allocate_ids),
196
211
  defaults["allocate_ids"],
197
- exception_transformer: exception_transformer
212
+ exception_transformer: exception_transformer,
213
+ params_extractor: proc do |request|
214
+ {'project_id' => request.project_id}
215
+ end
198
216
  )
199
217
  @reserve_ids = Google::Gax.create_api_call(
200
218
  @datastore_stub.method(:reserve_ids),
201
219
  defaults["reserve_ids"],
202
- exception_transformer: exception_transformer
220
+ exception_transformer: exception_transformer,
221
+ params_extractor: proc do |request|
222
+ {'project_id' => request.project_id}
223
+ end
203
224
  )
204
225
  end
205
226
 
@@ -67,7 +67,8 @@ module Google
67
67
  # The GQL query to run.
68
68
  class RunQueryRequest; end
69
69
 
70
- # The response for {Google::Datastore::V1::Datastore::RunQuery Datastore::RunQuery}.
70
+ # The response for
71
+ # {Google::Datastore::V1::Datastore::RunQuery Datastore::RunQuery}.
71
72
  # @!attribute [rw] batch
72
73
  # @return [Google::Datastore::V1::QueryResultBatch]
73
74
  # A batch of query results (always present).
@@ -76,7 +77,8 @@ module Google
76
77
  # The parsed form of the `GqlQuery` from the request, if it was set.
77
78
  class RunQueryResponse; end
78
79
 
79
- # The request for {Google::Datastore::V1::Datastore::BeginTransaction Datastore::BeginTransaction}.
80
+ # The request for
81
+ # {Google::Datastore::V1::Datastore::BeginTransaction Datastore::BeginTransaction}.
80
82
  # @!attribute [rw] project_id
81
83
  # @return [String]
82
84
  # The ID of the project against which to make the request.
@@ -85,7 +87,8 @@ module Google
85
87
  # Options for a new transaction.
86
88
  class BeginTransactionRequest; end
87
89
 
88
- # The response for {Google::Datastore::V1::Datastore::BeginTransaction Datastore::BeginTransaction}.
90
+ # The response for
91
+ # {Google::Datastore::V1::Datastore::BeginTransaction Datastore::BeginTransaction}.
89
92
  # @!attribute [rw] transaction
90
93
  # @return [String]
91
94
  # The transaction identifier (always present).
@@ -101,8 +104,9 @@ module Google
101
104
  # {Google::Datastore::V1::Datastore::BeginTransaction Datastore::BeginTransaction}.
102
105
  class RollbackRequest; end
103
106
 
104
- # The response for {Google::Datastore::V1::Datastore::Rollback Datastore::Rollback}.
105
- # (an empty message).
107
+ # The response for
108
+ # {Google::Datastore::V1::Datastore::Rollback Datastore::Rollback}. (an empty
109
+ # message).
106
110
  class RollbackResponse; end
107
111
 
108
112
  # The request for {Google::Datastore::V1::Datastore::Commit Datastore::Commit}.
@@ -139,7 +143,8 @@ module Google
139
143
  MODE_UNSPECIFIED = 0
140
144
 
141
145
  # Transactional: The mutations are either all applied, or none are applied.
142
- # Learn about transactions [here](https://cloud.google.com/datastore/docs/concepts/transactions).
146
+ # Learn about transactions
147
+ # [here](https://cloud.google.com/datastore/docs/concepts/transactions).
143
148
  TRANSACTIONAL = 1
144
149
 
145
150
  # Non-transactional: The mutations may not apply as all or none.
@@ -158,7 +163,8 @@ module Google
158
163
  # updated.
159
164
  class CommitResponse; end
160
165
 
161
- # The request for {Google::Datastore::V1::Datastore::AllocateIds Datastore::AllocateIds}.
166
+ # The request for
167
+ # {Google::Datastore::V1::Datastore::AllocateIds Datastore::AllocateIds}.
162
168
  # @!attribute [rw] project_id
163
169
  # @return [String]
164
170
  # The ID of the project against which to make the request.
@@ -168,14 +174,16 @@ module Google
168
174
  # No key may be reserved/read-only.
169
175
  class AllocateIdsRequest; end
170
176
 
171
- # The response for {Google::Datastore::V1::Datastore::AllocateIds Datastore::AllocateIds}.
177
+ # The response for
178
+ # {Google::Datastore::V1::Datastore::AllocateIds Datastore::AllocateIds}.
172
179
  # @!attribute [rw] keys
173
180
  # @return [Array<Google::Datastore::V1::Key>]
174
181
  # The keys specified in the request (in the same order), each with
175
182
  # its key path completed with a newly allocated ID.
176
183
  class AllocateIdsResponse; end
177
184
 
178
- # The request for {Google::Datastore::V1::Datastore::ReserveIds Datastore::ReserveIds}.
185
+ # The request for
186
+ # {Google::Datastore::V1::Datastore::ReserveIds Datastore::ReserveIds}.
179
187
  # @!attribute [rw] project_id
180
188
  # @return [String]
181
189
  # The ID of the project against which to make the request.
@@ -188,7 +196,8 @@ module Google
188
196
  # auto-allocated.
189
197
  class ReserveIdsRequest; end
190
198
 
191
- # The response for {Google::Datastore::V1::Datastore::ReserveIds Datastore::ReserveIds}.
199
+ # The response for
200
+ # {Google::Datastore::V1::Datastore::ReserveIds Datastore::ReserveIds}.
192
201
  class ReserveIdsResponse; end
193
202
 
194
203
  # A mutation to apply to an entity.
@@ -259,8 +268,10 @@ module Google
259
268
  # Options for beginning a new transaction.
260
269
  #
261
270
  # Transactions can be created explicitly with calls to
262
- # {Google::Datastore::V1::Datastore::BeginTransaction Datastore::BeginTransaction} or implicitly by setting
263
- # {Google::Datastore::V1::ReadOptions#new_transaction ReadOptions#new_transaction} in read requests.
271
+ # {Google::Datastore::V1::Datastore::BeginTransaction Datastore::BeginTransaction}
272
+ # or implicitly by setting
273
+ # {Google::Datastore::V1::ReadOptions#new_transaction ReadOptions#new_transaction}
274
+ # in read requests.
264
275
  # @!attribute [rw] read_write
265
276
  # @return [Google::Datastore::V1::TransactionOptions::ReadWrite]
266
277
  # The transaction should allow both reads and writes.
@@ -34,7 +34,8 @@ module Google
34
34
  #
35
35
  # Foreign partition IDs (in which the project ID does
36
36
  # not match the context project ID ) are discouraged.
37
- # Reads and writes of foreign partition IDs may fail if the project is not in an active state.
37
+ # Reads and writes of foreign partition IDs may fail if the project is not in
38
+ # an active state.
38
39
  # @!attribute [rw] project_id
39
40
  # @return [String]
40
41
  # The ID of the project to which the entities belong.
@@ -128,8 +129,8 @@ module Google
128
129
  # @!attribute [rw] string_value
129
130
  # @return [String]
130
131
  # A UTF-8 encoded string value.
131
- # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
132
- # Otherwise, may be set to at least 1,000,000 bytes.
132
+ # When `exclude_from_indexes` is false (it is indexed) , may have at most
133
+ # 1500 bytes. Otherwise, may be set to at least 1,000,000 bytes.
133
134
  # @!attribute [rw] blob_value
134
135
  # @return [String]
135
136
  # A blob value.
@@ -25,12 +25,12 @@ module Google
25
25
  # The version of the entity, a strictly positive number that monotonically
26
26
  # increases with changes to the entity.
27
27
  #
28
- # This field is set for {Google::Datastore::V1::EntityResult::ResultType::FULL `FULL`} entity
29
- # results.
28
+ # This field is set for
29
+ # {Google::Datastore::V1::EntityResult::ResultType::FULL `FULL`} entity results.
30
30
  #
31
- # For {Google::Datastore::V1::LookupResponse#missing missing} entities in `LookupResponse`, this
32
- # is the version of the snapshot that was used to look up the entity, and it
33
- # is always set except for eventually consistent reads.
31
+ # For {Google::Datastore::V1::LookupResponse#missing missing} entities in
32
+ # `LookupResponse`, this is the version of the snapshot that was used to look
33
+ # up the entity, and it is always set except for eventually consistent reads.
34
34
  # @!attribute [rw] cursor
35
35
  # @return [String]
36
36
  # A cursor that points to the position after the result entity.
@@ -79,12 +79,14 @@ module Google
79
79
  # @return [String]
80
80
  # A starting point for the query results. Query cursors are
81
81
  # returned in query result batches and
82
- # [can only be used to continue the same query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).
82
+ # [can only be used to continue the same
83
+ # query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).
83
84
  # @!attribute [rw] end_cursor
84
85
  # @return [String]
85
86
  # An ending point for the query results. Query cursors are
86
87
  # returned in query result batches and
87
- # [can only be used to limit the same query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).
88
+ # [can only be used to limit the same
89
+ # query](https://cloud.google.com/datastore/docs/concepts/queries#cursors_limits_and_offsets).
88
90
  # @!attribute [rw] offset
89
91
  # @return [Integer]
90
92
  # The number of results to skip. Applies before limit, but after all other
@@ -201,7 +203,8 @@ module Google
201
203
  end
202
204
  end
203
205
 
204
- # A [GQL query](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).
206
+ # A [GQL
207
+ # query](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).
205
208
  # @!attribute [rw] query_string
206
209
  # @return [String]
207
210
  # A string of the format described
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Datastore
19
- VERSION = "1.5.1".freeze
19
+ VERSION = "1.5.2".freeze
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-datastore
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.5.2
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: 2019-02-13 00:00:00.000000000 Z
12
+ date: 2019-04-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-cloud-core
@@ -143,14 +143,14 @@ dependencies:
143
143
  requirements:
144
144
  - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: 0.61.0
146
+ version: 0.64.0
147
147
  type: :development
148
148
  prerelease: false
149
149
  version_requirements: !ruby/object:Gem::Requirement
150
150
  requirements:
151
151
  - - "~>"
152
152
  - !ruby/object:Gem::Version
153
- version: 0.61.0
153
+ version: 0.64.0
154
154
  - !ruby/object:Gem::Dependency
155
155
  name: simplecov
156
156
  requirement: !ruby/object:Gem::Requirement
@@ -264,8 +264,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
264
264
  - !ruby/object:Gem::Version
265
265
  version: '0'
266
266
  requirements: []
267
- rubyforge_project:
268
- rubygems_version: 2.7.6
267
+ rubygems_version: 3.0.3
269
268
  signing_key:
270
269
  specification_version: 4
271
270
  summary: API Client library for Google Cloud Datastore