transferzero-sdk 1.19.4 → 1.19.5

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: 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: