Sha256: 36f9241008824201579e69170801582f8cea140d1022630563a6053f61544079

Contents?: true

Size: 1.05 KB

Versions: 18

Compression:

Stored size: 1.05 KB

Contents

require "open-uri"
require "openssl"

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

# open-uri に渡すオプションを生成(必要に応じて extensions/*.rb でオーバーライドする)
def make_open_uri_options(add)
  add.merge(ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE)
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

18 entries across 18 versions & 1 rubygems

Version Path
narou-3.2.5.1 lib/extension.rb
narou-3.2.5 lib/extension.rb
narou-3.2.4 lib/extension.rb
narou-3.2.3 lib/extension.rb
narou-3.2.2 lib/extension.rb
narou-3.2.1 lib/extension.rb
narou-3.2.0.1 lib/extension.rb
narou-3.2.0 lib/extension.rb
narou-3.1.11 lib/extension.rb
narou-3.1.10 lib/extension.rb
narou-3.1.9 lib/extension.rb
narou-3.1.8 lib/extension.rb
narou-3.1.7 lib/extension.rb
narou-3.1.6 lib/extension.rb
narou-3.1.5 lib/extension.rb
narou-3.1.4 lib/extension.rb
narou-3.1.3 lib/extension.rb
narou-3.1.2 lib/extension.rb