はじめての質問です。学生でプログラミングを1年半やってます。
rubyで、ディレクトリ内でファイルがなかったらURLからダウンロードするという実装をしたのですが、ネットがつながっている時はエラーが出ないのですが、オフラインのときにエラーが出でしまいます。Net::HTTPでも使うのかな、と思うのですがうまく行かず、困っています
ruby2.0.0 です。以下に該当部分のコードを記載しますので、教えていただけたら幸いです。
require 'open-uri'
データファイル (rgb.txt) の存在チェック
rgb_file = "rgb.txt"
flg = false
if ! File.exist?(rgb_file)
puts "#{rgb_file} が存在しません.ダウンロードしますか(Y/N)"
if /[Yy]/ =~ STDIN.gets then
flg = true
else
puts "処理を中断します."
exit
end
end
データファイル (rgb.txt) をダウンロード
######################################
#=begin
if flg then
open("http://people.csail.mit.edu/jaffer/Color/rgb.txt") do |f|
File.open(rgb_file,"w") do |fp| # 書き込みモードでオープン
f.each_line do |line|
fp.puts line
end
end
end
end
#=end
オフラインで実行した際に出たエラー
rgb.txt が存在しません.ダウンロードしますか(Y/N)
y
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:878:in initialize': getaddrinfo: nodename nor servname provided, or not known (SocketError) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:878:in
open'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:878:in block in connect' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/timeout.rb:52:in
timeout'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:877:in connect' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:862:in
do_start'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:851:in start' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:313:in
open_http'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:709:in buffer_open' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:210:in
block in open_loop'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:208:in catch' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:208:in
open_loop'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:149:in open_uri' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:689:in
open'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:34:in open' from colorcode19.rb:31:in
<main>'
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/22 15:44
2015/06/22 15:59