Kouhei Sutou
null+****@clear*****
Tue Jul 11 11:03:24 JST 2017
Kouhei Sutou 2017-07-11 11:03:24 +0900 (Tue, 11 Jul 2017) New Revision: 43536c2a5d2fa175e0222f5c984354ac84a6027d https://github.com/ranguba/chupa-text/commit/43536c2a5d2fa175e0222f5c984354ac84a6027d Message: Handle download error Modified files: lib/chupa-text/error.rb lib/chupa-text/input-data.rb Modified: lib/chupa-text/error.rb (+10 -0) =================================================================== --- lib/chupa-text/error.rb 2017-07-11 00:04:47 +0900 (2644343) +++ lib/chupa-text/error.rb 2017-07-11 11:03:24 +0900 (cb7de87) @@ -18,6 +18,16 @@ module ChupaText class Error < StandardError end + class DownloadError < Error + attr_reader :uri + attr_reader :reason + def initialize(uri, reason) + @uri = uri + @reason = reason + super("Download error: <#{uri}>: #{reason}") + end + end + class EncryptedError < Error attr_reader :data def initialize(data) Modified: lib/chupa-text/input-data.rb (+7 -3) =================================================================== --- lib/chupa-text/input-data.rb 2017-07-11 00:04:47 +0900 (7a225d0) +++ lib/chupa-text/input-data.rb 2017-07-11 11:03:24 +0900 (5c35369) @@ -47,9 +47,13 @@ module ChupaText def download path =****@uri***** path += "index.html" if path.end_with?("/") - @uri.open("rb") do |input| - self.mime_type = input.content_type.split(/;/).first - VirtualContent.new(input, path) + begin + @uri.open("rb") do |input| + self.mime_type = input.content_type.split(/;/).first + VirtualContent.new(input, path) + end + rescue OpenURI::HTTPError => error + raise DownloadError.new(@uri, error.message.strip) end end end -------------- next part -------------- HTML����������������������������...Download