This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# frozen_string_literal: true
|
||||
class Benefits < ApplicationRecord
|
||||
|
||||
def self.save(file, backup = false)
|
||||
data_path = Rails.root.join("public", "data")
|
||||
full_file_name = "#{data_path}/#{file.original_filename}"
|
||||
f = File.open(full_file_name, "wb+")
|
||||
f.write file.read
|
||||
f.close
|
||||
make_backup(file, data_path, full_file_name) if backup == "true"
|
||||
end
|
||||
|
||||
def self.make_backup(file, data_path, full_file_name)
|
||||
if File.exist?(full_file_name)
|
||||
silence_streams(STDERR) { system("cp #{full_file_name} #{data_path}/bak#{Time.zone.now.to_i}_#{file.original_filename}") }
|
||||
end
|
||||
end
|
||||
|
||||
def self.silence_streams(*streams)
|
||||
on_hold = streams.collect { |stream| stream.dup }
|
||||
streams.each do |stream|
|
||||
stream.reopen(RUBY_PLATFORM =~ /mswin/ ? "NUL:" : "/dev/null")
|
||||
stream.sync = true
|
||||
end
|
||||
yield
|
||||
ensure
|
||||
streams.each_with_index do |stream, i|
|
||||
stream.reopen(on_hold[i])
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user