google-cloud-datastore 0.23.0 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.yardopts +1 -0
- data/lib/google/cloud/datastore.rb +6 -3
- data/lib/google/cloud/datastore/{grpc_utils.rb → convert.rb} +45 -7
- data/lib/google/cloud/datastore/cursor.rb +2 -2
- data/lib/google/cloud/datastore/dataset.rb +1 -1
- data/lib/google/cloud/datastore/gql_query.rb +4 -4
- data/lib/google/cloud/datastore/properties.rb +4 -4
- data/lib/google/cloud/datastore/query.rb +3 -3
- data/lib/google/cloud/datastore/v1/datastore_client_config.json +0 -2
- data/lib/google/cloud/datastore/version.rb +1 -1
- metadata +10 -52
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 007a60b36f840de3463b248b7eac389ca43d6dc1
|
4
|
+
data.tar.gz: d53a54ae030e78ae23bb8452565f86230be64720
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ec35a2806d9b5c437c963d8028e9222b5c9ceeed9ed2a455e7c6e6deb24aed24db09b102e29e89d6dc59bd0133cb0088cfd1fbe051766a2e5f6a9cb7d697731
|
7
|
+
data.tar.gz: 2459ba10bf82755451235dee9470ce3afef8ea5a56d09316812fd98f87af0667c3aaa9b7848ad82f212911239cc82e9d8967750ca236527630564473a41cac74
|
data/.yardopts
CHANGED
@@ -545,6 +545,8 @@ module Google
|
|
545
545
|
# @param [Integer] timeout Default timeout to use in requests. Optional.
|
546
546
|
# @param [Hash] client_config A hash of values to override the default
|
547
547
|
# behavior of the API client. See Google::Gax::CallSettings. Optional.
|
548
|
+
# @param [String] emulator_host Datastore emulator host. Optional.
|
549
|
+
# If the param is nil, ENV["DATASTORE_EMULATOR_HOST"] will be used.
|
548
550
|
#
|
549
551
|
# @return [Google::Cloud::Datastore::Dataset]
|
550
552
|
#
|
@@ -566,16 +568,17 @@ module Google
|
|
566
568
|
# datastore.save task
|
567
569
|
#
|
568
570
|
def self.new project: nil, keyfile: nil, scope: nil, timeout: nil,
|
569
|
-
client_config: nil
|
571
|
+
client_config: nil, emulator_host: nil
|
570
572
|
project ||= Google::Cloud::Datastore::Dataset.default_project
|
571
573
|
project = project.to_s # Always cast to a string
|
572
574
|
fail ArgumentError, "project is missing" if project.empty?
|
573
575
|
|
574
|
-
|
576
|
+
emulator_host ||= ENV["DATASTORE_EMULATOR_HOST"]
|
577
|
+
if emulator_host
|
575
578
|
return Google::Cloud::Datastore::Dataset.new(
|
576
579
|
Google::Cloud::Datastore::Service.new(
|
577
580
|
project, :this_channel_is_insecure,
|
578
|
-
host:
|
581
|
+
host: emulator_host,
|
579
582
|
client_config: client_config))
|
580
583
|
end
|
581
584
|
credentials = credentials_with_scope keyfile, scope
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
1
|
+
# Copyright 2017 Google Inc. All rights reserved.
|
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.
|
@@ -13,19 +13,56 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
|
16
|
-
require "google/cloud/core/grpc_utils"
|
17
16
|
require "google/cloud/datastore/errors"
|
18
17
|
require "stringio"
|
19
18
|
require "base64"
|
20
19
|
|
21
20
|
module Google
|
22
21
|
module Cloud
|
23
|
-
module
|
22
|
+
module Datastore
|
23
|
+
# rubocop:disable all
|
24
|
+
|
24
25
|
##
|
25
26
|
# @private Conversion to/from Datastore GRPC objects.
|
26
|
-
|
27
|
-
|
28
|
-
#
|
27
|
+
module Convert
|
28
|
+
##
|
29
|
+
# @private Convert a Google::Protobuf::Struct to a Hash.
|
30
|
+
def self.struct_to_hash struct
|
31
|
+
# TODO: ArgumentError if struct is not a Google::Protobuf::Struct
|
32
|
+
Hash[struct.fields.map { |k, v| [k, value_to_object(v)] }]
|
33
|
+
end
|
34
|
+
|
35
|
+
##
|
36
|
+
# @private Convert a Google::Protobuf::Value to an Object.
|
37
|
+
def self.value_to_object value
|
38
|
+
# TODO: ArgumentError if struct is not a Google::Protobuf::Value
|
39
|
+
if value.kind == :null_value
|
40
|
+
nil
|
41
|
+
elsif value.kind == :number_value
|
42
|
+
value.number_value
|
43
|
+
elsif value.kind == :string_value
|
44
|
+
value.string_value
|
45
|
+
elsif value.kind == :bool_value
|
46
|
+
value.bool_value
|
47
|
+
elsif value.kind == :struct_value
|
48
|
+
struct_to_hash value.struct_value
|
49
|
+
elsif value.kind == :list_value
|
50
|
+
value.list_value.values.map { |v| value_to_object(v) }
|
51
|
+
else
|
52
|
+
nil # just in case
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
##
|
57
|
+
# @private Convert a Google::Protobuf::Map to a Hash
|
58
|
+
def self.map_to_hash map
|
59
|
+
if map.respond_to? :to_h
|
60
|
+
map.to_h
|
61
|
+
else
|
62
|
+
# Enumerable doesn't have to_h on ruby 2.0...
|
63
|
+
Hash[map.to_a]
|
64
|
+
end
|
65
|
+
end
|
29
66
|
|
30
67
|
PROP_FILTER_OPS = { "<" => :LESS_THAN,
|
31
68
|
"lt" => :LESS_THAN,
|
@@ -133,8 +170,9 @@ module Google
|
|
133
170
|
def self.decode_bytes bytes
|
134
171
|
Base64.decode64(bytes.to_s).force_encoding Encoding::ASCII_8BIT
|
135
172
|
end
|
136
|
-
# rubocop:enable all
|
137
173
|
end
|
174
|
+
|
175
|
+
# rubocop:enable all
|
138
176
|
end
|
139
177
|
end
|
140
178
|
end
|
@@ -63,14 +63,14 @@ module Google
|
|
63
63
|
|
64
64
|
# @private byte array as a string
|
65
65
|
def to_grpc
|
66
|
-
|
66
|
+
Convert.decode_bytes(@cursor)
|
67
67
|
end
|
68
68
|
|
69
69
|
# @private byte array as a string
|
70
70
|
def self.from_grpc grpc
|
71
71
|
grpc = String grpc
|
72
72
|
return nil if grpc.empty?
|
73
|
-
new
|
73
|
+
new Convert.encode_bytes(grpc)
|
74
74
|
end
|
75
75
|
end
|
76
76
|
end
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
require "google/cloud/core/environment"
|
17
|
-
require "google/cloud/datastore/
|
17
|
+
require "google/cloud/datastore/convert"
|
18
18
|
require "google/cloud/datastore/credentials"
|
19
19
|
require "google/cloud/datastore/service"
|
20
20
|
require "google/cloud/datastore/commit"
|
@@ -131,7 +131,7 @@ module Google
|
|
131
131
|
if gql_query_param.parameter_type == :cursor
|
132
132
|
[name, Cursor.from_grpc(gql_query_param.cursor)]
|
133
133
|
else
|
134
|
-
[name,
|
134
|
+
[name, Convert.from_value(gql_query_param.value)]
|
135
135
|
end
|
136
136
|
end]
|
137
137
|
bindings.freeze
|
@@ -164,7 +164,7 @@ module Google
|
|
164
164
|
else
|
165
165
|
@grpc.named_bindings[name.to_s] = \
|
166
166
|
Google::Datastore::V1::GqlQueryParameter.new(
|
167
|
-
value:
|
167
|
+
value: Convert.to_value(value))
|
168
168
|
end
|
169
169
|
end
|
170
170
|
end
|
@@ -181,7 +181,7 @@ module Google
|
|
181
181
|
if gql_query_param.parameter_type == :cursor
|
182
182
|
Cursor.from_grpc gql_query_param.cursor
|
183
183
|
else
|
184
|
-
|
184
|
+
Convert.from_value gql_query_param.value
|
185
185
|
end
|
186
186
|
end
|
187
187
|
bindings.freeze
|
@@ -213,7 +213,7 @@ module Google
|
|
213
213
|
else
|
214
214
|
@grpc.positional_bindings << \
|
215
215
|
Google::Datastore::V1::GqlQueryParameter.new(
|
216
|
-
value:
|
216
|
+
value: Convert.to_value(value))
|
217
217
|
end
|
218
218
|
end
|
219
219
|
end
|
@@ -73,15 +73,15 @@ module Google
|
|
73
73
|
alias_method :to_hash, :to_h
|
74
74
|
|
75
75
|
def to_grpc
|
76
|
-
Hash[@hash.map { |(k, v)| [k.to_s,
|
76
|
+
Hash[@hash.map { |(k, v)| [k.to_s, Convert.to_value(v)] }]
|
77
77
|
end
|
78
78
|
|
79
79
|
def self.from_grpc grpc_map
|
80
80
|
# For some reason Google::Protobuf::Map#map isn't returning the value.
|
81
81
|
# It returns nil every time. COnvert to Hash to get actual objects.
|
82
|
-
grpc_hash =
|
82
|
+
grpc_hash = Convert.map_to_hash grpc_map
|
83
83
|
grpc_array = grpc_hash.map do |(k, v)|
|
84
|
-
[k.to_s,
|
84
|
+
[k.to_s, Convert.from_value(v)]
|
85
85
|
end
|
86
86
|
new Hash[grpc_array]
|
87
87
|
end
|
@@ -97,7 +97,7 @@ module Google
|
|
97
97
|
end
|
98
98
|
|
99
99
|
# rubocop:disable all
|
100
|
-
# Disabled rubocop because this needs to match
|
100
|
+
# Disabled rubocop because this needs to match Convert.to_value
|
101
101
|
|
102
102
|
##
|
103
103
|
# Ensures the value is a type that can be persisted,
|
@@ -177,8 +177,8 @@ module Google
|
|
177
177
|
property_filter: Google::Datastore::V1::PropertyFilter.new(
|
178
178
|
property: Google::Datastore::V1::PropertyReference.new(
|
179
179
|
name: name),
|
180
|
-
op:
|
181
|
-
value:
|
180
|
+
op: Convert.to_prop_filter_op(operator),
|
181
|
+
value: Convert.to_value(value)
|
182
182
|
)
|
183
183
|
)
|
184
184
|
|
@@ -331,7 +331,7 @@ module Google
|
|
331
331
|
if cursor.is_a? Cursor
|
332
332
|
@grpc.start_cursor = cursor.to_grpc
|
333
333
|
elsif cursor.is_a? String
|
334
|
-
@grpc.start_cursor =
|
334
|
+
@grpc.start_cursor = Convert.decode_bytes cursor
|
335
335
|
else
|
336
336
|
fail ArgumentError, "Can't set a cursor using a #{cursor.class}."
|
337
337
|
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: 0.
|
4
|
+
version: 0.24.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Moore
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2017-02-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: google-cloud-core
|
@@ -25,76 +25,34 @@ dependencies:
|
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 0.21.0
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: grpc
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - "~>"
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '1.0'
|
35
|
-
type: :runtime
|
36
|
-
prerelease: false
|
37
|
-
version_requirements: !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - "~>"
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: '1.0'
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: google-protobuf
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
45
|
-
requirements:
|
46
|
-
- - "~>"
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: '3.0'
|
49
|
-
type: :runtime
|
50
|
-
prerelease: false
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - "~>"
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: '3.0'
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: googleapis-common-protos
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - "~>"
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '1.3'
|
63
|
-
type: :runtime
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - "~>"
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '1.3'
|
70
28
|
- !ruby/object:Gem::Dependency
|
71
29
|
name: google-gax
|
72
30
|
requirement: !ruby/object:Gem::Requirement
|
73
31
|
requirements:
|
74
32
|
- - "~>"
|
75
33
|
- !ruby/object:Gem::Version
|
76
|
-
version: 0.
|
34
|
+
version: 0.8.0
|
77
35
|
type: :runtime
|
78
36
|
prerelease: false
|
79
37
|
version_requirements: !ruby/object:Gem::Requirement
|
80
38
|
requirements:
|
81
39
|
- - "~>"
|
82
40
|
- !ruby/object:Gem::Version
|
83
|
-
version: 0.
|
41
|
+
version: 0.8.0
|
84
42
|
- !ruby/object:Gem::Dependency
|
85
43
|
name: minitest
|
86
44
|
requirement: !ruby/object:Gem::Requirement
|
87
45
|
requirements:
|
88
46
|
- - "~>"
|
89
47
|
- !ruby/object:Gem::Version
|
90
|
-
version: '5.
|
48
|
+
version: '5.10'
|
91
49
|
type: :development
|
92
50
|
prerelease: false
|
93
51
|
version_requirements: !ruby/object:Gem::Requirement
|
94
52
|
requirements:
|
95
53
|
- - "~>"
|
96
54
|
- !ruby/object:Gem::Version
|
97
|
-
version: '5.
|
55
|
+
version: '5.10'
|
98
56
|
- !ruby/object:Gem::Dependency
|
99
57
|
name: minitest-autotest
|
100
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -197,14 +155,14 @@ dependencies:
|
|
197
155
|
name: yard-doctest
|
198
156
|
requirement: !ruby/object:Gem::Requirement
|
199
157
|
requirements:
|
200
|
-
- - "
|
158
|
+
- - "<="
|
201
159
|
- !ruby/object:Gem::Version
|
202
160
|
version: 0.1.8
|
203
161
|
type: :development
|
204
162
|
prerelease: false
|
205
163
|
version_requirements: !ruby/object:Gem::Requirement
|
206
164
|
requirements:
|
207
|
-
- - "
|
165
|
+
- - "<="
|
208
166
|
- !ruby/object:Gem::Version
|
209
167
|
version: 0.1.8
|
210
168
|
description: google-cloud-datastore is the official library for Google Cloud Datastore.
|
@@ -221,6 +179,7 @@ files:
|
|
221
179
|
- lib/google-cloud-datastore.rb
|
222
180
|
- lib/google/cloud/datastore.rb
|
223
181
|
- lib/google/cloud/datastore/commit.rb
|
182
|
+
- lib/google/cloud/datastore/convert.rb
|
224
183
|
- lib/google/cloud/datastore/credentials.rb
|
225
184
|
- lib/google/cloud/datastore/cursor.rb
|
226
185
|
- lib/google/cloud/datastore/dataset.rb
|
@@ -229,7 +188,6 @@ files:
|
|
229
188
|
- lib/google/cloud/datastore/entity.rb
|
230
189
|
- lib/google/cloud/datastore/errors.rb
|
231
190
|
- lib/google/cloud/datastore/gql_query.rb
|
232
|
-
- lib/google/cloud/datastore/grpc_utils.rb
|
233
191
|
- lib/google/cloud/datastore/key.rb
|
234
192
|
- lib/google/cloud/datastore/properties.rb
|
235
193
|
- lib/google/cloud/datastore/query.rb
|
@@ -267,7 +225,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
267
225
|
version: '0'
|
268
226
|
requirements: []
|
269
227
|
rubyforge_project:
|
270
|
-
rubygems_version: 2.
|
228
|
+
rubygems_version: 2.6.10
|
271
229
|
signing_key:
|
272
230
|
specification_version: 4
|
273
231
|
summary: API Client library for Google Cloud Datastore
|