google-cloud-storage 1.0.1 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e44e7736db1ba058142ad9933e6f70c772271040
4
- data.tar.gz: a0c1b589a1b27c357c96764767fcb99ce2c52bf2
3
+ metadata.gz: aedabfdd29823eedcac9c139bd352c3361ba5d0d
4
+ data.tar.gz: be5105b8c9183e3294a6bb7116f45007747c49a2
5
5
  SHA512:
6
- metadata.gz: fceeaf2cf0932e5d65cb104ca34d72c994d3571c7c39e20c1493d40cb758ac81806f349b77f6833133bf9a131d8b7292e9b61434530f83018c416ecd9c8247a9
7
- data.tar.gz: 67d37d87e36555c2f7fb7193d717dedb499447bf014d1b6f34c96b5a4b554ed85c227e3baa4b14ba469346991ddd93df2e700d7f18be49b21a5818f38fb647ff
6
+ metadata.gz: 5b5160e32c88c4a8b4c20c04cd08ebd3081c94807f2489f1d45852519d12da64d596b38aa7d90a736f409a5f5193e8044b0941f0fa092733cb519cd65418f4d0
7
+ data.tar.gz: ad3994f964a5f67b324cd6c475b5d59eae0ccec407a6c37018be2f3198985b9031d3faf3746f67865c9c946bd055e5043a5420af8507fb4401b3801632f59b31
@@ -264,6 +264,22 @@ module Google
264
264
  @gapi.website.not_found_page if @gapi.website
265
265
  end
266
266
 
267
+ ##
268
+ # A hash of user-provided labels. The hash is frozen and changes are not
269
+ # allowed.
270
+ def labels
271
+ m = @gapi.labels
272
+ m = m.to_h if m.respond_to? :to_h
273
+ m.dup.freeze
274
+ end
275
+
276
+ ##
277
+ # Updates the hash of user-provided labels.
278
+ def labels= labels
279
+ @gapi.labels = labels
280
+ patch_gapi! :labels
281
+ end
282
+
267
283
  ##
268
284
  # Updates the page returned from a static website served from the bucket
269
285
  # when a site visitor requests a resource that does not exist.
@@ -320,6 +336,7 @@ module Google
320
336
  updater = Updater.new @gapi
321
337
  yield updater
322
338
  # Add check for mutable cors
339
+ updater.check_for_changed_labels!
323
340
  updater.check_for_mutable_cors!
324
341
  patch_gapi! updater.updates unless updater.updates.empty?
325
342
  end
@@ -898,9 +915,9 @@ module Google
898
915
  # @see https://cloud.google.com/storage/docs/json_api/v1/buckets/setIamPolicy
899
916
  # Buckets: setIamPolicy
900
917
  #
901
- # @param [Boolean] force Force load the latest policy when `true`.
902
- # Otherwise the policy will be memoized to reduce the number of API
903
- # calls made. The default is `false`.
918
+ # @param [Boolean] force [Deprecated] Force the latest policy to be
919
+ # retrieved from the Storage service when `true`. Deprecated because
920
+ # the latest policy is now always retrieved. The default is `nil`.
904
921
  #
905
922
  # @yield [policy] A block for updating the policy. The latest policy
906
923
  # will be read from the service and passed to the block. After the
@@ -910,27 +927,16 @@ module Google
910
927
  #
911
928
  # @return [Policy] the current Cloud IAM Policy for this bucket
912
929
  #
913
- # @example Policy values are memoized to reduce the number of API calls:
914
- # require "google/cloud/storage"
915
- #
916
- # storage = Google::Cloud::Storage.new
917
- #
918
- # bucket = storage.bucket "my-todo-app"
919
- #
920
- # policy = bucket.policy # API call
921
- # policy_2 = bucket.policy # No API call
922
- #
923
- # @example Use `force` to retrieve the latest policy from the service:
930
+ # @example
924
931
  # require "google/cloud/storage"
925
932
  #
926
933
  # storage = Google::Cloud::Storage.new
927
934
  #
928
935
  # bucket = storage.bucket "my-todo-app"
929
936
  #
930
- # policy = bucket.policy force: true # API call
931
- # policy_2 = bucket.policy force: true # API call
937
+ # policy = bucket.policy
932
938
  #
933
- # @example Update the policy by passing a block:
939
+ # @example Retrieve the latest policy and update it in a block:
934
940
  # require "google/cloud/storage"
935
941
  #
936
942
  # storage = Google::Cloud::Storage.new
@@ -939,19 +945,16 @@ module Google
939
945
  #
940
946
  # bucket.policy do |p|
941
947
  # p.add "roles/owner", "user:owner@example.com"
942
- # end # 2 API calls
943
- #
944
- def policy force: false
945
- @policy = nil if force || block_given?
946
- @policy ||= begin
947
- ensure_service!
948
- gapi = service.get_bucket_policy name
949
- Policy.from_gapi gapi
950
- end
951
- return @policy unless block_given?
952
- p = @policy.deep_dup
953
- yield p
954
- self.policy = p
948
+ # end
949
+ #
950
+ def policy force: nil
951
+ warn "DEPRECATED: 'force' in Bucket#policy" unless force.nil?
952
+ ensure_service!
953
+ gapi = service.get_bucket_policy name
954
+ policy = Policy.from_gapi gapi
955
+ return policy unless block_given?
956
+ yield policy
957
+ self.policy = policy
955
958
  end
956
959
 
957
960
  ##
@@ -971,6 +974,8 @@ module Google
971
974
  # @param [Policy] new_policy a new or modified Cloud IAM Policy for this
972
975
  # bucket
973
976
  #
977
+ # @return [Policy] The policy returned by the API update operation.
978
+ #
974
979
  # @example
975
980
  # require "google/cloud/storage"
976
981
  #
@@ -987,7 +992,7 @@ module Google
987
992
  def policy= new_policy
988
993
  ensure_service!
989
994
  gapi = service.set_bucket_policy name, new_policy.to_gapi
990
- @policy = Policy.from_gapi gapi
995
+ Policy.from_gapi gapi
991
996
  end
992
997
 
993
998
  ##
@@ -1088,9 +1093,32 @@ module Google
1088
1093
  def initialize gapi
1089
1094
  @updates = []
1090
1095
  @gapi = gapi
1096
+ @labels = @gapi.labels.to_h.dup
1091
1097
  @cors_builder = nil
1092
1098
  end
1093
1099
 
1100
+ ##
1101
+ # A hash of user-provided labels. Changes are allowed.
1102
+ def labels
1103
+ @labels
1104
+ end
1105
+
1106
+ ##
1107
+ # Updates the hash of user-provided labels.
1108
+ def labels= labels
1109
+ @labels = labels
1110
+ @gapi.labels = @labels
1111
+ patch_gapi! :labels
1112
+ end
1113
+
1114
+ ##
1115
+ # @private Make sure any labels changes are saved
1116
+ def check_for_changed_labels!
1117
+ return if @labels == @gapi.labels.to_h
1118
+ @gapi.labels = @labels
1119
+ patch_gapi! :labels
1120
+ end
1121
+
1094
1122
  def cors
1095
1123
  # Same as Bucket#cors, but not frozen
1096
1124
  @cors_builder ||= Bucket::Cors.from_gapi @gapi.cors_configurations
@@ -164,9 +164,13 @@ module Google
164
164
  ##
165
165
  # Returns a deep copy of the policy.
166
166
  #
167
+ # @deprecated Because the latest policy is now always retrieved by
168
+ # {Bucket#policy}.
169
+ #
167
170
  # @return [Policy]
168
171
  #
169
172
  def deep_dup
173
+ warn "DEPRECATED: Storage::Policy#deep_dup"
170
174
  dup.tap do |p|
171
175
  roles_dup = p.roles.each_with_object({}) do |(k, v), memo|
172
176
  memo[k] = v.dup rescue value
@@ -293,6 +293,7 @@ module Google
293
293
  b.versioning = versioning unless versioning.nil?
294
294
  end
295
295
  yield updater if block_given?
296
+ updater.check_for_changed_labels!
296
297
  updater.check_for_mutable_cors!
297
298
  gapi = service.insert_bucket \
298
299
  new_bucket, acl: acl_rule(acl), default_acl: acl_rule(default_acl)
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Storage
19
- VERSION = "1.0.1"
19
+ VERSION = "1.1.0"
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-storage
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.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: 2017-04-10 00:00:00.000000000 Z
12
+ date: 2017-06-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-cloud-core
@@ -208,7 +208,7 @@ files:
208
208
  - lib/google/cloud/storage/project.rb
209
209
  - lib/google/cloud/storage/service.rb
210
210
  - lib/google/cloud/storage/version.rb
211
- homepage: http://googlecloudplatform.github.io/google-cloud-ruby/
211
+ homepage: https://github.com/GoogleCloudPlatform/google-cloud-ruby/tree/master/google-cloud-storage
212
212
  licenses:
213
213
  - Apache-2.0
214
214
  metadata: {}
@@ -228,7 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
228
228
  version: '0'
229
229
  requirements: []
230
230
  rubyforge_project:
231
- rubygems_version: 2.6.11
231
+ rubygems_version: 2.6.12
232
232
  signing_key:
233
233
  specification_version: 4
234
234
  summary: API Client library for Google Cloud Storage