google-cloud-datastore 1.4.0 → 1.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d5158282d2e12b211e22031224f6f4e18e48e621f824cf21411cf7d4283f3150
4
- data.tar.gz: 88de52c6fab28a2e66ad66dc96867c19b08a665da4eb61d478538472ea83ff27
3
+ metadata.gz: 6677adc0fe54bae8453d609401a902aa2afc5e1231b5ee57a3b75c1d86cdda7e
4
+ data.tar.gz: f8092af4287def66a0ff425150039e5e9a2dae3e38a2f1adcff037700f01c4c7
5
5
  SHA512:
6
- metadata.gz: 38d06cae20a6f5ed9125af1aa2a2314d18290608fe0dbf810c3cdea855ca615fb1de64ccb05e04c16a5fc63acd3786fc4fc24c25d8cba5238c38137785662fda
7
- data.tar.gz: 411b854b3f2f1f05d274da447b3779b79b19ba2831db349d52bf139bbdda1cc72750c530764ba586da9ae0ebe4b51ae0a040853494d3b327942a6e719a11e0dc
6
+ metadata.gz: 9690a8f334e5b29a2d18e89420f0adb787b0b5a2b3f5b2c36e8bb7fb4087b566848ed2cb8fff800fe932e60b8225702fe469f6b99e8e1945614a7fbd175705c8
7
+ data.tar.gz: 77b81d3cab09c0bfe41b2b644f8b7932835a6a0731c90d6f22127a99952703a0ab11b899e1e26ec26a6118ed15d9d8e42d33e2c7f5afef14b33e06927a9d973d
data/.yardopts CHANGED
@@ -1,7 +1,8 @@
1
1
  --no-private
2
2
  --title=Google Cloud Datastore
3
- --exclude lib/google/datastore/v1
3
+ --exclude _pb\.rb$
4
4
  --markup markdown
5
+ --markup-provider redcarpet
5
6
 
6
7
  ./lib/**/*.rb
7
8
  -
data/README.md CHANGED
@@ -47,9 +47,38 @@ query = datastore.query("Task").
47
47
  tasks = datastore.run query
48
48
  ```
49
49
 
50
+ ## Enabling Logging
51
+
52
+ To enable logging for this library, set the logger for the underlying [gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) library. The logger that you set may be a Ruby stdlib [`Logger`](https://ruby-doc.org/stdlib-2.5.0/libdoc/logger/rdoc/Logger.html) as shown below, or a [`Google::Cloud::Logging::Logger`](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-logging/latest/google/cloud/logging/logger) that will write logs to [Stackdriver Logging](https://cloud.google.com/logging/). See [grpc/logconfig.rb](https://github.com/grpc/grpc/blob/master/src/ruby/lib/grpc/logconfig.rb) and the gRPC [spec_helper.rb](https://github.com/grpc/grpc/blob/master/src/ruby/spec/spec_helper.rb) for additional information.
53
+
54
+ Configuring a Ruby stdlib logger:
55
+
56
+ ```ruby
57
+ require "logger"
58
+
59
+ module MyLogger
60
+ LOGGER = Logger.new $stderr, level: Logger::WARN
61
+ def logger
62
+ LOGGER
63
+ end
64
+ end
65
+
66
+ # Define a gRPC module-level logger method before grpc/logconfig.rb loads.
67
+ module GRPC
68
+ extend MyLogger
69
+ end
70
+ ```
71
+
50
72
  ## Supported Ruby Versions
51
73
 
52
- This library is supported on Ruby 2.0+.
74
+ This library is supported on Ruby 2.3+.
75
+
76
+ Google provides official support for Ruby versions that are actively supported
77
+ by Ruby Core—that is, Ruby versions that are either in normal maintenance or
78
+ in security maintenance, and not end of life. Currently, this means Ruby 2.3
79
+ and later. Older versions of Ruby _may_ still work, but are unsupported and not
80
+ recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details
81
+ about the Ruby support schedule.
53
82
 
54
83
  ## Versioning
55
84
 
@@ -61,6 +61,39 @@ module Google
61
61
  # [Google Cloud Datastore Concepts Overview
62
62
  # ](https://cloud.google.com/datastore/docs/concepts/overview).
63
63
  #
64
+ # ## Enabling Logging
65
+ #
66
+ # To enable logging for this library, set the logger for the underlying
67
+ # [gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) library. The
68
+ # logger that you set may be a Ruby stdlib
69
+ # [`Logger`](https://ruby-doc.org/stdlib-2.5.0/libdoc/logger/rdoc/Logger.html)
70
+ # as shown below, or a
71
+ # [`Google::Cloud::Logging::Logger`](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-logging/latest/google/cloud/logging/logger)
72
+ # that will write logs to [Stackdriver
73
+ # Logging](https://cloud.google.com/logging/). See
74
+ # [grpc/logconfig.rb](https://github.com/grpc/grpc/blob/master/src/ruby/lib/grpc/logconfig.rb)
75
+ # and the gRPC
76
+ # [spec_helper.rb](https://github.com/grpc/grpc/blob/master/src/ruby/spec/spec_helper.rb)
77
+ # for additional information.
78
+ #
79
+ # Configuring a Ruby stdlib logger:
80
+ #
81
+ # ```ruby
82
+ # require "logger"
83
+ #
84
+ # module MyLogger
85
+ # LOGGER = Logger.new $stderr, level: Logger::WARN
86
+ # def logger
87
+ # LOGGER
88
+ # end
89
+ # end
90
+ #
91
+ # # Define a gRPC module-level logger method before grpc/logconfig.rb loads.
92
+ # module GRPC
93
+ # extend MyLogger
94
+ # end
95
+ # ```
96
+ #
64
97
  # ## Retrieving records
65
98
  #
66
99
  # Records, called "entities" in Datastore, are retrieved by using a key.
@@ -14,6 +14,7 @@
14
14
 
15
15
 
16
16
  require "googleauth"
17
+ require "google/cloud/datastore/v1/credentials"
17
18
 
18
19
  module Google
19
20
  module Cloud
@@ -37,20 +38,7 @@ module Google
37
38
  #
38
39
  # datastore.project_id #=> "my-todo-project"
39
40
  #
40
- class Credentials < Google::Auth::Credentials
41
- SCOPE = ["https://www.googleapis.com/auth/datastore"].freeze
42
- PATH_ENV_VARS = %w[DATASTORE_CREDENTIALS
43
- DATASTORE_KEYFILE
44
- GOOGLE_CLOUD_CREDENTIALS
45
- GOOGLE_CLOUD_KEYFILE
46
- GCLOUD_KEYFILE].freeze
47
- JSON_ENV_VARS = %w[DATASTORE_CREDENTIALS_JSON
48
- DATASTORE_KEYFILE_JSON
49
- GOOGLE_CLOUD_CREDENTIALS_JSON
50
- GOOGLE_CLOUD_KEYFILE_JSON
51
- GCLOUD_KEYFILE_JSON].freeze
52
- DEFAULT_PATHS = \
53
- ["~/.config/gcloud/application_default_credentials.json"].freeze
41
+ class Credentials < Google::Cloud::Datastore::V1::Credentials
54
42
  end
55
43
  end
56
44
  end
@@ -0,0 +1,38 @@
1
+ # Copyright 2018 Google LLC
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
+ # https://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 "googleauth"
16
+
17
+ module Google
18
+ module Cloud
19
+ module Datastore
20
+ module V1
21
+ class Credentials < Google::Auth::Credentials
22
+ SCOPE = ["https://www.googleapis.com/auth/datastore"].freeze
23
+ PATH_ENV_VARS = %w(DATASTORE_CREDENTIALS
24
+ DATASTORE_KEYFILE
25
+ GOOGLE_CLOUD_CREDENTIALS
26
+ GOOGLE_CLOUD_KEYFILE
27
+ GCLOUD_KEYFILE)
28
+ JSON_ENV_VARS = %w(DATASTORE_CREDENTIALS_JSON
29
+ DATASTORE_KEYFILE_JSON
30
+ GOOGLE_CLOUD_CREDENTIALS_JSON
31
+ GOOGLE_CLOUD_KEYFILE_JSON
32
+ GCLOUD_KEYFILE_JSON)
33
+ DEFAULT_PATHS = ["~/.config/gcloud/application_default_credentials.json"]
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -18,9 +18,6 @@
18
18
  # and updates to that file get reflected here through a refresh process.
19
19
  # For the short term, the refresh process will only be runnable by Google
20
20
  # engineers.
21
- #
22
- # The only allowed edits are to method and file documentation. A 3-way
23
- # merge preserves those additions if the generated source changes.
24
21
 
25
22
  require "json"
26
23
  require "pathname"
@@ -28,7 +25,7 @@ require "pathname"
28
25
  require "google/gax"
29
26
 
30
27
  require "google/datastore/v1/datastore_pb"
31
- require "google/cloud/datastore/credentials"
28
+ require "google/cloud/datastore/v1/credentials"
32
29
 
33
30
  module Google
34
31
  module Cloud
@@ -52,6 +49,9 @@ module Google
52
49
  # The default port of the service.
53
50
  DEFAULT_SERVICE_PORT = 443
54
51
 
52
+ # The default set of gRPC interceptors.
53
+ GRPC_INTERCEPTORS = []
54
+
55
55
  DEFAULT_TIMEOUT = 30
56
56
 
57
57
  # The scopes needed to make gRPC calls to all of the methods defined in
@@ -61,6 +61,7 @@ module Google
61
61
  "https://www.googleapis.com/auth/datastore"
62
62
  ].freeze
63
63
 
64
+
64
65
  # @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
65
66
  # Provides the means for authenticating requests made by the client. This parameter can
66
67
  # be many types.
@@ -85,16 +86,18 @@ module Google
85
86
  # or the specified config is missing data points.
86
87
  # @param timeout [Numeric]
87
88
  # The default timeout, in seconds, for calls made through this client.
89
+ # @param metadata [Hash]
90
+ # Default metadata to be sent with each request. This can be overridden on a per call basis.
91
+ # @param exception_transformer [Proc]
92
+ # An optional proc that intercepts any exceptions raised during an API call to inject
93
+ # custom error handling.
88
94
  def initialize \
89
- service_path: SERVICE_ADDRESS,
90
- port: DEFAULT_SERVICE_PORT,
91
- channel: nil,
92
- chan_creds: nil,
93
- updater_proc: nil,
94
95
  credentials: nil,
95
96
  scopes: ALL_SCOPES,
96
97
  client_config: {},
97
98
  timeout: DEFAULT_TIMEOUT,
99
+ metadata: nil,
100
+ exception_transformer: nil,
98
101
  lib_name: nil,
99
102
  lib_version: ""
100
103
  # These require statements are intentionally placed here to initialize
@@ -103,21 +106,10 @@ module Google
103
106
  require "google/gax/grpc"
104
107
  require "google/datastore/v1/datastore_services_pb"
105
108
 
106
- if channel || chan_creds || updater_proc
107
- warn "The `channel`, `chan_creds`, and `updater_proc` parameters will be removed " \
108
- "on 2017/09/08"
109
- credentials ||= channel
110
- credentials ||= chan_creds
111
- credentials ||= updater_proc
112
- end
113
- if service_path != SERVICE_ADDRESS || port != DEFAULT_SERVICE_PORT
114
- warn "`service_path` and `port` parameters are deprecated and will be removed"
115
- end
116
-
117
- credentials ||= Google::Cloud::Datastore::Credentials.default
109
+ credentials ||= Google::Cloud::Datastore::V1::Credentials.default
118
110
 
119
111
  if credentials.is_a?(String) || credentials.is_a?(Hash)
120
- updater_proc = Google::Cloud::Datastore::Credentials.new(credentials).updater_proc
112
+ updater_proc = Google::Cloud::Datastore::V1::Credentials.new(credentials).updater_proc
121
113
  end
122
114
  if credentials.is_a?(GRPC::Core::Channel)
123
115
  channel = credentials
@@ -132,13 +124,16 @@ module Google
132
124
  updater_proc = credentials.updater_proc
133
125
  end
134
126
 
127
+ package_version = Gem.loaded_specs['google-cloud-datastore'].version.version
128
+
135
129
  google_api_client = "gl-ruby/#{RUBY_VERSION}"
136
130
  google_api_client << " #{lib_name}/#{lib_version}" if lib_name
137
- google_api_client << " gapic/0.1.0 gax/#{Google::Gax::VERSION}"
131
+ google_api_client << " gapic/#{package_version} gax/#{Google::Gax::VERSION}"
138
132
  google_api_client << " grpc/#{GRPC::VERSION}"
139
133
  google_api_client.freeze
140
134
 
141
135
  headers = { :"x-goog-api-client" => google_api_client }
136
+ headers.merge!(metadata) unless metadata.nil?
142
137
  client_config_file = Pathname.new(__dir__).join(
143
138
  "datastore_client_config.json"
144
139
  )
@@ -150,9 +145,14 @@ module Google
150
145
  Google::Gax::Grpc::STATUS_CODE_NAMES,
151
146
  timeout,
152
147
  errors: Google::Gax::Grpc::API_ERRORS,
153
- kwargs: headers
148
+ metadata: headers
154
149
  )
155
150
  end
151
+
152
+ # Allow overriding the service path/port in subclasses.
153
+ service_path = self.class::SERVICE_ADDRESS
154
+ port = self.class::DEFAULT_SERVICE_PORT
155
+ interceptors = self.class::GRPC_INTERCEPTORS
156
156
  @datastore_stub = Google::Gax::Grpc.create_stub(
157
157
  service_path,
158
158
  port,
@@ -160,36 +160,44 @@ module Google
160
160
  channel: channel,
161
161
  updater_proc: updater_proc,
162
162
  scopes: scopes,
163
+ interceptors: interceptors,
163
164
  &Google::Datastore::V1::Datastore::Stub.method(:new)
164
165
  )
165
166
 
166
167
  @lookup = Google::Gax.create_api_call(
167
168
  @datastore_stub.method(:lookup),
168
- defaults["lookup"]
169
+ defaults["lookup"],
170
+ exception_transformer: exception_transformer
169
171
  )
170
172
  @run_query = Google::Gax.create_api_call(
171
173
  @datastore_stub.method(:run_query),
172
- defaults["run_query"]
174
+ defaults["run_query"],
175
+ exception_transformer: exception_transformer
173
176
  )
174
177
  @begin_transaction = Google::Gax.create_api_call(
175
178
  @datastore_stub.method(:begin_transaction),
176
- defaults["begin_transaction"]
179
+ defaults["begin_transaction"],
180
+ exception_transformer: exception_transformer
177
181
  )
178
182
  @commit = Google::Gax.create_api_call(
179
183
  @datastore_stub.method(:commit),
180
- defaults["commit"]
184
+ defaults["commit"],
185
+ exception_transformer: exception_transformer
181
186
  )
182
187
  @rollback = Google::Gax.create_api_call(
183
188
  @datastore_stub.method(:rollback),
184
- defaults["rollback"]
189
+ defaults["rollback"],
190
+ exception_transformer: exception_transformer
185
191
  )
186
192
  @allocate_ids = Google::Gax.create_api_call(
187
193
  @datastore_stub.method(:allocate_ids),
188
- defaults["allocate_ids"]
194
+ defaults["allocate_ids"],
195
+ exception_transformer: exception_transformer
189
196
  )
190
197
  @reserve_ids = Google::Gax.create_api_call(
191
198
  @datastore_stub.method(:reserve_ids),
192
- defaults["reserve_ids"]
199
+ defaults["reserve_ids"],
200
+ exception_transformer: exception_transformer
193
201
  )
194
202
  end
195
203
 
@@ -210,13 +218,20 @@ module Google
210
218
  # @param options [Google::Gax::CallOptions]
211
219
  # Overrides the default settings for this call, e.g, timeout,
212
220
  # retries, etc.
221
+ # @yield [result, operation] Access the result along with the RPC operation
222
+ # @yieldparam result [Google::Datastore::V1::LookupResponse]
223
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
213
224
  # @return [Google::Datastore::V1::LookupResponse]
214
225
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
215
226
  # @example
216
- # require "google/cloud/datastore/v1"
227
+ # require "google/cloud/datastore"
228
+ #
229
+ # datastore_client = Google::Cloud::Datastore.new(version: :v1)
217
230
  #
218
- # datastore_client = Google::Cloud::Datastore::V1.new
231
+ # # TODO: Initialize +project_id+:
219
232
  # project_id = ''
233
+ #
234
+ # # TODO: Initialize +keys+:
220
235
  # keys = []
221
236
  # response = datastore_client.lookup(project_id, keys)
222
237
 
@@ -224,14 +239,15 @@ module Google
224
239
  project_id,
225
240
  keys,
226
241
  read_options: nil,
227
- options: nil
242
+ options: nil,
243
+ &block
228
244
  req = {
229
245
  project_id: project_id,
230
246
  keys: keys,
231
247
  read_options: read_options
232
248
  }.delete_if { |_, v| v.nil? }
233
249
  req = Google::Gax::to_proto(req, Google::Datastore::V1::LookupRequest)
234
- @lookup.call(req, options)
250
+ @lookup.call(req, options, &block)
235
251
  end
236
252
 
237
253
  # Queries for entities.
@@ -260,13 +276,20 @@ module Google
260
276
  # @param options [Google::Gax::CallOptions]
261
277
  # Overrides the default settings for this call, e.g, timeout,
262
278
  # retries, etc.
279
+ # @yield [result, operation] Access the result along with the RPC operation
280
+ # @yieldparam result [Google::Datastore::V1::RunQueryResponse]
281
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
263
282
  # @return [Google::Datastore::V1::RunQueryResponse]
264
283
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
265
284
  # @example
266
- # require "google/cloud/datastore/v1"
285
+ # require "google/cloud/datastore"
286
+ #
287
+ # datastore_client = Google::Cloud::Datastore.new(version: :v1)
267
288
  #
268
- # datastore_client = Google::Cloud::Datastore::V1.new
289
+ # # TODO: Initialize +project_id+:
269
290
  # project_id = ''
291
+ #
292
+ # # TODO: Initialize +partition_id+:
270
293
  # partition_id = {}
271
294
  # response = datastore_client.run_query(project_id, partition_id)
272
295
 
@@ -276,7 +299,8 @@ module Google
276
299
  read_options: nil,
277
300
  query: nil,
278
301
  gql_query: nil,
279
- options: nil
302
+ options: nil,
303
+ &block
280
304
  req = {
281
305
  project_id: project_id,
282
306
  partition_id: partition_id,
@@ -285,7 +309,7 @@ module Google
285
309
  gql_query: gql_query
286
310
  }.delete_if { |_, v| v.nil? }
287
311
  req = Google::Gax::to_proto(req, Google::Datastore::V1::RunQueryRequest)
288
- @run_query.call(req, options)
312
+ @run_query.call(req, options, &block)
289
313
  end
290
314
 
291
315
  # Begins a new transaction.
@@ -299,25 +323,31 @@ module Google
299
323
  # @param options [Google::Gax::CallOptions]
300
324
  # Overrides the default settings for this call, e.g, timeout,
301
325
  # retries, etc.
326
+ # @yield [result, operation] Access the result along with the RPC operation
327
+ # @yieldparam result [Google::Datastore::V1::BeginTransactionResponse]
328
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
302
329
  # @return [Google::Datastore::V1::BeginTransactionResponse]
303
330
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
304
331
  # @example
305
- # require "google/cloud/datastore/v1"
332
+ # require "google/cloud/datastore"
333
+ #
334
+ # datastore_client = Google::Cloud::Datastore.new(version: :v1)
306
335
  #
307
- # datastore_client = Google::Cloud::Datastore::V1.new
336
+ # # TODO: Initialize +project_id+:
308
337
  # project_id = ''
309
338
  # response = datastore_client.begin_transaction(project_id)
310
339
 
311
340
  def begin_transaction \
312
341
  project_id,
313
342
  transaction_options: nil,
314
- options: nil
343
+ options: nil,
344
+ &block
315
345
  req = {
316
346
  project_id: project_id,
317
347
  transaction_options: transaction_options
318
348
  }.delete_if { |_, v| v.nil? }
319
349
  req = Google::Gax::to_proto(req, Google::Datastore::V1::BeginTransactionRequest)
320
- @begin_transaction.call(req, options)
350
+ @begin_transaction.call(req, options, &block)
321
351
  end
322
352
 
323
353
  # Commits a transaction, optionally creating, deleting or modifying some
@@ -350,14 +380,23 @@ module Google
350
380
  # @param options [Google::Gax::CallOptions]
351
381
  # Overrides the default settings for this call, e.g, timeout,
352
382
  # retries, etc.
383
+ # @yield [result, operation] Access the result along with the RPC operation
384
+ # @yieldparam result [Google::Datastore::V1::CommitResponse]
385
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
353
386
  # @return [Google::Datastore::V1::CommitResponse]
354
387
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
355
388
  # @example
356
- # require "google/cloud/datastore/v1"
389
+ # require "google/cloud/datastore"
390
+ #
391
+ # datastore_client = Google::Cloud::Datastore.new(version: :v1)
357
392
  #
358
- # datastore_client = Google::Cloud::Datastore::V1.new
393
+ # # TODO: Initialize +project_id+:
359
394
  # project_id = ''
395
+ #
396
+ # # TODO: Initialize +mode+:
360
397
  # mode = :MODE_UNSPECIFIED
398
+ #
399
+ # # TODO: Initialize +mutations+:
361
400
  # mutations = []
362
401
  # response = datastore_client.commit(project_id, mode, mutations)
363
402
 
@@ -366,7 +405,8 @@ module Google
366
405
  mode,
367
406
  mutations,
368
407
  transaction: nil,
369
- options: nil
408
+ options: nil,
409
+ &block
370
410
  req = {
371
411
  project_id: project_id,
372
412
  mode: mode,
@@ -374,7 +414,7 @@ module Google
374
414
  transaction: transaction
375
415
  }.delete_if { |_, v| v.nil? }
376
416
  req = Google::Gax::to_proto(req, Google::Datastore::V1::CommitRequest)
377
- @commit.call(req, options)
417
+ @commit.call(req, options, &block)
378
418
  end
379
419
 
380
420
  # Rolls back a transaction.
@@ -387,26 +427,34 @@ module Google
387
427
  # @param options [Google::Gax::CallOptions]
388
428
  # Overrides the default settings for this call, e.g, timeout,
389
429
  # retries, etc.
430
+ # @yield [result, operation] Access the result along with the RPC operation
431
+ # @yieldparam result [Google::Datastore::V1::RollbackResponse]
432
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
390
433
  # @return [Google::Datastore::V1::RollbackResponse]
391
434
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
392
435
  # @example
393
- # require "google/cloud/datastore/v1"
436
+ # require "google/cloud/datastore"
437
+ #
438
+ # datastore_client = Google::Cloud::Datastore.new(version: :v1)
394
439
  #
395
- # datastore_client = Google::Cloud::Datastore::V1.new
440
+ # # TODO: Initialize +project_id+:
396
441
  # project_id = ''
442
+ #
443
+ # # TODO: Initialize +transaction+:
397
444
  # transaction = ''
398
445
  # response = datastore_client.rollback(project_id, transaction)
399
446
 
400
447
  def rollback \
401
448
  project_id,
402
449
  transaction,
403
- options: nil
450
+ options: nil,
451
+ &block
404
452
  req = {
405
453
  project_id: project_id,
406
454
  transaction: transaction
407
455
  }.delete_if { |_, v| v.nil? }
408
456
  req = Google::Gax::to_proto(req, Google::Datastore::V1::RollbackRequest)
409
- @rollback.call(req, options)
457
+ @rollback.call(req, options, &block)
410
458
  end
411
459
 
412
460
  # Allocates IDs for the given keys, which is useful for referencing an entity
@@ -422,26 +470,34 @@ module Google
422
470
  # @param options [Google::Gax::CallOptions]
423
471
  # Overrides the default settings for this call, e.g, timeout,
424
472
  # retries, etc.
473
+ # @yield [result, operation] Access the result along with the RPC operation
474
+ # @yieldparam result [Google::Datastore::V1::AllocateIdsResponse]
475
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
425
476
  # @return [Google::Datastore::V1::AllocateIdsResponse]
426
477
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
427
478
  # @example
428
- # require "google/cloud/datastore/v1"
479
+ # require "google/cloud/datastore"
480
+ #
481
+ # datastore_client = Google::Cloud::Datastore.new(version: :v1)
429
482
  #
430
- # datastore_client = Google::Cloud::Datastore::V1.new
483
+ # # TODO: Initialize +project_id+:
431
484
  # project_id = ''
485
+ #
486
+ # # TODO: Initialize +keys+:
432
487
  # keys = []
433
488
  # response = datastore_client.allocate_ids(project_id, keys)
434
489
 
435
490
  def allocate_ids \
436
491
  project_id,
437
492
  keys,
438
- options: nil
493
+ options: nil,
494
+ &block
439
495
  req = {
440
496
  project_id: project_id,
441
497
  keys: keys
442
498
  }.delete_if { |_, v| v.nil? }
443
499
  req = Google::Gax::to_proto(req, Google::Datastore::V1::AllocateIdsRequest)
444
- @allocate_ids.call(req, options)
500
+ @allocate_ids.call(req, options, &block)
445
501
  end
446
502
 
447
503
  # Prevents the supplied keys' IDs from being auto-allocated by Cloud
@@ -459,13 +515,20 @@ module Google
459
515
  # @param options [Google::Gax::CallOptions]
460
516
  # Overrides the default settings for this call, e.g, timeout,
461
517
  # retries, etc.
518
+ # @yield [result, operation] Access the result along with the RPC operation
519
+ # @yieldparam result [Google::Datastore::V1::ReserveIdsResponse]
520
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
462
521
  # @return [Google::Datastore::V1::ReserveIdsResponse]
463
522
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
464
523
  # @example
465
- # require "google/cloud/datastore/v1"
524
+ # require "google/cloud/datastore"
466
525
  #
467
- # datastore_client = Google::Cloud::Datastore::V1.new
526
+ # datastore_client = Google::Cloud::Datastore.new(version: :v1)
527
+ #
528
+ # # TODO: Initialize +project_id+:
468
529
  # project_id = ''
530
+ #
531
+ # # TODO: Initialize +keys+:
469
532
  # keys = []
470
533
  # response = datastore_client.reserve_ids(project_id, keys)
471
534
 
@@ -473,14 +536,15 @@ module Google
473
536
  project_id,
474
537
  keys,
475
538
  database_id: nil,
476
- options: nil
539
+ options: nil,
540
+ &block
477
541
  req = {
478
542
  project_id: project_id,
479
543
  keys: keys,
480
544
  database_id: database_id
481
545
  }.delete_if { |_, v| v.nil? }
482
546
  req = Google::Gax::to_proto(req, Google::Datastore::V1::ReserveIdsRequest)
483
- @reserve_ids.call(req, options)
547
+ @reserve_ids.call(req, options, &block)
484
548
  end
485
549
  end
486
550
  end
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -14,17 +14,6 @@
14
14
 
15
15
  module Google
16
16
  module Datastore
17
- ##
18
- # # Google Cloud Datastore API Contents
19
- #
20
- # | Class | Description |
21
- # | ----- | ----------- |
22
- # | [DatastoreClient][] | Accesses the schemaless NoSQL database to provide fully managed, robust, scalable storage for your application. |
23
- # | [Data Types][] | Data types for Google::Cloud::Datastore::V1 |
24
- #
25
- # [DatastoreClient]: https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-datastore/latest/google/datastore/v1/datastoreclient
26
- # [Data Types]: https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-datastore/latest/google/datastore/v1/datatypes
27
- #
28
17
  module V1
29
18
  # The request for {Google::Datastore::V1::Datastore::Lookup Datastore::Lookup}.
30
19
  # @!attribute [rw] project_id
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Datastore
19
- VERSION = "1.4.0".freeze
19
+ VERSION = "1.4.1".freeze
20
20
  end
21
21
  end
22
22
  end
@@ -1,13 +1,13 @@
1
1
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
2
  # Source: google/datastore/v1/datastore.proto for package 'google.datastore.v1'
3
3
  # Original file comments:
4
- # Copyright 2017 Google Inc.
4
+ # Copyright 2018 Google Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
8
8
  # You may obtain a copy of the License at
9
9
  #
10
- # https://www.apache.org/licenses/LICENSE-2.0
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
11
  #
12
12
  # Unless required by applicable law or agreed to in writing, software
13
13
  # distributed under the License is distributed on an "AS IS" BASIS,
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.4.0
4
+ version: 1.4.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: 2018-02-27 00:00:00.000000000 Z
12
+ date: 2018-08-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-cloud-core
@@ -123,6 +123,20 @@ dependencies:
123
123
  - - "~>"
124
124
  - !ruby/object:Gem::Version
125
125
  version: '1.1'
126
+ - !ruby/object:Gem::Dependency
127
+ name: redcarpet
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '3.0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '3.0'
126
140
  - !ruby/object:Gem::Dependency
127
141
  name: rubocop
128
142
  requirement: !ruby/object:Gem::Requirement
@@ -209,13 +223,13 @@ files:
209
223
  - lib/google/cloud/datastore/service.rb
210
224
  - lib/google/cloud/datastore/transaction.rb
211
225
  - lib/google/cloud/datastore/v1.rb
226
+ - lib/google/cloud/datastore/v1/credentials.rb
212
227
  - lib/google/cloud/datastore/v1/datastore_client.rb
213
228
  - lib/google/cloud/datastore/v1/datastore_client_config.json
214
229
  - lib/google/cloud/datastore/v1/doc/google/datastore/v1/datastore.rb
215
230
  - lib/google/cloud/datastore/v1/doc/google/datastore/v1/entity.rb
216
231
  - lib/google/cloud/datastore/v1/doc/google/datastore/v1/query.rb
217
232
  - lib/google/cloud/datastore/v1/doc/google/protobuf/wrappers.rb
218
- - lib/google/cloud/datastore/v1/doc/overview.rb
219
233
  - lib/google/cloud/datastore/version.rb
220
234
  - lib/google/datastore/v1/datastore_pb.rb
221
235
  - lib/google/datastore/v1/datastore_services_pb.rb
@@ -241,7 +255,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
241
255
  version: '0'
242
256
  requirements: []
243
257
  rubyforge_project:
244
- rubygems_version: 2.7.6
258
+ rubygems_version: 2.7.7
245
259
  signing_key:
246
260
  specification_version: 4
247
261
  summary: API Client library for Google Cloud Datastore
@@ -1,54 +0,0 @@
1
- # Copyright 2017 Google LLC
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
- # https://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
- module Google
16
- module Cloud
17
- # rubocop:disable LineLength
18
-
19
- ##
20
- # # Ruby Client for Google Cloud Datastore API ([Alpha](https://github.com/GoogleCloudPlatform/google-cloud-ruby#versioning))
21
- #
22
- # [Google Cloud Datastore API][Product Documentation]:
23
- # Accesses the schemaless NoSQL database to provide fully managed, robust,
24
- # scalable storage for your application.
25
- # - [Product Documentation][]
26
- #
27
- # ## Quick Start
28
- # In order to use this library, you first need to go through the following
29
- # steps:
30
- #
31
- # 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
32
- # 2. [Enable the Google Cloud Datastore API.](https://console.cloud.google.com/apis/api/datastore)
33
- # 3. [Setup Authentication.](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud/master/guides/authentication)
34
- #
35
- # ### Installation
36
- # ```
37
- # $ gem install google-cloud-datastore
38
- # ```
39
- #
40
- # ### Next Steps
41
- # - Read the [Google Cloud Datastore API Product documentation][Product Documentation]
42
- # to learn more about the product and see How-to Guides.
43
- # - View this [repository's main README](https://github.com/GoogleCloudPlatform/google-cloud-ruby/blob/master/README.md)
44
- # to see the full list of Cloud APIs that we cover.
45
- #
46
- # [Product Documentation]: https://cloud.google.com/datastore
47
- #
48
- #
49
- module Datastore
50
- module V1
51
- end
52
- end
53
- end
54
- end