transferzero-sdk 1.19.4 → 1.19.5

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: 602271671f52a7649c3698451bde3dd6a2c70de06944b174b82b9e8b0df2c733
4
- data.tar.gz: 93e2aa81dfb001bbeffe45565e61fd9aa5a8bb146c337196e7fca5f0dbcebdeb
3
+ metadata.gz: 711cab66de6f674b4c8a26cb49d592b823b1157823780e44d17dd86cb3c4f1e2
4
+ data.tar.gz: c8cbfdc26f64b1d8e76974cfce5f6b136ea027b2cd01bbff5d52294b8b8878cc
5
5
  SHA512:
6
- metadata.gz: c684085f257fdfddd321958193bf67747a48d7741dc336dd196bb8852489c1d79e880ab1fcb14ee0a0c2fe90bbf687f98d3a4a4c65aaf0115a99b5e50afd572b
7
- data.tar.gz: f157ab2e97ff128761e96a90cf5391aeed831599c843e9e895b54d064f73db662de4e5afc2032c78f25b0ed3669f73d614eb1c835c454420ad28e3c45988d9f2
6
+ metadata.gz: 7195f09b3c82779a5c741bf583c5d007d270c065b3175469a7f5e1e07be4972c55bef885efafc99a6382bbada07a8677bcd22fc542ed27cf9cf2e6ba6828ad58
7
+ data.tar.gz: 86661a8a92640e8b76f6aa4a2291d145632cf8d76d8b322cc9bc0fc1b4a47000fec36acc0a0b49e616bf64cad80aa74075363928711fe05b6e3c948b054c8810
data/README.md CHANGED
@@ -7,7 +7,7 @@ Reference documentation for the TransferZero API V1
7
7
  This SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
8
8
 
9
9
  - API version: 1.0
10
- - Package version: 1.19.4
10
+ - Package version: 1.19.5
11
11
  - Build package: org.openapitools.codegen.languages.RubyClientCodegen
12
12
 
13
13
  For more information, please visit:
@@ -31,15 +31,15 @@ gem build transferzero-sdk.gemspec
31
31
  Then either install the gem locally:
32
32
 
33
33
  ```shell
34
- gem install ./transferzero-sdk-1.19.4.gem
34
+ gem install ./transferzero-sdk-1.19.5.gem
35
35
  ```
36
- (for development, run `gem install --dev ./transferzero-sdk-1.19.4.gem` to install the development dependencies)
36
+ (for development, run `gem install --dev ./transferzero-sdk-1.19.5.gem` to install the development dependencies)
37
37
 
38
38
  or publish the gem to a gem hosting service, e.g. [RubyGems](https://rubygems.org/).
39
39
 
40
40
  Finally add this to the Gemfile:
41
41
 
42
- gem 'transferzero-sdk', '~> 1.19.4'
42
+ gem 'transferzero-sdk', '~> 1.19.5'
43
43
 
44
44
  ### Install from Git
45
45
 
@@ -14,7 +14,8 @@ require 'date'
14
14
  require 'json'
15
15
  require 'logger'
16
16
  require 'tempfile'
17
- require 'typhoeus'
17
+ require 'time'
18
+ require 'faraday'
18
19
  require 'uri'
19
20
  require 'openssl'
20
21
  require 'securerandom'
@@ -35,7 +36,7 @@ module TransferZero
35
36
  # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
36
37
  def initialize(config = Configuration.default)
37
38
  @config = config
38
- @user_agent = "TransferZero-SDK/Ruby/1.19.4"
39
+ @user_agent = "TransferZero-SDK/Ruby/1.19.5"
39
40
  @default_headers = {
40
41
  'Content-Type' => 'application/json',
41
42
  'User-Agent' => @user_agent
@@ -51,33 +52,51 @@ module TransferZero
51
52
  # @return [Array<(Object, Fixnum, Hash)>] an array of 3 elements:
52
53
  # the data deserialized from response body (could be nil), response status code and response headers.
53
54
  def call_api(http_method, path, opts = {})
54
- request = build_request(http_method, path, opts)
55
- response = request.run
55
+ ssl_options = {
56
+ :ca_file => @config.ssl_ca_file,
57
+ :verify => @config.ssl_verify,
58
+ :verify_mode => @config.ssl_verify_mode,
59
+ :client_cert => @config.ssl_client_cert,
60
+ :client_key => @config.ssl_client_key
61
+ }
56
62
 
57
- if @config.debugging
58
- @config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
63
+ connection = Faraday.new(:url => config.base_url, :ssl => ssl_options) do |conn|
64
+ if opts[:header_params]["Content-Type"] == "multipart/form-data"
65
+ conn.request :multipart
66
+ conn.request :url_encoded
67
+ end
68
+ conn.adapter(Faraday.default_adapter)
59
69
  end
60
70
 
61
- unless response.success?
62
- if response.timed_out?
63
- fail ApiError.new('Connection timed out')
64
- elsif response.code == 0
65
- # Errors from libcurl will be made visible here
66
- fail ApiError.new(:code => 0,
67
- :message => response.return_message)
68
- elsif response.code == 422
69
- fail ApiError.new(:code => response.code,
70
- :response_headers => response.headers,
71
- :response_body => response.body,
72
- :validation_error => true
73
- )
74
- else
75
- fail ApiError.new(:code => response.code,
76
- :response_headers => response.headers,
77
- :response_body => response.body,
78
- :validation_error => false),
79
- response.status_message
71
+ begin
72
+ response = connection.public_send(http_method.to_sym.downcase) do |req|
73
+ build_request(http_method, path, req, opts)
74
+ end
75
+
76
+ if @config.debugging
77
+ @config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
78
+ end
79
+
80
+ unless response.success?
81
+ if response.status == 0 || response.status.nil?
82
+ # Errors from libcurl will be made visible here
83
+ fail ApiError.new(:code => 0,
84
+ :message => response.return_message)
85
+ elsif response.status == 422
86
+ fail ApiError.new(:code => response.status,
87
+ :response_headers => response.headers,
88
+ :response_body => response.body,
89
+ :validation_error => true
90
+ )
91
+ else
92
+ fail ApiError.new(:code => response.status,
93
+ :response_headers => response.headers,
94
+ :response_body => response.body),
95
+ response.reason_phrase
96
+ end
80
97
  end
98
+ rescue Faraday::TimeoutError
99
+ fail ApiError.new('Connection timed out')
81
100
  end
82
101
 
83
102
  if opts[:return_type]
@@ -85,7 +104,7 @@ module TransferZero
85
104
  else
86
105
  data = nil
87
106
  end
88
- return data, response.code, response.headers
107
+ return data, response.status, response.headers
89
108
  end
90
109
 
91
110
  # Builds the HTTP request
@@ -97,57 +116,49 @@ module TransferZero
97
116
  # @option opts [Hash] :form_params Query parameters
98
117
  # @option opts [Object] :body HTTP body (JSON/XML)
99
118
  # @return [Typhoeus::Request] A Typhoeus Request
100
- def build_request(http_method, path, opts = {})
101
- url = build_request_url(path)
119
+ def build_request(http_method, path, request, opts = {})
120
+ url = build_request_url(path, opts)
102
121
  http_method = http_method.to_sym.downcase
103
122
 
104
123
  header_params = @default_headers.merge(opts[:header_params] || {})
105
124
  query_params = opts[:query_params] || {}
106
- url_with_params = add_query(url, query_params)
107
125
  form_params = opts[:form_params] || {}
108
-
109
- request_body = opts[:body].to_s.gsub(/[[:space:]]+/, ' ').strip
110
-
111
- request_nonce = SecureRandom.uuid
112
- request_signature = sign_request([
113
- request_nonce,
114
- http_method.to_s.upcase,
115
- url_with_params,
116
- DIGEST.hexdigest(request_body)
117
- ])
118
-
119
- header_params['Authorization-Nonce'] = request_nonce
120
- header_params['Authorization-Signature'] = request_signature
121
- header_params['Authorization-Key'] = @config.api_key
122
-
123
- # set ssl_verifyhosts option based on @config.verify_ssl_host (true/false)
124
- _verify_ssl_host = @config.verify_ssl_host ? 2 : 0
126
+ url_with_params = add_query(url, query_params)
125
127
 
126
128
  req_opts = {
127
129
  :method => http_method,
128
130
  :headers => header_params,
129
- :params => {}, # removed and params added to url string
131
+ :params => query_params,
130
132
  :params_encoding => @config.params_encoding,
131
133
  :timeout => @config.timeout,
132
- :ssl_verifypeer => @config.verify_ssl,
133
- :ssl_verifyhost => _verify_ssl_host,
134
- :sslcert => @config.cert_file,
135
- :sslkey => @config.key_file,
136
134
  :verbose => @config.debugging
137
135
  }
138
136
 
139
- # set custom cert, if provided
140
- req_opts[:cainfo] = @config.ssl_ca_cert if @config.ssl_ca_cert
141
-
137
+ req_body = ''
142
138
  if [:post, :patch, :put, :delete].include?(http_method)
143
- req_body = build_request_body(header_params, form_params, request_body)
139
+ req_body = build_request_body(header_params, form_params, opts[:body])
144
140
  req_opts.update :body => req_body
145
141
  if @config.debugging
146
142
  @config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
147
143
  end
148
144
  end
149
145
 
150
- request = Typhoeus::Request.new(url_with_params, req_opts)
146
+ request_nonce = SecureRandom.uuid
147
+ request_signature = sign_request([
148
+ request_nonce,
149
+ http_method.to_s.upcase,
150
+ url_with_params,
151
+ DIGEST.hexdigest(req_body)
152
+ ])
153
+
154
+ header_params['Authorization-Nonce'] = request_nonce
155
+ header_params['Authorization-Signature'] = request_signature
156
+ header_params['Authorization-Key'] = @config.api_key
157
+
158
+ request.headers = header_params
159
+ request.body = req_body
160
+ request.url url
161
+ request.params = query_params
151
162
  download_file(request) if opts[:return_type] == 'File'
152
163
  request
153
164
  end
@@ -214,7 +225,25 @@ module TransferZero
214
225
 
215
226
  # handle file downloading - return the File instance processed in request callbacks
216
227
  # note that response body is empty when the file is written in chunks in request on_body callback
217
- return @tempfile if return_type == 'File'
228
+ if return_type == 'File'
229
+ content_disposition = response.headers['Content-Disposition']
230
+ if content_disposition && content_disposition =~ /filename=/i
231
+ filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
232
+ prefix = sanitize_filename(filename)
233
+ else
234
+ prefix = 'download-'
235
+ end
236
+ prefix = prefix + '-' unless prefix.end_with?('-')
237
+ encoding = body.encoding
238
+ @tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
239
+ @tempfile.write(@stream.join.force_encoding(encoding))
240
+ @tempfile.close
241
+ @config.logger.info "Temp file written to #{@tempfile.path}, please copy the file to a proper folder "\
242
+ "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
243
+ "will be deleted automatically with GC. It's also recommended to delete the temp file "\
244
+ "explicitly with `tempfile.delete`"
245
+ return @tempfile
246
+ end
218
247
 
219
248
  return nil if body.nil? || body.empty?
220
249
 
@@ -281,39 +310,45 @@ module TransferZero
281
310
  end
282
311
  end
283
312
 
284
- # Save response body into a file in (the defined) temporary folder, using the filename
285
- # from the "Content-Disposition" header if provided, otherwise a random filename.
286
- # The response body is written to the file in chunks in order to handle files which
287
- # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
288
- # process can use.
313
+
314
+ # Builds the HTTP request body
289
315
  #
290
- # @see Configuration#temp_folder_path
291
- def download_file(request)
292
- tempfile = nil
293
- encoding = nil
294
- request.on_headers do |response|
295
- content_disposition = response.headers['Content-Disposition']
296
- if content_disposition && content_disposition =~ /filename=/i
297
- filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
298
- prefix = sanitize_filename(filename)
299
- else
300
- prefix = 'download-'
316
+ # @param [Hash] header_params Header parameters
317
+ # @param [Hash] form_params Query parameters
318
+ # @param [Object] body HTTP body (JSON/XML)
319
+ # @return [String] HTTP body data in the form of string
320
+ def build_request_body(header_params, form_params, body)
321
+ # http form
322
+ if header_params['Content-Type'] == 'application/x-www-form-urlencoded'
323
+ data = URI.encode_www_form(form_params)
324
+ elsif header_params['Content-Type'] == 'multipart/form-data'
325
+ data = {}
326
+ form_params.each do |key, value|
327
+ case value
328
+ when ::File, ::Tempfile
329
+ # TODO hardcode to application/octet-stream, need better way to detect content type
330
+ data[key] = Faraday::UploadIO.new(value.path, 'application/octet-stream', value.path)
331
+ when ::Array, nil
332
+ # let Faraday handle Array and nil parameters
333
+ data[key] = value
334
+ else
335
+ data[key] = value.to_s
336
+ end
301
337
  end
302
- prefix = prefix + '-' unless prefix.end_with?('-')
303
- encoding = response.body.encoding
304
- tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
305
- @tempfile = tempfile
306
- end
307
- request.on_body do |chunk|
308
- chunk.force_encoding(encoding)
309
- tempfile.write(chunk)
338
+ elsif body
339
+ data = body.is_a?(String) ? body : body.to_json
340
+ else
341
+ data = nil
310
342
  end
311
- request.on_complete do |response|
312
- tempfile.close
313
- @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
314
- "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
315
- "will be deleted automatically with GC. It's also recommended to delete the temp file "\
316
- "explicitly with `tempfile.delete`"
343
+ data
344
+ end
345
+
346
+ def download_file(request)
347
+ @stream = []
348
+
349
+ # handle streaming Responses
350
+ request.options.on_data = Proc.new do |chunk, overall_received_bytes|
351
+ @stream << chunk
317
352
  end
318
353
  end
319
354
 
@@ -326,10 +361,10 @@ module TransferZero
326
361
  filename.gsub(/.*[\/\\]/, '')
327
362
  end
328
363
 
329
- def build_request_url(path)
364
+ def build_request_url(path, opts = {})
330
365
  # Add leading and trailing slashes to path
331
366
  path = "/#{path}".gsub(/\/+/, '/')
332
- URI.encode(@config.base_url + path)
367
+ @config.base_url(opts[:operation]) + path
333
368
  end
334
369
 
335
370
  # Builds the HTTP request body
@@ -23,6 +23,18 @@ module TransferZero
23
23
  # Defines url base path
24
24
  attr_accessor :base_path
25
25
 
26
+ # Define server configuration index
27
+ attr_accessor :server_index
28
+
29
+ # Define server operation configuration index
30
+ attr_accessor :server_operation_index
31
+
32
+ # Default server variables
33
+ attr_accessor :server_variables
34
+
35
+ # Default server operation variables
36
+ attr_accessor :server_operation_variables
37
+
26
38
  # Defines API key used with API Key authentications.
27
39
  #
28
40
  # @return [String]
@@ -73,33 +85,28 @@ module TransferZero
73
85
  # @note Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks.
74
86
  #
75
87
  # @return [true, false]
76
- attr_accessor :verify_ssl
88
+ attr_accessor :ssl_verify
77
89
 
78
90
  ### TLS/SSL setting
79
- # Set this to false to skip verifying SSL host name
80
- # Default to true.
91
+ # Any `OpenSSL::SSL::` constant (see https://ruby-doc.org/stdlib-2.5.1/libdoc/openssl/rdoc/OpenSSL/SSL.html)
81
92
  #
82
93
  # @note Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks.
83
94
  #
84
- # @return [true, false]
85
- attr_accessor :verify_ssl_host
95
+ attr_accessor :ssl_verify_mode
86
96
 
87
97
  ### TLS/SSL setting
88
98
  # Set this to customize the certificate file to verify the peer.
89
99
  #
90
100
  # @return [String] the path to the certificate file
91
- #
92
- # @see The `cainfo` option of Typhoeus, `--cert` option of libcurl. Related source code:
93
- # https://github.com/typhoeus/typhoeus/blob/master/lib/typhoeus/easy_factory.rb#L145
94
- attr_accessor :ssl_ca_cert
101
+ attr_accessor :ssl_ca_file
95
102
 
96
103
  ### TLS/SSL setting
97
104
  # Client certificate file (for client certificate)
98
- attr_accessor :cert_file
105
+ attr_accessor :ssl_client_cert
99
106
 
100
107
  ### TLS/SSL setting
101
108
  # Client private key file (for client certificate)
102
- attr_accessor :key_file
109
+ attr_accessor :ssl_client_key
103
110
 
104
111
  # Set this to customize parameters encoding of array parameter with multi collectionFormat.
105
112
  # Default to nil.
@@ -116,15 +123,19 @@ module TransferZero
116
123
  @scheme = 'https'
117
124
  @host = 'api-sandbox.transferzero.com'
118
125
  @base_path = '/v1'
126
+ @server_index = nil
127
+ @server_operation_index = {}
128
+ @server_variables = {}
129
+ @server_operation_variables = {}
119
130
  @api_key = ''
120
131
  @api_secret = ''
121
132
  @timeout = 0
122
133
  @client_side_validation = true
123
- @verify_ssl = true
124
- @verify_ssl_host = true
125
- @params_encoding = nil
126
- @cert_file = nil
127
- @key_file = nil
134
+ @ssl_verify = true
135
+ @ssl_verify_mode = nil
136
+ @ssl_ca_file = nil
137
+ @ssl_client_cert = nil
138
+ @ssl_client_key = nil
128
139
  @debugging = false
129
140
  @inject_format = false
130
141
  @force_ending_format = false
@@ -158,9 +169,74 @@ module TransferZero
158
169
  @base_path = '' if @base_path == '/'
159
170
  end
160
171
 
161
- def base_url
162
- url = "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '')
163
- URI.encode(url)
172
+ def base_url(operation = nil)
173
+ index = server_operation_index.fetch(operation, server_index)
174
+ return "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '') if index == nil
175
+
176
+ server_url(index, server_operation_variables.fetch(operation, server_variables), operation_server_settings[operation])
177
+ end
178
+ # Gets Basic Auth token string
179
+ def basic_auth_token
180
+ 'Basic ' + ["#{username}:#{password}"].pack('m').delete("\r\n")
181
+ end
182
+
183
+ # Returns Auth Settings hash for api client.
184
+ def auth_settings
185
+ {
186
+ }
187
+ end
188
+
189
+ # Returns an array of Server setting
190
+ def server_settings
191
+ [
192
+ {
193
+ url: "https://api-sandbox.transferzero.com/v1",
194
+ description: "No description provided",
195
+ },
196
+ {
197
+ url: "https://api.transferzero.com/v1",
198
+ description: "No description provided",
199
+ }
200
+ ]
201
+ end
202
+
203
+ def operation_server_settings
204
+ {
205
+ }
206
+ end
207
+
208
+ # Returns URL based on server settings
209
+ #
210
+ # @param index array index of the server settings
211
+ # @param variables hash of variable and the corresponding value
212
+ def server_url(index, variables = {}, servers = nil)
213
+ servers = server_settings if servers == nil
214
+
215
+ # check array index out of bound
216
+ if (index < 0 || index >= servers.size)
217
+ fail ArgumentError, "Invalid index #{index} when selecting the server. Must be less than #{servers.size}"
218
+ end
219
+
220
+ server = servers[index]
221
+ url = server[:url]
222
+
223
+ return url unless server.key? :variables
224
+
225
+ # go through variable and assign a value
226
+ server[:variables].each do |name, variable|
227
+ if variables.key?(name)
228
+ if (!server[:variables][name].key?(:enum_values) || server[:variables][name][:enum_values].include?(variables[name]))
229
+ url.gsub! "{" + name.to_s + "}", variables[name]
230
+ else
231
+ fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}."
232
+ end
233
+ else
234
+ # use default value
235
+ url.gsub! "{" + name.to_s + "}", server[:variables][name][:default_value]
236
+ end
237
+ end
238
+
239
+ url
164
240
  end
165
241
  end
166
242
  end
@@ -11,5 +11,5 @@ OpenAPI Generator version: 4.0.0-beta3
11
11
  =end
12
12
 
13
13
  module TransferZero
14
- VERSION = '1.19.4'
14
+ VERSION = '1.19.5'
15
15
  end
Binary file
@@ -27,17 +27,11 @@ Gem::Specification.new do |s|
27
27
  s.license = 'MIT'
28
28
  s.required_ruby_version = ">= 1.9"
29
29
 
30
- s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1'
30
+ s.add_runtime_dependency 'faraday', '~> 1.0', '>= 1.0.1'
31
31
  s.add_runtime_dependency 'json', '>= 1.4'
32
32
  s.add_runtime_dependency 'activesupport', '>= 4', '< 7'
33
33
 
34
34
  s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'
35
- s.add_development_dependency 'vcr', '~> 3.0', '>= 3.0.1'
36
- s.add_development_dependency 'webmock', '~> 1.24', '>= 1.24.3'
37
- s.add_development_dependency 'autotest', '~> 4.4', '>= 4.4.6'
38
- s.add_development_dependency 'autotest-rails-pure', '~> 4.1', '>= 4.1.2'
39
- s.add_development_dependency 'autotest-growl', '~> 0.2', '>= 0.2.16'
40
- s.add_development_dependency 'autotest-fsevent', '~> 0.2', '>= 0.2.12'
41
35
 
42
36
  s.files = `find *`.split("\n").uniq.sort.select { |f| !f.empty? }
43
37
  s.test_files = `find spec/*`.split("\n")
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: transferzero-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.19.4
4
+ version: 1.19.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - TransferZero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-24 00:00:00.000000000 Z
11
+ date: 2022-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: typhoeus
14
+ name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
@@ -84,126 +84,6 @@ dependencies:
84
84
  - - "~>"
85
85
  - !ruby/object:Gem::Version
86
86
  version: '3.6'
87
- - !ruby/object:Gem::Dependency
88
- name: vcr
89
- requirement: !ruby/object:Gem::Requirement
90
- requirements:
91
- - - "~>"
92
- - !ruby/object:Gem::Version
93
- version: '3.0'
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: 3.0.1
97
- type: :development
98
- prerelease: false
99
- version_requirements: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '3.0'
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- version: 3.0.1
107
- - !ruby/object:Gem::Dependency
108
- name: webmock
109
- requirement: !ruby/object:Gem::Requirement
110
- requirements:
111
- - - "~>"
112
- - !ruby/object:Gem::Version
113
- version: '1.24'
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: 1.24.3
117
- type: :development
118
- prerelease: false
119
- version_requirements: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - "~>"
122
- - !ruby/object:Gem::Version
123
- version: '1.24'
124
- - - ">="
125
- - !ruby/object:Gem::Version
126
- version: 1.24.3
127
- - !ruby/object:Gem::Dependency
128
- name: autotest
129
- requirement: !ruby/object:Gem::Requirement
130
- requirements:
131
- - - "~>"
132
- - !ruby/object:Gem::Version
133
- version: '4.4'
134
- - - ">="
135
- - !ruby/object:Gem::Version
136
- version: 4.4.6
137
- type: :development
138
- prerelease: false
139
- version_requirements: !ruby/object:Gem::Requirement
140
- requirements:
141
- - - "~>"
142
- - !ruby/object:Gem::Version
143
- version: '4.4'
144
- - - ">="
145
- - !ruby/object:Gem::Version
146
- version: 4.4.6
147
- - !ruby/object:Gem::Dependency
148
- name: autotest-rails-pure
149
- requirement: !ruby/object:Gem::Requirement
150
- requirements:
151
- - - "~>"
152
- - !ruby/object:Gem::Version
153
- version: '4.1'
154
- - - ">="
155
- - !ruby/object:Gem::Version
156
- version: 4.1.2
157
- type: :development
158
- prerelease: false
159
- version_requirements: !ruby/object:Gem::Requirement
160
- requirements:
161
- - - "~>"
162
- - !ruby/object:Gem::Version
163
- version: '4.1'
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: 4.1.2
167
- - !ruby/object:Gem::Dependency
168
- name: autotest-growl
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '0.2'
174
- - - ">="
175
- - !ruby/object:Gem::Version
176
- version: 0.2.16
177
- type: :development
178
- prerelease: false
179
- version_requirements: !ruby/object:Gem::Requirement
180
- requirements:
181
- - - "~>"
182
- - !ruby/object:Gem::Version
183
- version: '0.2'
184
- - - ">="
185
- - !ruby/object:Gem::Version
186
- version: 0.2.16
187
- - !ruby/object:Gem::Dependency
188
- name: autotest-fsevent
189
- requirement: !ruby/object:Gem::Requirement
190
- requirements:
191
- - - "~>"
192
- - !ruby/object:Gem::Version
193
- version: '0.2'
194
- - - ">="
195
- - !ruby/object:Gem::Version
196
- version: 0.2.12
197
- type: :development
198
- prerelease: false
199
- version_requirements: !ruby/object:Gem::Requirement
200
- requirements:
201
- - - "~>"
202
- - !ruby/object:Gem::Version
203
- version: '0.2'
204
- - - ">="
205
- - !ruby/object:Gem::Version
206
- version: 0.2.12
207
87
  description: Ruby library for the TransferZero API
208
88
  email:
209
89
  - engineers@transferzero.com
@@ -651,6 +531,7 @@ files:
651
531
  - transferzero-sdk-1.19.0.gem
652
532
  - transferzero-sdk-1.19.2.gem
653
533
  - transferzero-sdk-1.19.3.gem
534
+ - transferzero-sdk-1.19.4.gem
654
535
  - transferzero-sdk.gemspec
655
536
  homepage: https://github.com/transferzero/transferzero-sdk-ruby
656
537
  licenses: