qingstor-sdk 2.3.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f96fbe4a96c1158586ba3178388d9e1d718a87bc8a85dc948e1f93c39e5af9b5
4
- data.tar.gz: ab161d6e76bf701a178189549f929c79838537faa8559a4af4ec4ffe11f8afbb
3
+ metadata.gz: cb83b84c4cd53131d0092b26061348057db9f2af57d1d4670bc5cef3b36c12b8
4
+ data.tar.gz: 0c2d01a2a0d134540e57e11cdeaef5f5547cb613b3b8a1ee5a2e531302391a15
5
5
  SHA512:
6
- metadata.gz: 56d0d535ce815915faf22f7e38a635a22b5d7009cf121a29b08b18c728b982d0d618fac8f9e2c2dcb767d2809f8a5b4a42cd494113c7aa85e01e1d0f402e1723
7
- data.tar.gz: fef1d45a4891cadf79569fd44591f3a8adc747ff7c2f7dc0845fc3927d5d316e4a3a543928888436af97b78fb32dc70f6a74938479dd1b518f3fc12daff26559
6
+ metadata.gz: bf9f6e59304fa869921e5300b57560f5fae7728b9bb521a6ffc2d1d1d03783871dc03b68b9f08ffa875afef7a0210b237d518f8fd30d24260e6db14a766ce7ad
7
+ data.tar.gz: 394b4f14aea92f46e8b511dbbd283a4e08a9f7d28ef1f5f71e87e0eae63ee32c4bd30a172266638efd9a715fe81a70c91c7dec0c738dabec2eed1175c5376c45
data/README.md CHANGED
@@ -1,9 +1,10 @@
1
1
  # QingStor::SDK
2
2
 
3
- [![Build Status](https://travis-ci.org/yunify/qingstor-sdk-ruby.svg?branch=master)](https://travis-ci.org/yunify/qingstor-sdk-ruby)
3
+ [![Build Status](https://github.com/qingstor/qingstor-sdk-ruby/workflows/Unit%20Test/badge.svg?branch=master)](https://github.com/qingstor/qingstor-sdk-ruby/actions?query=workflow%3A%22Unit+Test%22)
4
4
  [![Gem Version](https://badge.fury.io/rb/qingstor-sdk.svg)](http://badge.fury.io/rb/qingstor-sdk)
5
5
  [![API Reference](http://img.shields.io/badge/api-reference-green.svg)](https://docs.qingcloud.com/qingstor/)
6
6
  [![License](http://img.shields.io/badge/license-apache%20v2-blue.svg)](https://github.com/yunify/qingstor-sdk-ruby/blob/master/LICENSE)
7
+ [![Join the chat](https://img.shields.io/badge/chat-online-blue?style=flat&logo=zulip)](https://qingstor.zulipchat.com/join/odapi42t7xhqc7v4gb2wfgjx/)
7
8
 
8
9
  The official QingStor SDK for Ruby programming language.
9
10
 
@@ -167,6 +168,21 @@ log_level: 'warn'
167
168
  ## Change Log
168
169
  All notable changes to QingStor SDK for Ruby will be documented here.
169
170
 
171
+ ### [v2.4.0] - 2021-01-05
172
+
173
+ ### Added
174
+
175
+ - Support to set x-qs-metadata-directive header (#29)
176
+ - Add support for bucket replication (#45)
177
+
178
+ ### Changed
179
+
180
+ - ci: Transfer ci into github action (#30)
181
+
182
+ ### Fixed
183
+
184
+ - Fix metadata added into signature when empty (#44)
185
+
170
186
  ### [v2.3.0] - 2020-05-11
171
187
 
172
188
  ### Added
@@ -258,6 +274,7 @@ All notable changes to QingStor SDK for Ruby will be documented here.
258
274
  The Apache License (Version 2.0, January 2004).
259
275
 
260
276
  [compatible]: https://github.com/yunify/qingstor-sdk-ruby/tree/compatible
277
+ [v2.4.0]: https://github.com/yunify/qingstor-sdk-ruby/compare/v2.3.0...v2.4.0
261
278
  [v2.3.0]: https://github.com/yunify/qingstor-sdk-ruby/compare/v2.2.3...v2.3.0
262
279
  [v2.2.3]: https://github.com/yunify/qingstor-sdk-ruby/compare/v2.2.2...v2.2.3
263
280
  [v2.2.2]: https://github.com/yunify/qingstor-sdk-ruby/compare/v2.2.1...v2.2.2
@@ -102,9 +102,20 @@ module QingStor
102
102
  input[:request_headers][:'Content-MD5'] = Base64.encode64(Digest::MD5.digest(input[:request_body])).strip
103
103
  end
104
104
 
105
- if input[:request_headers][:'X-QS-MetaData'].is_a?(Hash) && !input[:request_headers][:'X-QS-MetaData'].empty?
106
- input[:request_headers][:'X-QS-MetaData'].each do |k, v|
107
- input[:request_headers][:"#{k}"] = v
105
+ unless input[:request_headers][:'X-QS-MetaData'].nil?
106
+ if input[:request_headers][:'X-QS-MetaData'].is_a?(Hash) && !input[:request_headers][:'X-QS-MetaData'].empty?
107
+ prefix = 'x-qs-meta-'
108
+ input[:request_headers][:'X-QS-MetaData'].each do |k, v|
109
+ k = k.to_s
110
+ # check whether meta header has prefix
111
+ if k.downcase.start_with? prefix
112
+ suffix_len = prefix.size - k.size
113
+ k = prefix + k[suffix_len, -suffix_len]
114
+ else
115
+ k = prefix + k
116
+ end
117
+ input[:request_headers][:"#{k}"] = v
118
+ end
108
119
  end
109
120
  input[:request_headers].delete :'X-QS-MetaData'
110
121
  end
@@ -343,6 +343,45 @@ module QingStor
343
343
 
344
344
  public
345
345
 
346
+ # delete_bucket_replication: Delete Replication information of the bucket.
347
+ # Documentation URL: https://docs.qingcloud.com/qingstor/api/bucket/replication/delete_replication.html
348
+ def delete_replication
349
+ request = delete_replication_request
350
+ request.send
351
+ end
352
+
353
+ def delete_replication_request
354
+ input = {
355
+ config: config,
356
+ properties: properties,
357
+ api_name: 'DELETE Bucket Replication',
358
+ request_method: 'DELETE',
359
+ request_uri: '/<bucket-name>?replication',
360
+ request_params: {
361
+ },
362
+ request_headers: {
363
+ },
364
+ request_elements: {
365
+ },
366
+ request_body: nil,
367
+
368
+ status_code: [
369
+ 204
370
+ ]
371
+ }
372
+
373
+ delete_bucket_replication_input_validate input
374
+ Request.new input
375
+ end
376
+
377
+ private
378
+
379
+ def delete_bucket_replication_input_validate(input)
380
+ input.deep_stringify_keys!
381
+ end
382
+
383
+ public
384
+
346
385
  # delete_multiple_objects: Delete multiple objects from the bucket.
347
386
  # Documentation URL: https://docs.qingcloud.com/qingstor/api/bucket/delete_multiple.html
348
387
  def delete_multiple_objects(objects: [],
@@ -384,7 +423,7 @@ module QingStor
384
423
  def delete_multiple_objects_input_validate(input)
385
424
  input.deep_stringify_keys!
386
425
 
387
- unless !input['request_elements']['objects'].nil? && !input['request_elements']['objects'].to_s.empty?
426
+ unless !input['request_elements']['objects'].nil? && !input['request_elements']['objects'].empty?
388
427
  raise ParameterRequiredError.new('objects', 'DeleteMultipleObjectsInput')
389
428
  end
390
429
 
@@ -718,6 +757,45 @@ module QingStor
718
757
 
719
758
  public
720
759
 
760
+ # get_bucket_replication: Get Replication information of the bucket.
761
+ # Documentation URL: https://docs.qingcloud.com/qingstor/api/bucket/replication/get_replication.html
762
+ def get_replication
763
+ request = get_replication_request
764
+ request.send
765
+ end
766
+
767
+ def get_replication_request
768
+ input = {
769
+ config: config,
770
+ properties: properties,
771
+ api_name: 'GET Bucket Replication',
772
+ request_method: 'GET',
773
+ request_uri: '/<bucket-name>?replication',
774
+ request_params: {
775
+ },
776
+ request_headers: {
777
+ },
778
+ request_elements: {
779
+ },
780
+ request_body: nil,
781
+
782
+ status_code: [
783
+ 200
784
+ ]
785
+ }
786
+
787
+ get_bucket_replication_input_validate input
788
+ Request.new input
789
+ end
790
+
791
+ private
792
+
793
+ def get_bucket_replication_input_validate(input)
794
+ input.deep_stringify_keys!
795
+ end
796
+
797
+ public
798
+
721
799
  # get_bucket_statistics: Get statistics information of the bucket.
722
800
  # Documentation URL: https://docs.qingcloud.com/qingstor/api/bucket/get_stats.html
723
801
  def get_statistics
@@ -980,7 +1058,7 @@ module QingStor
980
1058
  def put_bucket_acl_input_validate(input)
981
1059
  input.deep_stringify_keys!
982
1060
 
983
- unless !input['request_elements']['acl'].nil? && !input['request_elements']['acl'].to_s.empty?
1061
+ unless !input['request_elements']['acl'].nil? && !input['request_elements']['acl'].empty?
984
1062
  raise ParameterRequiredError.new('acl', 'PutBucketACLInput')
985
1063
  end
986
1064
 
@@ -1123,12 +1201,12 @@ module QingStor
1123
1201
  def put_bucket_cors_input_validate(input)
1124
1202
  input.deep_stringify_keys!
1125
1203
 
1126
- unless !input['request_elements']['cors_rules'].nil? && !input['request_elements']['cors_rules'].to_s.empty?
1204
+ unless !input['request_elements']['cors_rules'].nil? && !input['request_elements']['cors_rules'].empty?
1127
1205
  raise ParameterRequiredError.new('cors_rules', 'PutBucketCORSInput')
1128
1206
  end
1129
1207
 
1130
1208
  input['request_elements']['cors_rules'].each do |x|
1131
- unless !x['allowed_methods'].nil? && !x['allowed_methods'].to_s.empty?
1209
+ unless !x['allowed_methods'].nil? && !x['allowed_methods'].empty?
1132
1210
  raise ParameterRequiredError.new('allowed_methods', 'cors_rule')
1133
1211
  end
1134
1212
 
@@ -1221,7 +1299,7 @@ module QingStor
1221
1299
  def put_bucket_lifecycle_input_validate(input)
1222
1300
  input.deep_stringify_keys!
1223
1301
 
1224
- unless !input['request_elements']['rule'].nil? && !input['request_elements']['rule'].to_s.empty?
1302
+ unless !input['request_elements']['rule'].nil? && !input['request_elements']['rule'].empty?
1225
1303
  raise ParameterRequiredError.new('rule', 'PutBucketLifecycleInput')
1226
1304
  end
1227
1305
 
@@ -1368,7 +1446,7 @@ module QingStor
1368
1446
  def put_bucket_notification_input_validate(input)
1369
1447
  input.deep_stringify_keys!
1370
1448
 
1371
- unless !input['request_elements']['notifications'].nil? && !input['request_elements']['notifications'].to_s.empty?
1449
+ unless !input['request_elements']['notifications'].nil? && !input['request_elements']['notifications'].empty?
1372
1450
  raise ParameterRequiredError.new('notifications', 'PutBucketNotificationInput')
1373
1451
  end
1374
1452
 
@@ -1396,7 +1474,7 @@ module QingStor
1396
1474
 
1397
1475
  end
1398
1476
 
1399
- unless !x['event_types'].nil? && !x['event_types'].to_s.empty?
1477
+ unless !x['event_types'].nil? && !x['event_types'].empty?
1400
1478
  raise ParameterRequiredError.new('event_types', 'notification')
1401
1479
  end
1402
1480
 
@@ -1445,12 +1523,12 @@ module QingStor
1445
1523
  def put_bucket_policy_input_validate(input)
1446
1524
  input.deep_stringify_keys!
1447
1525
 
1448
- unless !input['request_elements']['statement'].nil? && !input['request_elements']['statement'].to_s.empty?
1526
+ unless !input['request_elements']['statement'].nil? && !input['request_elements']['statement'].empty?
1449
1527
  raise ParameterRequiredError.new('statement', 'PutBucketPolicyInput')
1450
1528
  end
1451
1529
 
1452
1530
  input['request_elements']['statement'].each do |x|
1453
- unless !x['action'].nil? && !x['action'].to_s.empty?
1531
+ unless !x['action'].nil? && !x['action'].empty?
1454
1532
  raise ParameterRequiredError.new('action', 'statement')
1455
1533
  end
1456
1534
 
@@ -1497,13 +1575,116 @@ module QingStor
1497
1575
  raise ParameterRequiredError.new('id', 'statement')
1498
1576
  end
1499
1577
 
1500
- unless !x['user'].nil? && !x['user'].to_s.empty?
1578
+ unless !x['user'].nil? && !x['user'].empty?
1501
1579
  raise ParameterRequiredError.new('user', 'statement')
1502
1580
  end
1503
1581
  end
1504
1582
  end
1505
1583
 
1506
1584
  public
1585
+
1586
+ # put_bucket_replication: Set Replication information of the bucket.
1587
+ # Documentation URL: https://docs.qingcloud.com/qingstor/api/bucket/replication/put_replication.html
1588
+ def put_replication(rules: [])
1589
+ request = put_replication_request rules: rules
1590
+ request.send
1591
+ end
1592
+
1593
+ def put_replication_request(rules: [])
1594
+ input = {
1595
+ config: config,
1596
+ properties: properties,
1597
+ api_name: 'PUT Bucket Replication',
1598
+ request_method: 'PUT',
1599
+ request_uri: '/<bucket-name>?replication',
1600
+ request_params: {
1601
+ },
1602
+ request_headers: {
1603
+ },
1604
+ request_elements: {
1605
+ 'rules' => rules
1606
+ },
1607
+ request_body: nil,
1608
+
1609
+ status_code: [
1610
+ 200
1611
+ ]
1612
+ }
1613
+
1614
+ put_bucket_replication_input_validate input
1615
+ Request.new input
1616
+ end
1617
+
1618
+ private
1619
+
1620
+ def put_bucket_replication_input_validate(input)
1621
+ input.deep_stringify_keys!
1622
+
1623
+ unless !input['request_elements']['rules'].nil? && !input['request_elements']['rules'].empty?
1624
+ raise ParameterRequiredError.new('rules', 'PutBucketReplicationInput')
1625
+ end
1626
+
1627
+ input['request_elements']['rules'].each do |x|
1628
+ if x['delete_marker'] && !x['delete_marker'].to_s.empty?
1629
+ delete_marker_valid_values = %w[enabled disabled]
1630
+ unless delete_marker_valid_values.include? x['delete_marker'].to_s
1631
+ raise ParameterValueNotAllowedError.new(
1632
+ 'delete_marker',
1633
+ x['delete_marker'],
1634
+ delete_marker_valid_values,
1635
+ )
1636
+ end
1637
+ end
1638
+
1639
+ unless x['destination'].nil?
1640
+
1641
+ unless !x['destination']['bucket'].nil? && !x['destination']['bucket'].to_s.empty?
1642
+ raise ParameterRequiredError.new('bucket', 'destination')
1643
+ end
1644
+
1645
+ end
1646
+
1647
+ if x['destination'].nil?
1648
+ raise ParameterRequiredError.new('destination', 'rules')
1649
+ end
1650
+
1651
+ unless x['filters'].nil?
1652
+
1653
+ end
1654
+
1655
+ if x['filters'].nil?
1656
+ raise ParameterRequiredError.new('filters', 'rules')
1657
+ end
1658
+
1659
+ unless !x['id'].nil? && !x['id'].to_s.empty?
1660
+ raise ParameterRequiredError.new('id', 'rules')
1661
+ end
1662
+
1663
+ if x['status'] && !x['status'].to_s.empty?
1664
+ status_valid_values = %w[enabled disabled]
1665
+ unless status_valid_values.include? x['status'].to_s
1666
+ raise ParameterValueNotAllowedError.new(
1667
+ 'status',
1668
+ x['status'],
1669
+ status_valid_values,
1670
+ )
1671
+ end
1672
+ end
1673
+
1674
+ next unless x['sync_marker'] && !x['sync_marker'].to_s.empty?
1675
+
1676
+ sync_marker_valid_values = %w[enabled disabled]
1677
+ next if sync_marker_valid_values.include? x['sync_marker'].to_s
1678
+
1679
+ raise ParameterValueNotAllowedError.new(
1680
+ 'sync_marker',
1681
+ x['sync_marker'],
1682
+ sync_marker_valid_values,
1683
+ )
1684
+ end
1685
+ end
1686
+
1687
+ public
1507
1688
  end
1508
1689
  end
1509
1690
  end
@@ -194,7 +194,7 @@ module QingStor
194
194
  raise ParameterRequiredError.new('upload_id', 'CompleteMultipartUploadInput')
195
195
  end
196
196
 
197
- unless !input['request_elements']['object_parts'].nil? && !input['request_elements']['object_parts'].to_s.empty?
197
+ unless !input['request_elements']['object_parts'].nil? && !input['request_elements']['object_parts'].empty?
198
198
  raise ParameterRequiredError.new('object_parts', 'CompleteMultipartUploadInput')
199
199
  end
200
200
 
@@ -482,7 +482,7 @@ module QingStor
482
482
  x_qs_encryption_customer_algorithm: '',
483
483
  x_qs_encryption_customer_key: '',
484
484
  x_qs_encryption_customer_key_md5: '',
485
- x_qs_meta_data: [],
485
+ x_qs_meta_data: {},
486
486
  x_qs_storage_class: '')
487
487
  request = initiate_multipart_upload_request object_key, content_type: content_type,
488
488
  x_qs_encryption_customer_algorithm: x_qs_encryption_customer_algorithm,
@@ -497,7 +497,7 @@ module QingStor
497
497
  x_qs_encryption_customer_algorithm: '',
498
498
  x_qs_encryption_customer_key: '',
499
499
  x_qs_encryption_customer_key_md5: '',
500
- x_qs_meta_data: [],
500
+ x_qs_meta_data: {},
501
501
  x_qs_storage_class: '')
502
502
  properties[:'object-key'] = object_key
503
503
  input = {
@@ -681,7 +681,8 @@ module QingStor
681
681
  x_qs_encryption_customer_key_md5: '',
682
682
  x_qs_fetch_if_unmodified_since: '',
683
683
  x_qs_fetch_source: '',
684
- x_qs_meta_data: [],
684
+ x_qs_meta_data: {},
685
+ x_qs_metadata_directive: '',
685
686
  x_qs_move_source: '',
686
687
  x_qs_storage_class: '',
687
688
  body: nil)
@@ -705,6 +706,7 @@ module QingStor
705
706
  x_qs_fetch_if_unmodified_since: x_qs_fetch_if_unmodified_since,
706
707
  x_qs_fetch_source: x_qs_fetch_source,
707
708
  x_qs_meta_data: x_qs_meta_data,
709
+ x_qs_metadata_directive: x_qs_metadata_directive,
708
710
  x_qs_move_source: x_qs_move_source,
709
711
  x_qs_storage_class: x_qs_storage_class,
710
712
  body: body
@@ -730,7 +732,8 @@ module QingStor
730
732
  x_qs_encryption_customer_key_md5: '',
731
733
  x_qs_fetch_if_unmodified_since: '',
732
734
  x_qs_fetch_source: '',
733
- x_qs_meta_data: [],
735
+ x_qs_meta_data: {},
736
+ x_qs_metadata_directive: '',
734
737
  x_qs_move_source: '',
735
738
  x_qs_storage_class: '',
736
739
  body: nil)
@@ -764,6 +767,7 @@ module QingStor
764
767
  'X-QS-Fetch-If-Unmodified-Since' => x_qs_fetch_if_unmodified_since,
765
768
  'X-QS-Fetch-Source' => x_qs_fetch_source,
766
769
  'X-QS-MetaData' => x_qs_meta_data,
770
+ 'X-QS-Metadata-Directive' => x_qs_metadata_directive,
767
771
  'X-QS-Move-Source' => x_qs_move_source,
768
772
  'X-QS-Storage-Class' => x_qs_storage_class
769
773
  },
@@ -785,6 +789,17 @@ module QingStor
785
789
  def put_object_input_validate(input)
786
790
  input.deep_stringify_keys!
787
791
 
792
+ if input['request_headers']['X-QS-Metadata-Directive'] && !input['request_headers']['X-QS-Metadata-Directive'].to_s.empty?
793
+ x_qs_metadata_directive_valid_values = %w[COPY REPLACE]
794
+ unless x_qs_metadata_directive_valid_values.include? input['request_headers']['X-QS-Metadata-Directive'].to_s
795
+ raise ParameterValueNotAllowedError.new(
796
+ 'X-QS-Metadata-Directive',
797
+ input['request_headers']['X-QS-Metadata-Directive'],
798
+ x_qs_metadata_directive_valid_values,
799
+ )
800
+ end
801
+ end
802
+
788
803
  if input['request_headers']['X-QS-Storage-Class'] && !input['request_headers']['X-QS-Storage-Class'].to_s.empty?
789
804
  x_qs_storage_class_valid_values = %w[STANDARD STANDARD_IA]
790
805
  unless x_qs_storage_class_valid_values.include? input['request_headers']['X-QS-Storage-Class'].to_s
@@ -16,6 +16,6 @@
16
16
 
17
17
  module QingStor
18
18
  module SDK
19
- VERSION = '2.3.0'.freeze
19
+ VERSION = '2.4.0'.freeze
20
20
  end
21
21
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qingstor-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yunify SDK Group
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-11 00:00:00.000000000 Z
11
+ date: 2021-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -42,16 +42,22 @@ dependencies:
42
42
  name: net-http-persistent
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '3.1'
48
+ - - "<"
46
49
  - !ruby/object:Gem::Version
47
- version: 3.0.0
50
+ version: '4.1'
48
51
  type: :runtime
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
51
54
  requirements:
52
- - - "~>"
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '3.1'
58
+ - - "<"
53
59
  - !ruby/object:Gem::Version
54
- version: 3.0.0
60
+ version: '4.1'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: bundler
57
63
  requirement: !ruby/object:Gem::Requirement
@@ -72,42 +78,42 @@ dependencies:
72
78
  requirements:
73
79
  - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: 2.4.0
81
+ version: 5.2.0
76
82
  type: :development
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
86
  - - "~>"
81
87
  - !ruby/object:Gem::Version
82
- version: 2.4.0
88
+ version: 5.2.0
83
89
  - !ruby/object:Gem::Dependency
84
90
  name: rake
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
93
  - - "~>"
88
94
  - !ruby/object:Gem::Version
89
- version: 11.3.0
95
+ version: 13.0.1
90
96
  type: :development
91
97
  prerelease: false
92
98
  version_requirements: !ruby/object:Gem::Requirement
93
99
  requirements:
94
100
  - - "~>"
95
101
  - !ruby/object:Gem::Version
96
- version: 11.3.0
102
+ version: 13.0.1
97
103
  - !ruby/object:Gem::Dependency
98
104
  name: rspec
99
105
  requirement: !ruby/object:Gem::Requirement
100
106
  requirements:
101
107
  - - "~>"
102
108
  - !ruby/object:Gem::Version
103
- version: 3.5.0
109
+ version: 3.10.0
104
110
  type: :development
105
111
  prerelease: false
106
112
  version_requirements: !ruby/object:Gem::Requirement
107
113
  requirements:
108
114
  - - "~>"
109
115
  - !ruby/object:Gem::Version
110
- version: 3.5.0
116
+ version: 3.10.0
111
117
  - !ruby/object:Gem::Dependency
112
118
  name: rubocop
113
119
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +134,14 @@ dependencies:
128
134
  requirements:
129
135
  - - "~>"
130
136
  - !ruby/object:Gem::Version
131
- version: 0.16.1
137
+ version: 0.18.5
132
138
  type: :development
133
139
  prerelease: false
134
140
  version_requirements: !ruby/object:Gem::Requirement
135
141
  requirements:
136
142
  - - "~>"
137
143
  - !ruby/object:Gem::Version
138
- version: 0.16.1
144
+ version: 0.18.5
139
145
  description: The official QingStor SDK for Ruby programming language.
140
146
  email:
141
147
  - sdk_group@yunify.com
@@ -166,7 +172,7 @@ licenses:
166
172
  - Apache-2.0
167
173
  metadata:
168
174
  allowed_push_host: https://rubygems.org
169
- post_install_message:
175
+ post_install_message:
170
176
  rdoc_options: []
171
177
  require_paths:
172
178
  - lib
@@ -174,7 +180,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
174
180
  requirements:
175
181
  - - ">="
176
182
  - !ruby/object:Gem::Version
177
- version: 2.1.5
183
+ version: 2.4.4
178
184
  required_rubygems_version: !ruby/object:Gem::Requirement
179
185
  requirements:
180
186
  - - ">="
@@ -182,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
182
188
  version: '0'
183
189
  requirements: []
184
190
  rubygems_version: 3.0.8
185
- signing_key:
191
+ signing_key:
186
192
  specification_version: 4
187
193
  summary: SDK for QingStor
188
194
  test_files: []