Module: Kward::PrivateFile
- Defined in:
- lib/kward/private_file.rb
Overview
Writes sensitive JSON files with private filesystem permissions.
Class Method Summary collapse
Class Method Details
.write_json(path, data) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/kward/private_file.rb', line 11 def write_json(path, data) path = File.(path) directory = File.dirname(path) FileUtils.mkdir_p(directory, mode: 0o700) Tempfile.create([".#{File.basename(path)}.", ".tmp"], directory, mode: 0o600) do |file| file.write(JSON.pretty_generate(data)) file.write("\n") file.flush file.fsync file.close File.rename(file.path, path) end end |