Class: File

Inherits:
Object
  • Object
show all
Defined in:
lib/sparehand/safe_modify.rb

Class Method Summary collapse

Class Method Details

.safe_modify(original) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/sparehand/safe_modify.rb', line 4

def safe_modify original
  path = File.dirname(original)  
  temp_name = '.' + File.basename(original) + '.tmp'
  temp_path = File.join(path, temp_name)

  File.open(original) do |input|
    File.open(temp_path, 'w') do |output|
      yield input, output
    end
  end

  File.delete original
  File.rename temp_path, original
end