gcloud 0.6.3 → 0.7.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 +8 -8
- data/AUTHENTICATION.md +13 -9
- data/CHANGELOG.md +8 -3
- data/OVERVIEW.md +46 -8
- data/lib/gcloud.rb +123 -117
- data/lib/gcloud/backoff.rb +43 -15
- data/lib/gcloud/bigquery.rb +211 -195
- data/lib/gcloud/bigquery/connection.rb +9 -9
- data/lib/gcloud/bigquery/copy_job.rb +15 -16
- data/lib/gcloud/bigquery/credentials.rb +3 -3
- data/lib/gcloud/bigquery/data.rb +12 -11
- data/lib/gcloud/bigquery/dataset.rb +162 -216
- data/lib/gcloud/bigquery/dataset/access.rb +59 -43
- data/lib/gcloud/bigquery/dataset/list.rb +3 -3
- data/lib/gcloud/bigquery/errors.rb +9 -5
- data/lib/gcloud/bigquery/extract_job.rb +18 -18
- data/lib/gcloud/bigquery/insert_response.rb +7 -4
- data/lib/gcloud/bigquery/job.rb +48 -44
- data/lib/gcloud/bigquery/job/list.rb +3 -3
- data/lib/gcloud/bigquery/load_job.rb +24 -25
- data/lib/gcloud/bigquery/project.rb +145 -204
- data/lib/gcloud/bigquery/query_data.rb +10 -9
- data/lib/gcloud/bigquery/query_job.rb +23 -32
- data/lib/gcloud/bigquery/table.rb +238 -280
- data/lib/gcloud/bigquery/table/list.rb +3 -3
- data/lib/gcloud/bigquery/table/schema.rb +79 -87
- data/lib/gcloud/bigquery/view.rb +69 -82
- data/lib/gcloud/credentials.rb +3 -9
- data/lib/gcloud/datastore.rb +194 -170
- data/lib/gcloud/datastore/connection.rb +12 -8
- data/lib/gcloud/datastore/credentials.rb +6 -4
- data/lib/gcloud/datastore/dataset.rb +74 -141
- data/lib/gcloud/datastore/dataset/lookup_results.rb +6 -4
- data/lib/gcloud/datastore/dataset/query_results.rb +6 -4
- data/lib/gcloud/datastore/entity.rb +81 -76
- data/lib/gcloud/datastore/errors.rb +10 -8
- data/lib/gcloud/datastore/key.rb +41 -77
- data/lib/gcloud/datastore/properties.rb +3 -3
- data/lib/gcloud/datastore/proto.rb +7 -4
- data/lib/gcloud/datastore/query.rb +26 -3
- data/lib/gcloud/datastore/transaction.rb +12 -8
- data/lib/gcloud/dns.rb +180 -152
- data/lib/gcloud/dns/change.rb +16 -16
- data/lib/gcloud/dns/change/list.rb +3 -3
- data/lib/gcloud/dns/connection.rb +9 -10
- data/lib/gcloud/dns/credentials.rb +3 -3
- data/lib/gcloud/dns/errors.rb +9 -5
- data/lib/gcloud/dns/importer.rb +17 -23
- data/lib/gcloud/dns/project.rb +42 -64
- data/lib/gcloud/dns/record.rb +58 -46
- data/lib/gcloud/dns/record/list.rb +6 -7
- data/lib/gcloud/dns/zone.rb +198 -289
- data/lib/gcloud/dns/zone/list.rb +3 -3
- data/lib/gcloud/dns/zone/transaction.rb +56 -72
- data/lib/gcloud/errors.rb +174 -3
- data/lib/gcloud/gce.rb +3 -4
- data/lib/gcloud/grpc_utils.rb +76 -0
- data/lib/gcloud/logging.rb +308 -0
- data/lib/gcloud/logging/credentials.rb +29 -0
- data/lib/gcloud/logging/entry.rb +303 -0
- data/lib/gcloud/logging/entry/http_request.rb +141 -0
- data/lib/gcloud/logging/entry/list.rb +111 -0
- data/lib/gcloud/logging/entry/operation.rb +90 -0
- data/lib/gcloud/logging/logger.rb +307 -0
- data/lib/gcloud/logging/metric.rb +175 -0
- data/lib/gcloud/logging/metric/list.rb +98 -0
- data/lib/gcloud/logging/project.rb +650 -0
- data/lib/gcloud/logging/resource.rb +95 -0
- data/lib/gcloud/logging/resource_descriptor.rb +140 -0
- data/lib/gcloud/logging/resource_descriptor/list.rb +78 -0
- data/lib/gcloud/logging/service.rb +258 -0
- data/lib/gcloud/logging/sink.rb +233 -0
- data/lib/gcloud/logging/sink/list.rb +97 -0
- data/lib/gcloud/pubsub.rb +241 -199
- data/lib/gcloud/pubsub/credentials.rb +3 -3
- data/lib/gcloud/pubsub/message.rb +26 -20
- data/lib/gcloud/pubsub/project.rb +166 -233
- data/lib/gcloud/pubsub/received_message.rb +28 -38
- data/lib/gcloud/pubsub/service.rb +323 -0
- data/lib/gcloud/pubsub/subscription.rb +172 -242
- data/lib/gcloud/pubsub/subscription/list.rb +11 -9
- data/lib/gcloud/pubsub/topic.rb +152 -271
- data/lib/gcloud/pubsub/topic/batch.rb +66 -0
- data/lib/gcloud/pubsub/topic/list.rb +9 -7
- data/lib/gcloud/resource_manager.rb +158 -138
- data/lib/gcloud/resource_manager/connection.rb +6 -5
- data/lib/gcloud/resource_manager/credentials.rb +3 -3
- data/lib/gcloud/resource_manager/errors.rb +9 -5
- data/lib/gcloud/resource_manager/manager.rb +54 -86
- data/lib/gcloud/resource_manager/project.rb +69 -88
- data/lib/gcloud/resource_manager/project/list.rb +4 -5
- data/lib/gcloud/resource_manager/project/updater.rb +12 -14
- data/lib/gcloud/search.rb +158 -135
- data/lib/gcloud/search/api_client.rb +7 -7
- data/lib/gcloud/search/connection.rb +8 -8
- data/lib/gcloud/search/credentials.rb +3 -3
- data/lib/gcloud/search/document.rb +64 -87
- data/lib/gcloud/search/document/list.rb +5 -5
- data/lib/gcloud/search/errors.rb +9 -5
- data/lib/gcloud/search/field_value.rb +32 -38
- data/lib/gcloud/search/field_values.rb +50 -80
- data/lib/gcloud/search/fields.rb +44 -65
- data/lib/gcloud/search/index.rb +163 -204
- data/lib/gcloud/search/index/list.rb +5 -5
- data/lib/gcloud/search/project.rb +31 -47
- data/lib/gcloud/search/result.rb +27 -31
- data/lib/gcloud/search/result/list.rb +6 -6
- data/lib/gcloud/storage.rb +224 -190
- data/lib/gcloud/storage/bucket.rb +202 -227
- data/lib/gcloud/storage/bucket/acl.rb +83 -170
- data/lib/gcloud/storage/bucket/cors.rb +31 -34
- data/lib/gcloud/storage/bucket/list.rb +3 -3
- data/lib/gcloud/storage/connection.rb +11 -7
- data/lib/gcloud/storage/credentials.rb +3 -3
- data/lib/gcloud/storage/errors.rb +11 -8
- data/lib/gcloud/storage/file.rb +129 -171
- data/lib/gcloud/storage/file/acl.rb +51 -99
- data/lib/gcloud/storage/file/list.rb +3 -3
- data/lib/gcloud/storage/file/verifier.rb +3 -2
- data/lib/gcloud/storage/project.rb +111 -132
- data/lib/gcloud/upload.rb +4 -7
- data/lib/gcloud/version.rb +2 -4
- data/lib/google/api/annotations.rb +14 -0
- data/lib/google/api/http.rb +30 -0
- data/lib/google/api/label.rb +24 -0
- data/lib/google/api/monitored_resource.rb +25 -0
- data/lib/google/datastore/v1beta3/datastore.rb +115 -0
- data/lib/google/datastore/v1beta3/datastore_services.rb +33 -0
- data/lib/google/datastore/v1beta3/entity.rb +63 -0
- data/lib/google/datastore/v1beta3/query.rb +128 -0
- data/lib/google/devtools/cloudtrace/v1/trace.rb +78 -0
- data/lib/google/devtools/cloudtrace/v1/trace_services.rb +32 -0
- data/lib/google/example/library/v1/library.rb +91 -0
- data/lib/google/example/library/v1/library_services.rb +40 -0
- data/lib/google/iam/v1/iam_policy.rb +33 -0
- data/lib/google/iam/v1/iam_policy_services.rb +30 -0
- data/lib/google/iam/v1/policy.rb +25 -0
- data/lib/google/logging/type/http_request.rb +28 -0
- data/lib/google/logging/type/log_severity.rb +27 -0
- data/lib/google/logging/v2/log_entry.rb +44 -0
- data/lib/google/logging/v2/logging.rb +56 -0
- data/lib/google/logging/v2/logging_config.rb +59 -0
- data/lib/google/logging/v2/logging_config_services.rb +32 -0
- data/lib/google/logging/v2/logging_metrics.rb +51 -0
- data/lib/google/logging/v2/logging_metrics_services.rb +32 -0
- data/lib/google/logging/v2/logging_services.rb +31 -0
- data/lib/google/longrunning/operations.rb +50 -0
- data/lib/google/longrunning/operations_services.rb +29 -0
- data/lib/google/protobuf/any.rb +17 -0
- data/lib/google/protobuf/api.rb +31 -0
- data/lib/google/protobuf/descriptor.rb +0 -0
- data/lib/google/protobuf/duration.rb +17 -0
- data/lib/google/protobuf/empty.rb +15 -0
- data/lib/google/protobuf/field_mask.rb +16 -0
- data/lib/google/protobuf/source_context.rb +16 -0
- data/lib/google/protobuf/struct.rb +35 -0
- data/lib/google/protobuf/timestamp.rb +17 -0
- data/lib/google/protobuf/type.rb +79 -0
- data/lib/google/protobuf/wrappers.rb +48 -0
- data/lib/google/pubsub/v1/pubsub.rb +129 -0
- data/lib/google/pubsub/v1/pubsub_services.rb +56 -0
- data/lib/google/pubsub/v1beta2/pubsub.rb +126 -0
- data/lib/google/pubsub/v1beta2/pubsub_services.rb +56 -0
- data/lib/google/rpc/code.rb +32 -0
- data/lib/google/rpc/error_details.rb +61 -0
- data/lib/google/rpc/status.rb +19 -0
- data/lib/google/type/color.rb +20 -0
- data/lib/google/type/date.rb +18 -0
- data/lib/google/type/dayofweek.rb +23 -0
- data/lib/google/type/latlng.rb +17 -0
- data/lib/google/type/money.rb +18 -0
- data/lib/google/type/timeofday.rb +19 -0
- metadata +101 -4
- data/lib/gcloud/pubsub/connection.rb +0 -295
- data/lib/gcloud/pubsub/errors.rb +0 -93
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
#--
|
|
2
1
|
# Copyright 2014 Google Inc. All rights reserved.
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -13,6 +12,7 @@
|
|
|
13
12
|
# See the License for the specific language governing permissions and
|
|
14
13
|
# limitations under the License.
|
|
15
14
|
|
|
15
|
+
|
|
16
16
|
require "delegate"
|
|
17
17
|
|
|
18
18
|
module Gcloud
|
|
@@ -24,14 +24,16 @@ module Gcloud
|
|
|
24
24
|
# contains the entities as well as the Keys that were deferred from
|
|
25
25
|
# the results and the Entities that were missing in the dataset.
|
|
26
26
|
#
|
|
27
|
+
# Please be cautious when treating the QueryResults as an Array.
|
|
28
|
+
# Many common Array methods will return a new Array instance.
|
|
29
|
+
#
|
|
30
|
+
# @example
|
|
27
31
|
# entities = dataset.find_all key1, key2, key3
|
|
28
32
|
# entities.size #=> 3
|
|
29
33
|
# entities.deferred #=> []
|
|
30
34
|
# entities.missing #=> []
|
|
31
35
|
#
|
|
32
|
-
#
|
|
33
|
-
# common Array methods will return a new Array instance.
|
|
34
|
-
#
|
|
36
|
+
# @example Caution, many Array methods will return a new Array instance:
|
|
35
37
|
# entities = dataset.find_all key1, key2, key3
|
|
36
38
|
# entities.size #=> 3
|
|
37
39
|
# entities.deferred #=> []
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
#--
|
|
2
1
|
# Copyright 2014 Google Inc. All rights reserved.
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -13,6 +12,7 @@
|
|
|
13
12
|
# See the License for the specific language governing permissions and
|
|
14
13
|
# limitations under the License.
|
|
15
14
|
|
|
15
|
+
|
|
16
16
|
require "delegate"
|
|
17
17
|
|
|
18
18
|
module Gcloud
|
|
@@ -24,13 +24,15 @@ module Gcloud
|
|
|
24
24
|
# the Entities from the query as well as the query's cursor and
|
|
25
25
|
# more_results value.
|
|
26
26
|
#
|
|
27
|
+
# Please be cautious when treating the QueryResults as an Array.
|
|
28
|
+
# Many common Array methods will return a new Array instance.
|
|
29
|
+
#
|
|
30
|
+
# @example
|
|
27
31
|
# entities = dataset.run query
|
|
28
32
|
# entities.size #=> 3
|
|
29
33
|
# entities.cursor #=> "c3VwZXJhd2Vzb21lIQ"
|
|
30
34
|
#
|
|
31
|
-
#
|
|
32
|
-
# Many common Array methods will return a new Array instance.
|
|
33
|
-
#
|
|
35
|
+
# @example Caution, many Array methods will return a new Array instance:
|
|
34
36
|
# entities = dataset.run query
|
|
35
37
|
# entities.size #=> 3
|
|
36
38
|
# entities.end_cursor #=> "c3VwZXJhd2Vzb21lIQ"
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
#--
|
|
2
1
|
# Copyright 2014 Google Inc. All rights reserved.
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -13,6 +12,7 @@
|
|
|
13
12
|
# See the License for the specific language governing permissions and
|
|
14
13
|
# limitations under the License.
|
|
15
14
|
|
|
15
|
+
|
|
16
16
|
require "gcloud/datastore/key"
|
|
17
17
|
require "gcloud/datastore/properties"
|
|
18
18
|
require "gcloud/datastore/proto"
|
|
@@ -20,11 +20,12 @@ require "gcloud/datastore/proto"
|
|
|
20
20
|
module Gcloud
|
|
21
21
|
module Datastore
|
|
22
22
|
##
|
|
23
|
-
#
|
|
23
|
+
# # Entity
|
|
24
24
|
#
|
|
25
25
|
# Entity represents a Datastore record.
|
|
26
|
-
# Every Entity has a Key, and a list of properties.
|
|
26
|
+
# Every Entity has a {Key}, and a list of properties.
|
|
27
27
|
#
|
|
28
|
+
# @example
|
|
28
29
|
# entity = Gcloud::Datastore::Entity.new
|
|
29
30
|
# entity.key = Gcloud::Datastore::Key.new "User", "heidi@example.com"
|
|
30
31
|
# entity["name"] = "Heidi Henderson"
|
|
@@ -45,19 +46,11 @@ module Gcloud
|
|
|
45
46
|
##
|
|
46
47
|
# Retrieve a property value by providing the name.
|
|
47
48
|
#
|
|
48
|
-
#
|
|
49
|
-
#
|
|
50
|
-
# +prop_name+::
|
|
51
|
-
# The name of the property. (+String+ or +Symbol+)
|
|
52
|
-
#
|
|
53
|
-
# === Returns
|
|
54
|
-
#
|
|
55
|
-
# Object if the property exists, +nil+ if the property doesn't exist
|
|
49
|
+
# @param [String, Symbol] prop_name The name of the property.
|
|
56
50
|
#
|
|
57
|
-
#
|
|
58
|
-
#
|
|
59
|
-
# Properties can be retrieved with a string name:
|
|
51
|
+
# @return [Object, nil] Returns `nil` if the property doesn't exist
|
|
60
52
|
#
|
|
53
|
+
# @example Properties can be retrieved with a string name:
|
|
61
54
|
# require "gcloud"
|
|
62
55
|
#
|
|
63
56
|
# gcloud = Gcloud.new
|
|
@@ -65,8 +58,7 @@ module Gcloud
|
|
|
65
58
|
# user = dataset.find "User", "heidi@example.com"
|
|
66
59
|
# user["name"] #=> "Heidi Henderson"
|
|
67
60
|
#
|
|
68
|
-
# Or with a symbol name:
|
|
69
|
-
#
|
|
61
|
+
# @example Or with a symbol name:
|
|
70
62
|
# require "gcloud"
|
|
71
63
|
#
|
|
72
64
|
# gcloud = Gcloud.new
|
|
@@ -81,17 +73,10 @@ module Gcloud
|
|
|
81
73
|
##
|
|
82
74
|
# Set a property value by name.
|
|
83
75
|
#
|
|
84
|
-
#
|
|
85
|
-
#
|
|
86
|
-
# +prop_name+::
|
|
87
|
-
# The name of the property. (+String+ or +Symbol+)
|
|
88
|
-
# +prop_value+::
|
|
89
|
-
# The value of the property. (+Object+)
|
|
90
|
-
#
|
|
91
|
-
# === Example
|
|
92
|
-
#
|
|
93
|
-
# Properties can be set with a string name:
|
|
76
|
+
# @param [String, Symbol] prop_name The name of the property.
|
|
77
|
+
# @param [Object] prop_value The value of the property.
|
|
94
78
|
#
|
|
79
|
+
# @example Properties can be set with a string name:
|
|
95
80
|
# require "gcloud"
|
|
96
81
|
#
|
|
97
82
|
# gcloud = Gcloud.new
|
|
@@ -99,8 +84,7 @@ module Gcloud
|
|
|
99
84
|
# user = dataset.find "User", "heidi@example.com"
|
|
100
85
|
# user["name"] = "Heidi H. Henderson"
|
|
101
86
|
#
|
|
102
|
-
# Or with a symbol name:
|
|
103
|
-
#
|
|
87
|
+
# @example Or with a symbol name:
|
|
104
88
|
# require "gcloud"
|
|
105
89
|
#
|
|
106
90
|
# gcloud = Gcloud.new
|
|
@@ -116,12 +100,9 @@ module Gcloud
|
|
|
116
100
|
# Retrieve properties in a hash-like structure.
|
|
117
101
|
# Properties can be accessed or set by string or symbol.
|
|
118
102
|
#
|
|
119
|
-
#
|
|
120
|
-
#
|
|
121
|
-
# Gcloud::Datastore::Properties
|
|
122
|
-
#
|
|
123
|
-
# === Example
|
|
103
|
+
# @return [Gcloud::Datastore::Properties]
|
|
124
104
|
#
|
|
105
|
+
# @example
|
|
125
106
|
# entity.properties[:name] = "Heidi H. Henderson"
|
|
126
107
|
# entity.properties["name"] #=> "Heidi H. Henderson"
|
|
127
108
|
#
|
|
@@ -129,19 +110,16 @@ module Gcloud
|
|
|
129
110
|
# puts "property #{name} has a value of #{value}"
|
|
130
111
|
# end
|
|
131
112
|
#
|
|
132
|
-
# A property's
|
|
133
|
-
#
|
|
113
|
+
# @example A property's existence can be determined by calling `exist?`:
|
|
134
114
|
# entity.properties.exist? :name #=> true
|
|
135
115
|
# entity.properties.exist? "name" #=> true
|
|
136
116
|
# entity.properties.exist? :expiration #=> false
|
|
137
117
|
#
|
|
138
|
-
# A property can be removed from the entity
|
|
139
|
-
#
|
|
118
|
+
# @example A property can be removed from the entity:
|
|
140
119
|
# entity.properties.delete :name
|
|
141
120
|
# entity.save
|
|
142
121
|
#
|
|
143
|
-
# The properties can be converted to a hash:
|
|
144
|
-
#
|
|
122
|
+
# @example The properties can be converted to a hash:
|
|
145
123
|
# prop_hash = entity.properties.to_h
|
|
146
124
|
#
|
|
147
125
|
attr_reader :properties
|
|
@@ -149,10 +127,10 @@ module Gcloud
|
|
|
149
127
|
##
|
|
150
128
|
# Sets the Key that identifies the entity.
|
|
151
129
|
#
|
|
152
|
-
#
|
|
153
|
-
#
|
|
154
|
-
# The Key can be set before the entity is saved.
|
|
130
|
+
# Once the entity is saved, the key is frozen and immutable. Trying to set
|
|
131
|
+
# a key when immutable will raise a `RuntimeError`.
|
|
155
132
|
#
|
|
133
|
+
# @example The Key can be set before the entity is saved:
|
|
156
134
|
# require "gcloud"
|
|
157
135
|
#
|
|
158
136
|
# gcloud = Gcloud.new
|
|
@@ -161,9 +139,7 @@ module Gcloud
|
|
|
161
139
|
# entity.key = Gcloud::Datastore::Key.new "User"
|
|
162
140
|
# dataset.save entity
|
|
163
141
|
#
|
|
164
|
-
# Once the entity is saved, the key is frozen and immutable
|
|
165
|
-
# Trying to set a key when immutable will raise a +RuntimeError+.
|
|
166
|
-
#
|
|
142
|
+
# @example Once the entity is saved, the key is frozen and immutable:
|
|
167
143
|
# require "gcloud"
|
|
168
144
|
#
|
|
169
145
|
# gcloud = Gcloud.new
|
|
@@ -182,8 +158,7 @@ module Gcloud
|
|
|
182
158
|
##
|
|
183
159
|
# Indicates if the record is persisted. Default is false.
|
|
184
160
|
#
|
|
185
|
-
#
|
|
186
|
-
#
|
|
161
|
+
# @example
|
|
187
162
|
# require "gcloud"
|
|
188
163
|
#
|
|
189
164
|
# gcloud = Gcloud.new
|
|
@@ -201,17 +176,30 @@ module Gcloud
|
|
|
201
176
|
|
|
202
177
|
##
|
|
203
178
|
# Indicates if a property is flagged to be excluded from the
|
|
204
|
-
# Datastore indexes. The default value is false
|
|
179
|
+
# Datastore indexes. The default value is `false`. This is another way of
|
|
180
|
+
# saying that values are indexed by default.
|
|
205
181
|
#
|
|
206
|
-
#
|
|
182
|
+
# If the property is multi-valued, each value in the list can be managed
|
|
183
|
+
# separately for exclusion from indexing. Calling this method for a
|
|
184
|
+
# multi-valued property will return an array that contains the `excluded`
|
|
185
|
+
# boolean value for each corresponding value in the property. For example,
|
|
186
|
+
# if a multi-valued property contains `["a", "b"]`, and only the value
|
|
187
|
+
# `"b"` is indexed (meaning that `"a"`' is excluded), the return value for
|
|
188
|
+
# this method will be `[true, false]`.
|
|
207
189
|
#
|
|
190
|
+
# @see https://cloud.google.com/datastore/docs/concepts/indexes#Datastore_Unindexed_properties
|
|
191
|
+
# Unindexed properties
|
|
192
|
+
#
|
|
193
|
+
# @example Single property values will return a single flag setting:
|
|
208
194
|
# entity["age"] = 21
|
|
209
195
|
# entity.exclude_from_indexes? "age" #=> false
|
|
210
196
|
#
|
|
211
|
-
#
|
|
212
|
-
#
|
|
197
|
+
# @example A multi-valued property will return an array of flag settings:
|
|
213
198
|
# entity["tags"] = ["ruby", "code"]
|
|
214
|
-
# entity.exclude_from_indexes
|
|
199
|
+
# entity.exclude_from_indexes! "tags", [true, false]
|
|
200
|
+
#
|
|
201
|
+
# entity.exclude_from_indexes? "tags" #=> [true, false]
|
|
202
|
+
#
|
|
215
203
|
def exclude_from_indexes? name
|
|
216
204
|
value = self[name]
|
|
217
205
|
flag = @_exclude_indexes[name.to_s]
|
|
@@ -219,31 +207,50 @@ module Gcloud
|
|
|
219
207
|
end
|
|
220
208
|
|
|
221
209
|
##
|
|
222
|
-
#
|
|
223
|
-
# Setting true will exclude the property from the indexes.
|
|
224
|
-
# Setting false will include the property on any applicable indexes.
|
|
225
|
-
# The default value
|
|
226
|
-
#
|
|
210
|
+
# Sets whether a property should be excluded from the Datastore indexes.
|
|
211
|
+
# Setting `true` will exclude the property from the indexes.
|
|
212
|
+
# Setting `false` will include the property on any applicable indexes.
|
|
213
|
+
# The default value is `false`. This is another way of saying that values
|
|
214
|
+
# are indexed by default.
|
|
215
|
+
#
|
|
216
|
+
# If the property is multi-valued, each value in the list can be managed
|
|
217
|
+
# separately for exclusion from indexing. When you call this method for a
|
|
218
|
+
# multi-valued property, you can pass either a single boolean argument to
|
|
219
|
+
# be applied to all of the values, or an array that contains the boolean
|
|
220
|
+
# argument for each corresponding value in the property. For example,
|
|
221
|
+
# if a multi-valued property contains `["a", "b"]`, and only the value
|
|
222
|
+
# `"b"` should be indexed (meaning that `"a"`' should be excluded), you
|
|
223
|
+
# should pass the array: `[true, false]`.
|
|
224
|
+
#
|
|
225
|
+
# @param [String] name the property name
|
|
226
|
+
# @param [Boolean, Array<Boolean>, nil] flag whether the value or values
|
|
227
|
+
# should be excluded from indexing
|
|
228
|
+
# @yield [value] a block yielding each value of the property
|
|
229
|
+
# @yieldparam [Object] value a value of the property
|
|
230
|
+
# @yieldreturn [Boolean] `true` if the value should be excluded from
|
|
231
|
+
# indexing
|
|
232
|
+
#
|
|
233
|
+
# @see https://cloud.google.com/datastore/docs/concepts/indexes#Datastore_Unindexed_properties
|
|
234
|
+
# Unindexed properties
|
|
235
|
+
#
|
|
236
|
+
# @example
|
|
227
237
|
# entity["age"] = 21
|
|
228
238
|
# entity.exclude_from_indexes! "age", true
|
|
229
239
|
#
|
|
230
|
-
#
|
|
231
|
-
#
|
|
240
|
+
# @example Multi-valued properties can be given multiple exclude flags:
|
|
232
241
|
# entity["tags"] = ["ruby", "code"]
|
|
233
242
|
# entity.exclude_from_indexes! "tags", [true, false]
|
|
234
243
|
#
|
|
235
|
-
# Or,
|
|
236
|
-
# to each item in the array.
|
|
237
|
-
#
|
|
244
|
+
# @example Or, a single flag can be applied to all values in a property:
|
|
238
245
|
# entity["tags"] = ["ruby", "code"]
|
|
239
246
|
# entity.exclude_from_indexes! "tags", true
|
|
240
247
|
#
|
|
241
|
-
# Flags can also be set with a block
|
|
242
|
-
#
|
|
248
|
+
# @example Flags can also be set with a block:
|
|
243
249
|
# entity["age"] = 21
|
|
244
250
|
# entity.exclude_from_indexes! "age" do |age|
|
|
245
251
|
# age > 18
|
|
246
252
|
# end
|
|
253
|
+
#
|
|
247
254
|
def exclude_from_indexes! name, flag = nil, &block
|
|
248
255
|
name = name.to_s
|
|
249
256
|
flag = block if block_given?
|
|
@@ -255,9 +262,8 @@ module Gcloud
|
|
|
255
262
|
end
|
|
256
263
|
|
|
257
264
|
##
|
|
258
|
-
# Convert the Entity to a protocol buffer object.
|
|
259
|
-
|
|
260
|
-
def to_proto #:nodoc:
|
|
265
|
+
# @private Convert the Entity to a protocol buffer object.
|
|
266
|
+
def to_proto
|
|
261
267
|
entity = Proto::Entity.new.tap do |e|
|
|
262
268
|
e.key = @key.to_proto
|
|
263
269
|
e.property = Proto.to_proto_properties @properties.to_h
|
|
@@ -267,9 +273,8 @@ module Gcloud
|
|
|
267
273
|
end
|
|
268
274
|
|
|
269
275
|
##
|
|
270
|
-
# Create a new Entity from a protocol buffer object.
|
|
271
|
-
|
|
272
|
-
def self.from_proto proto #:nodoc:
|
|
276
|
+
# @private Create a new Entity from a protocol buffer object.
|
|
277
|
+
def self.from_proto proto
|
|
273
278
|
entity = Entity.new
|
|
274
279
|
entity.key = Key.from_proto proto.key
|
|
275
280
|
Array(proto.property).each do |p|
|
|
@@ -285,11 +290,11 @@ module Gcloud
|
|
|
285
290
|
# Disabled rubocop because this is intentionally complex.
|
|
286
291
|
|
|
287
292
|
##
|
|
288
|
-
# Map the exclude flag object to value.
|
|
293
|
+
# @private Map the exclude flag object to value.
|
|
289
294
|
# The flag object can be a boolean, Proc, or Array.
|
|
290
295
|
# Procs will be called and passed in the value.
|
|
291
296
|
# This will return an array of flags for an array value.
|
|
292
|
-
def map_exclude_flag_to_value flag, value
|
|
297
|
+
def map_exclude_flag_to_value flag, value
|
|
293
298
|
if value.is_a? Array
|
|
294
299
|
if flag.is_a? Proc
|
|
295
300
|
value.map { |v| !!flag.call(v) }
|
|
@@ -310,8 +315,8 @@ module Gcloud
|
|
|
310
315
|
end
|
|
311
316
|
|
|
312
317
|
##
|
|
313
|
-
# Update the exclude data after a new object is created.
|
|
314
|
-
def update_exclude_indexes! entity
|
|
318
|
+
# @private Update the exclude data after a new object is created.
|
|
319
|
+
def update_exclude_indexes! entity
|
|
315
320
|
@_exclude_indexes = {}
|
|
316
321
|
Array(entity.property).each do |property|
|
|
317
322
|
@_exclude_indexes[property.name] = !property.value.indexed
|
|
@@ -323,8 +328,8 @@ module Gcloud
|
|
|
323
328
|
end
|
|
324
329
|
|
|
325
330
|
##
|
|
326
|
-
# Update the indexed values before the object is saved.
|
|
327
|
-
def update_properties_indexed! entity
|
|
331
|
+
# @private Update the indexed values before the object is saved.
|
|
332
|
+
def update_properties_indexed! entity
|
|
328
333
|
Array(entity.property).each do |property|
|
|
329
334
|
excluded = exclude_from_indexes? property.name
|
|
330
335
|
if excluded.is_a? Array
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
#--
|
|
2
1
|
# Copyright 2014 Google Inc. All rights reserved.
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -13,26 +12,27 @@
|
|
|
13
12
|
# See the License for the specific language governing permissions and
|
|
14
13
|
# limitations under the License.
|
|
15
14
|
|
|
15
|
+
|
|
16
16
|
require "gcloud/errors"
|
|
17
17
|
|
|
18
18
|
module Gcloud
|
|
19
19
|
module Datastore
|
|
20
20
|
##
|
|
21
|
-
#
|
|
21
|
+
# # Datastore Error
|
|
22
22
|
#
|
|
23
23
|
# Base Datastore exception class.
|
|
24
24
|
class Error < Gcloud::Error
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
##
|
|
28
|
-
#
|
|
28
|
+
# # KeyfileError
|
|
29
29
|
#
|
|
30
30
|
# Raised when a keyfile is not correct.
|
|
31
31
|
class KeyfileError < Gcloud::Datastore::Error
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
##
|
|
35
|
-
#
|
|
35
|
+
# # ApiError
|
|
36
36
|
#
|
|
37
37
|
# Raised when an API call is not successful.
|
|
38
38
|
class ApiError < Gcloud::Datastore::Error
|
|
@@ -44,7 +44,8 @@ module Gcloud
|
|
|
44
44
|
# The response object of the failed HTTP request.
|
|
45
45
|
attr_reader :response
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
# @private
|
|
48
|
+
def initialize method, response = nil
|
|
48
49
|
super("API call to #{method} was not successful")
|
|
49
50
|
@method = method
|
|
50
51
|
@response = response
|
|
@@ -52,14 +53,14 @@ module Gcloud
|
|
|
52
53
|
end
|
|
53
54
|
|
|
54
55
|
##
|
|
55
|
-
#
|
|
56
|
+
# # PropertyError
|
|
56
57
|
#
|
|
57
58
|
# Raised when a property is not correct.
|
|
58
59
|
class PropertyError < Gcloud::Datastore::Error
|
|
59
60
|
end
|
|
60
61
|
|
|
61
62
|
##
|
|
62
|
-
#
|
|
63
|
+
# # TransactionError
|
|
63
64
|
#
|
|
64
65
|
# General error for Transaction problems.
|
|
65
66
|
class TransactionError < Gcloud::Datastore::Error
|
|
@@ -67,7 +68,8 @@ module Gcloud
|
|
|
67
68
|
# An error that occurred within the transaction. (optional)
|
|
68
69
|
attr_reader :inner
|
|
69
70
|
|
|
70
|
-
|
|
71
|
+
# @private
|
|
72
|
+
def initialize message, inner = nil
|
|
71
73
|
super(message)
|
|
72
74
|
@inner = inner
|
|
73
75
|
end
|