kinetic_sdk 5.0.13 → 5.0.14

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: 1bd5047435e78a51884c4b0b9a9766e273637fe9e31134fda839ebd4b5c9f939
4
- data.tar.gz: a22fb82511b3670bb86931fd0a57cea9ef91adc7ec4d0780f6f3c5f151a84eb6
3
+ metadata.gz: 67e6967468589fa6bfdf4a523663d1675053a618882337a2d3b001265a525c19
4
+ data.tar.gz: 32ffee19ba6489077e6102beea1c96a2bccbad93fcd1c5ee38291ecebc8aec9d
5
5
  SHA512:
6
- metadata.gz: ea4237e58c4e40ee2b6c154efbec23d467a93d9ea83c0d0a798a53d987336c1fc9832ada3ea75527a74605ed36985f4e644876a345b4610cb74dd69d5574c971
7
- data.tar.gz: b0901ed2b02c428e70eebaa6a260b16ca7f2f47aca26d020bdb79ab87de0f7e73205279a01bf9caba85b8b3f65e64662745247ae461ab29f2abddf2a91043e3d
6
+ metadata.gz: 02d1a9fba8f13cb36dfe03848c6ffe81fe0c8be5b4298380ff8f18e39539dae0d9e17df66f17197b279a3f0022757e719d19c24827ad7d155f95db4b56e09239
7
+ data.tar.gz: 492ecbe9146c29d23e11f3a36fcb3a3cb52c712a5a902d8f7dbbb22c94cdac6890a85d7623265a7901a22999ade8d4c026a2fb8a6e2671ac2c10d9fb62e31393
@@ -1,5 +1,12 @@
1
1
  # Change Log
2
2
 
3
+ ## [5.0.14](https://github.com/kineticdata/kinetic-sdk-rb/releases/tag/5.0.14) (2021-01-15)
4
+
5
+ **Implemented enhancements:**
6
+
7
+ - Support for submitting attachments (datastore and form submissions)
8
+ - Bug Fixes
9
+
3
10
  ## [5.0.13](https://github.com/kineticdata/kinetic-sdk-rb/releases/tag/5.0.13) (2020-09-03)
4
11
 
5
12
  **Implemented enhancements:**
@@ -64,7 +64,6 @@ module KineticSdk
64
64
 
65
65
  # Add Bridge to Space
66
66
  #
67
- # @param space [String] slug of the space
68
67
  # @param body [Hash] properties associated to the Bridge
69
68
  # - +space+
70
69
  # - +adapterClass+
@@ -64,7 +64,6 @@ module KineticSdk
64
64
 
65
65
  # Add Filestore to Space
66
66
  #
67
- # @param space [String] slug of the space
68
67
  # @param body [Hash] properties associated to the Filestore
69
68
  # - +space+
70
69
  # - +adapterClass+
@@ -64,7 +64,6 @@ module KineticSdk
64
64
 
65
65
  # Add Handler to Space
66
66
  #
67
- # @param space [String] slug of the space
68
67
  # @param body [Hash] properties associated to the Handler
69
68
  # - +space+
70
69
  # - +definitionId+
@@ -8,15 +8,16 @@ module KineticSdk
8
8
  # - +origin+ - Origin ID of the submission to be added
9
9
  # - +parent+ - Parent ID of the submission to be added
10
10
  # - +values+ - hash of field values for the submission
11
+ # - attachment fields contain an Array of Hashes. Each hash represents an attachment answer for the field. The hash must include a `path` property with a value to represent the local file location.)
11
12
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
12
13
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
13
14
  def add_datastore_submission(form_slug, payload={}, headers=default_headers)
14
- # initialize "values" if nil
15
- payload["values"] = {} if payload["values"].nil?
16
15
  # set origin hash if origin was passed as a string
17
16
  payload["origin"] = { "id" => payload["origin"] } if payload["origin"].is_a? String
18
17
  # set parent hash if parent was passed as a string
19
18
  payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
19
+ # prepare any attachment values
20
+ payload["values"] = prepare_new_datastore_submission_values(form_slug, payload["values"])
20
21
  # Create the submission
21
22
  @logger.info("Adding a submission in the \"#{form_slug}\" Datastore Form.")
22
23
  post("#{@api_url}/datastore/forms/#{form_slug}/submissions", payload, headers)
@@ -30,15 +31,16 @@ module KineticSdk
30
31
  # - +origin+ - Origin ID of the submission to be added
31
32
  # - +parent+ - Parent ID of the submission to be added
32
33
  # - +values+ - hash of field values for the submission
34
+ # - attachment fields contain an Array of Hashes. Each hash represents an attachment answer for the field. The hash must include a `path` property with a value to represent the local file location.)
33
35
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
34
36
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
35
37
  def add_datastore_submission_page(form_slug, page_name, payload={}, headers=default_headers)
36
- # initialize "values" if nil
37
- payload["values"] = {} if payload["values"].nil?
38
38
  # set origin hash if origin was passed as a string
39
39
  payload["origin"] = { "id" => payload["origin"] } if payload["origin"].is_a? String
40
40
  # set parent hash if parent was passed as a string
41
41
  payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
42
+ # prepare any attachment values
43
+ payload["values"] = prepare_new_datastore_submission_values(form_slug, payload["values"])
42
44
  # Create the submission
43
45
  @logger.info("Adding a submission page in the \"#{form_slug}\" Datastore Form.")
44
46
  post("#{@api_url}/datastore/forms/#{form_slug}/submissions?page=#{encode(page_name)}", payload, headers)
@@ -51,22 +53,47 @@ module KineticSdk
51
53
  # - +origin+ - Origin ID of the submission to be patched
52
54
  # - +parent+ - Parent ID of the submission to be patched
53
55
  # - +values+ - hash of field values for the submission
56
+ # - attachment fields contain an Array of Hashes. Each hash represents an attachment answer for the field. The hash must include a `path` property with a value to represent the local file location.)
54
57
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
55
58
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
56
59
  def patch_datastore_submission(form_slug, payload={}, headers=default_headers)
57
60
  # set the currentPage hash if currentPage was passed as a string
58
61
  payload["currentPage"] = { "name" => payload["currentPage"] } if payload["currentPage"].is_a? String
59
- # initialize "values" if nil
60
- payload["values"] = {} if payload["values"].nil?
61
62
  # set origin hash if origin was passed as a string
62
63
  payload["origin"] = { "id" => payload["origin"] } if payload["origin"].is_a? String
63
64
  # set parent hash if parent was passed as a string
64
65
  payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
66
+ # prepare any attachment values
67
+ payload["values"] = prepare_new_datastore_submission_values(form_slug, payload["values"])
65
68
  # Create the submission
66
69
  @logger.info("Patching a submission in the \"#{form_slug}\" Form.")
67
70
  patch("#{@api_url}/datastore/forms/#{form_slug}/submissions", payload, headers)
68
71
  end
69
72
 
73
+ # Patch an existing Datastore Submission
74
+ #
75
+ # @param submission_id [String] id of the Submission
76
+ # @param payload [Hash] payload of the submission
77
+ # - +origin+ - Origin ID of the submission to be patched
78
+ # - +parent+ - Parent ID of the submission to be patched
79
+ # - +values+ - hash of field values for the submission
80
+ # - attachment fields contain an Array of Hashes. Each hash represents an attachment answer for the field. The hash must include a `path` property with a value to represent the local file location.)
81
+ # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
82
+ # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
83
+ def patch_existing_datastore_submission(submission_id, payload={}, headers=default_headers)
84
+ # set the currentPage hash if currentPage was passed as a string
85
+ payload["currentPage"] = { "name" => payload["currentPage"] } if payload["currentPage"].is_a? String
86
+ # set origin hash if origin was passed as a string
87
+ payload["origin"] = { "id" => payload["origin"] } if payload["origin"].is_a? String
88
+ # set parent hash if parent was passed as a string
89
+ payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
90
+ # prepare any attachment values
91
+ payload["values"] = prepare_updated_datastore_submission_values(submission_id, payload["values"])
92
+ # Update the submission
93
+ @logger.info("Patching a submission with id \"#{submission_id}\"")
94
+ patch("#{@api_url}/datastore/submissions/#{submission_id}", payload, headers)
95
+ end
96
+
70
97
  # Find all Submissions for a Datastore Form.
71
98
  #
72
99
  # This method will process pages of form submissions and internally
@@ -164,5 +191,27 @@ module KineticSdk
164
191
  delete("#{@api_url}/datastore/submissions/#{encode(submission_id)}", headers)
165
192
  end
166
193
 
194
+ private
195
+
196
+ # Prepares new datastore submission values for attachment fields
197
+ #
198
+ # @param form_slug [String] datastore form slug
199
+ # @param values [Hash] hash of values being submitted
200
+ # @return [Hash] hash of values with attachment paths replaced with uploaded file information
201
+ def prepare_new_datastore_submission_values(form_slug, values)
202
+ file_upload_url = "#{@api_url.gsub('/api/v1','')}/datastore/forms/#{form_slug}/files"
203
+ prepare_submission_values(values, file_upload_url)
204
+ end
205
+
206
+ # Prepares updated datastore submission values for attachment fields
207
+ #
208
+ # @param submission_id [String] id of the Submission
209
+ # @param values [Hash] hash of values being submitted
210
+ # @return [Hash] hash of values with attachment paths replaced with uploaded file information
211
+ def prepare_updated_datastore_submission_values(submission_id, values)
212
+ file_upload_url = "#{@api_url.gsub('/api/v1','')}/datastore/submissions/#{submission_id}/files"
213
+ prepare_submission_values(values, file_upload_url)
214
+ end
215
+
167
216
  end
168
217
  end
@@ -79,7 +79,6 @@ module KineticSdk
79
79
  # Delete Agent Component
80
80
  #
81
81
  # @param agent_slug [String] the slug of the agent to retrieve
82
- # @param params [Hash] Query parameters that are added to the URL, such as +include+
83
82
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
84
83
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
85
84
  def delete_agent_component(agent_slug, headers = default_headers)
@@ -9,18 +9,19 @@ module KineticSdk
9
9
  # - +origin+ - Origin ID of the submission to be added
10
10
  # - +parent+ - Parent ID of the submission to be added
11
11
  # - +values+ - hash of field values for the submission
12
+ # - attachment fields contain an Array of Hashes. Each hash represents an attachment answer for the field. The hash must include a `path` property with a value to represent the local file location.)
12
13
  # @param parameters [Hash] hash of query parameters to append to the URL
13
14
  # - +include+ - comma-separated list of properties to include in the response
14
15
  # - +completed+ - signals that the submission should be completed, default is false
15
16
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
16
17
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
17
18
  def add_submission(kapp_slug, form_slug, payload={}, parameters={}, headers=default_headers)
18
- # initialize "values" if nil
19
- payload["values"] = {} if payload["values"].nil?
20
19
  # set origin hash if origin was passed as a string
21
20
  payload["origin"] = { "id" => payload["origin"] } if payload["origin"].is_a? String
22
21
  # set parent hash if parent was passed as a string
23
22
  payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
23
+ # prepare any attachment values
24
+ payload["values"] = prepare_new_submission_values(kapp_slug, form_slug, payload["values"])
24
25
  # build the uri with the encoded parameters
25
26
  uri = URI.parse("#{@api_url}/kapps/#{kapp_slug}/forms/#{form_slug}/submissions")
26
27
  uri.query = URI.encode_www_form(parameters) unless parameters.empty?
@@ -38,6 +39,7 @@ module KineticSdk
38
39
  # - +origin+ - Origin ID of the submission to be added
39
40
  # - +parent+ - Parent ID of the submission to be added
40
41
  # - +values+ - hash of field values for the submission
42
+ # - attachment fields contain an Array of Hashes. Each hash represents an attachment answer for the field. The hash must include a `path` property with a value to represent the local file location.)
41
43
  # @param parameters [Hash] hash of query parameters to append to the URL
42
44
  # - +include+ - comma-separated list of properties to include in the response
43
45
  # - +staged+ - Indicates whether field validations and page advancement should occur, default is false
@@ -45,12 +47,12 @@ module KineticSdk
45
47
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
46
48
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
47
49
  def add_submission_page(kapp_slug, form_slug, page_name, payload={}, parameters={}, headers=default_headers)
48
- # initialize "values" if nil
49
- payload["values"] = {} if payload["values"].nil?
50
50
  # set origin hash if origin was passed as a string
51
51
  payload["origin"] = { "id" => payload["origin"] } if payload["origin"].is_a? String
52
52
  # set parent hash if parent was passed as a string
53
53
  payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
54
+ # prepare any attachment values
55
+ payload["values"] = prepare_new_submission_values(kapp_slug, form_slug, payload["values"])
54
56
  # add the page name to the parameters
55
57
  parameters["page"] = page_name
56
58
  # build the uri with the encoded parameters
@@ -69,17 +71,18 @@ module KineticSdk
69
71
  # - +origin+ - Origin ID of the submission to be patched
70
72
  # - +parent+ - Parent ID of the submission to be patched
71
73
  # - +values+ - hash of field values for the submission
74
+ # - attachment fields contain an Array of Hashes. Each hash represents an attachment answer for the field. The hash must include a `path` property with a value to represent the local file location.)
72
75
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
73
76
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
74
77
  def patch_new_submission(kapp_slug, form_slug, payload={}, headers=default_headers)
75
78
  # set the currentPage hash if currentPage was passed as a string
76
79
  payload["currentPage"] = { "name" => payload["currentPage"] } if payload["currentPage"].is_a? String
77
- # initialize "values" if nil
78
- payload["values"] = {} if payload["values"].nil?
79
80
  # set origin hash if origin was passed as a string
80
81
  payload["origin"] = { "id" => payload["origin"] } if payload["origin"].is_a? String
81
82
  # set parent hash if parent was passed as a string
82
83
  payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
84
+ # prepare any attachment values
85
+ payload["values"] = prepare_new_submission_values(kapp_slug, form_slug, payload["values"])
83
86
  # Create the submission
84
87
  @logger.info("Patching a submission in the \"#{form_slug}\" Form.")
85
88
  patch("#{@api_url}/kapps/#{kapp_slug}/forms/#{form_slug}/submissions", payload, headers)
@@ -92,17 +95,18 @@ module KineticSdk
92
95
  # - +origin+ - Origin ID of the submission to be patched
93
96
  # - +parent+ - Parent ID of the submission to be patched
94
97
  # - +values+ - hash of field values for the submission
98
+ # - attachment fields contain an Array of Hashes. Each hash represents an attachment answer for the field. The hash must include a `path` property with a value to represent the local file location.)
95
99
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
96
100
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
97
101
  def patch_existing_submission(submission_id, payload={}, headers=default_headers)
98
102
  # set the currentPage hash if currentPage was passed as a string
99
103
  payload["currentPage"] = { "name" => payload["currentPage"] } if payload["currentPage"].is_a? String
100
- # initialize "values" if nil
101
- payload["values"] = {} if payload["values"].nil?
102
104
  # set origin hash if origin was passed as a string
103
105
  payload["origin"] = { "id" => payload["origin"] } if payload["origin"].is_a? String
104
106
  # set parent hash if parent was passed as a string
105
107
  payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
108
+ # prepare any attachment values
109
+ payload["values"] = prepare_updated_submission_values(submission_id, payload["values"])
106
110
  # Create the submission
107
111
  @logger.info("Patching a submission with id \"#{submission_id}\"")
108
112
  patch("#{@api_url}/submissions/#{submission_id}", payload, headers)
@@ -211,5 +215,59 @@ module KineticSdk
211
215
  put("#{@api_url}/submissions/#{encode(submission_id)}", body, headers)
212
216
  end
213
217
 
218
+ private
219
+
220
+ # Prepares new submission values for attachment fields
221
+ #
222
+ # @param kapp_slug [String] kapp slug
223
+ # @param form_slug [String] form slug
224
+ # @param values [Hash] hash of values being submitted
225
+ # @return [Hash] hash of values with attachment paths replaced with uploaded file information
226
+ def prepare_new_submission_values(kapp_slug, form_slug, values)
227
+ file_upload_url = "#{@api_url.gsub('/app/api/v1','')}/#{kapp_slug}/#{form_slug}/files"
228
+ prepare_submission_values(values, file_upload_url)
229
+ end
230
+
231
+ # Prepares updated submission values for attachment fields
232
+ #
233
+ # @param submission_id [String] id of the Submission
234
+ # @param values [Hash] hash of values being submitted
235
+ # @return [Hash] hash of values with attachment paths replaced with uploaded file information
236
+ def prepare_updated_submission_values(submission_id, values)
237
+ file_upload_url = "#{@api_url.gsub('/app/api/v1','')}/submissions/#{submission_id}/files"
238
+ prepare_submission_values(values, file_upload_url)
239
+ end
240
+
241
+ # Prepares submission values for attachment fields
242
+ #
243
+ # @param values [Hash] hash of values being submitted
244
+ # @param file_upload_url [String] url to post attachments
245
+ # @return [Hash] hash of values with attachment paths replaced with uploaded file information
246
+ def prepare_submission_values(values, file_upload_url)
247
+ # initialize the values
248
+ values = {} if values.nil?
249
+ # handle attachment values
250
+ values.each do |field, value|
251
+ # if the value contains an array of files
252
+ if value.is_a?(Array) && !value.empty? && value.first.is_a?(Hash) && value.first.has_key?('path')
253
+ value.each_with_index do |file, index|
254
+ # upload the file to the server
255
+ file_upload_response = post_multipart(
256
+ file_upload_url,
257
+ { "package" => File.new(file['path']) },
258
+ default_headers)
259
+ # update the value with the file upload response
260
+ if file_upload_response.status == 200
261
+ values[field][index] = file_upload_response.content.first
262
+ else
263
+ raise "Attachment file upload failed: (#{file_upload_response.status}) #{file_upload_response.content_string}"
264
+ end
265
+ end
266
+ end
267
+ end
268
+ # return the values
269
+ values
270
+ end
271
+
214
272
  end
215
273
  end
@@ -49,7 +49,7 @@ module KineticSdk
49
49
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
50
50
  def delete_sources(headers=header_basic_auth)
51
51
  @logger.info("Deleting all sources")
52
- (find_sources(headers).content['sources'] || []).each do |source|
52
+ (find_sources(headers).content["sourceRoots"] || []).each do |source|
53
53
  delete("#{@api_url}/sources/#{encode(source['name'])}", headers)
54
54
  end
55
55
  end
@@ -634,9 +634,9 @@ module KineticSdk
634
634
  # @option http_options [Fixnum] :max_redirects optional - max number of times to redirect
635
635
  # @option http_options [Fixnum] :gateway_retry_limit optional - max number of times to retry a bad gateway
636
636
  # @option http_options [Float] :gateway_retry_delay optional - number of seconds to delay before retrying a bad gateway
637
- def stream_download_to_file(file_path, url, params={}, headers={}, http_options=@http_options)
637
+ def stream_download_to_file(file_path, url, params={}, headers={}, http_options=@options)
638
638
  # Determine if redirection is involved
639
- url = redirect_url(url, params, headers, max_redirects)
639
+ url = redirect_url(url, params, headers, http_options)
640
640
  # parse the URL
641
641
  uri = URI.parse(url)
642
642
 
@@ -645,15 +645,17 @@ module KineticSdk
645
645
  # build the http object
646
646
  http = build_http(uri)
647
647
 
648
- # stream the attachment
649
- file = File.open(file_path, "wb")
648
+ # prepare the download
649
+ file = nil
650
650
  file_name = File.basename(file_path)
651
651
  response_code = nil
652
652
  message = nil
653
653
  begin
654
+ # stream the attachment
654
655
  http.request_get(uri.request_uri, headers) do |response|
655
656
  response_code = response.code
656
657
  if response_code == "200"
658
+ file = File.open(file_path, "wb")
657
659
  response.read_body { |chunk| file.write(chunk) }
658
660
  else
659
661
  message = response.body
@@ -668,8 +670,9 @@ module KineticSdk
668
670
  rescue StandardError => e
669
671
  @logger.error("Failed to export file attachment \"#{file_name}\": (#{e})")
670
672
  ensure
671
- file.close()
673
+ file.close() unless file.nil?
672
674
  end
675
+ message
673
676
  end
674
677
 
675
678
 
@@ -3,5 +3,5 @@ module KineticSdk
3
3
  # Version of Kinetic SDK
4
4
  #
5
5
  # @return [String] Version of the SDK
6
- VERSION = "5.0.13"
6
+ VERSION = "5.0.14"
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kinetic_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.13
4
+ version: 5.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kinetic Data
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-03 00:00:00.000000000 Z
11
+ date: 2021-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -17,8 +17,8 @@ dependencies:
17
17
  - !ruby/object:Gem::Version
18
18
  version: 1.0.7
19
19
  name: slugify
20
- prerelease: false
21
20
  type: :runtime
21
+ prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
@@ -31,8 +31,8 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.0.0
33
33
  name: multipart-post
34
- prerelease: false
35
34
  type: :runtime
35
+ prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
@@ -45,8 +45,8 @@ dependencies:
45
45
  - !ruby/object:Gem::Version
46
46
  version: '3.1'
47
47
  name: mime-types
48
- prerelease: false
49
48
  type: :runtime
49
+ prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
@@ -59,8 +59,8 @@ dependencies:
59
59
  - !ruby/object:Gem::Version
60
60
  version: 1.12.1
61
61
  name: parallel
62
- prerelease: false
63
62
  type: :runtime
63
+ prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
@@ -73,8 +73,8 @@ dependencies:
73
73
  - !ruby/object:Gem::Version
74
74
  version: 1.9.0
75
75
  name: ruby-progressbar
76
- prerelease: false
77
76
  type: :runtime
77
+ prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '='
@@ -87,8 +87,8 @@ dependencies:
87
87
  - !ruby/object:Gem::Version
88
88
  version: 0.1.1
89
89
  name: kontena-websocket-client
90
- prerelease: false
91
90
  type: :development
91
+ prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - '='
@@ -101,8 +101,8 @@ dependencies:
101
101
  - !ruby/object:Gem::Version
102
102
  version: '1.17'
103
103
  name: bundler
104
- prerelease: false
105
104
  type: :development
105
+ prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
@@ -115,8 +115,8 @@ dependencies:
115
115
  - !ruby/object:Gem::Version
116
116
  version: 13.0.1
117
117
  name: rake
118
- prerelease: false
119
118
  type: :development
119
+ prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
@@ -129,8 +129,8 @@ dependencies:
129
129
  - !ruby/object:Gem::Version
130
130
  version: 0.9.25
131
131
  name: yard
132
- prerelease: false
133
132
  type: :development
133
+ prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
@@ -423,8 +423,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
423
423
  - !ruby/object:Gem::Version
424
424
  version: '0'
425
425
  requirements: []
426
- rubyforge_project:
427
- rubygems_version: 2.6.11
426
+ rubygems_version: 3.0.6
428
427
  signing_key:
429
428
  specification_version: 4
430
429
  summary: Ruby SDK for Kinetic Data application APIs