Sha256: dcee1cafa2189f0b7c80ee4ad0e3e7cec6a56742257543433282467fcc29d855

Contents?: true

Size: 1012 Bytes

Versions: 8

Compression:

Stored size: 1012 Bytes

Contents

require "open-uri"

# open-uri で http → https へのリダイレクトを有効にする
require "open_uri_redirections"

# open-uri に渡すオプションを生成(必要に応じて extensions/*.rb でオーバーライドする)
def make_open_uri_options(add)
  add
end

#
# 安全なファイルの書き込み
#
# ファイルに直接上書きしないで、一旦別名で作成してからファイル名変更をすることで、
# ファイル書き込み中のPCクラッシュ等でデータが飛ばない様にする
#
require "securerandom"

def File.write(path, string, *options)
  dirpath = File.dirname(path)
  backup = false
  temp_path =
    if File.extname(path) == ".yaml" && File.basename(dirpath) != Downloader::SECTION_SAVE_DIR_NAME
      backup = true
      "#{path}.backup"
    else
      File.join(dirpath, SecureRandom.hex(15))
    end

  super(temp_path, string, *options)

  if backup
    super(path, string, *options)
  else
    File.rename(temp_path, path)
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
narou-3.1.1 lib/extension.rb
narou-3.0.5.1 lib/extension.rb
narou-3.0.5 lib/extension.rb
narou-3.0.4 lib/extension.rb
narou-3.0.3 lib/extension.rb
narou-3.0.2 lib/extension.rb
narou-3.0.1 lib/extension.rb
narou-3.0.0 lib/extension.rb