Skip to content

Commit be8cbd0

Browse files
authored
Merge pull request #48 from yujideveloper/feature/use-status-exception-instead-of-runtimeerror
Use `Net::SFTP::StatusException` instead of `RuntimeError` in the download operation
2 parents d788846 + a078d6b commit be8cbd0

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

lib/net/sftp/operations/download.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ def process_next_entry
256256
# operation was successful.
257257
def on_opendir(response)
258258
entry = response.request[:entry]
259-
raise "opendir #{entry.remote}: #{response}" unless response.ok?
259+
raise StatusException.new(response, "opendir #{entry.remote}") unless response.ok?
260260
entry.handle = response[:handle]
261261
request = sftp.readdir(response[:handle], &method(:on_readdir))
262262
request[:parent] = entry
@@ -271,7 +271,7 @@ def on_readdir(response)
271271
request = sftp.close(entry.handle, &method(:on_closedir))
272272
request[:parent] = entry
273273
elsif !response.ok?
274-
raise "readdir #{entry.remote}: #{response}"
274+
raise StatusException.new(response, "readdir #{entry.remote}")
275275
else
276276
response[:names].each do |item|
277277
next if item.name == "." || item.name == ".."
@@ -297,15 +297,15 @@ def open_file(entry)
297297
def on_closedir(response)
298298
@active -= 1
299299
entry = response.request[:parent]
300-
raise "close #{entry.remote}: #{response}" unless response.ok?
300+
raise StatusException.new(response, "close #{entry.remote}") unless response.ok?
301301
process_next_entry
302302
end
303303

304304
# Called when a file has been opened. This will call #download_next_chunk
305305
# to initiate the data transfer.
306306
def on_open(response)
307307
entry = response.request[:entry]
308-
raise "open #{entry.remote}: #{response}" unless response.ok?
308+
raise StatusException.new(response, "open #{entry.remote}") unless response.ok?
309309

310310
entry.handle = response[:handle]
311311
entry.sink = entry.local.respond_to?(:write) ? entry.local : ::File.open(entry.local, "wb")
@@ -333,7 +333,7 @@ def on_read(response)
333333
request = sftp.close(entry.handle, &method(:on_close))
334334
request[:entry] = entry
335335
elsif !response.ok?
336-
raise "read #{entry.remote}: #{response}"
336+
raise StatusException.new(response, "read #{entry.remote}")
337337
else
338338
entry.offset += response[:data].bytesize
339339
update_progress(:get, entry, response.request[:offset], response[:data])
@@ -346,7 +346,7 @@ def on_read(response)
346346
def on_close(response)
347347
@active -= 1
348348
entry = response.request[:entry]
349-
raise "close #{entry.remote}: #{response}" unless response.ok?
349+
raise StatusException.new(response, "close #{entry.remote}") unless response.ok?
350350
process_next_entry
351351
end
352352

0 commit comments

Comments
 (0)